From acbb3dba4490d53762b5aecfb9a45049dea15c79 Mon Sep 17 00:00:00 2001 From: Ben Lippmeier <benl@ouroborus.net> Date: Mon, 12 Dec 2011 16:51:45 +1100 Subject: [PATCH] vectoriser: workaround bug in classiftTyCons --- compiler/vectorise/Vectorise/Type/Classify.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/vectorise/Vectorise/Type/Classify.hs b/compiler/vectorise/Vectorise/Type/Classify.hs index 7122cb76640..9717aa0ca11 100644 --- a/compiler/vectorise/Vectorise/Type/Classify.hs +++ b/compiler/vectorise/Vectorise/Type/Classify.hs @@ -43,7 +43,15 @@ classifyTyCons :: UniqFM Bool -- ^type constructor conversio -> ([TyCon], [TyCon], [TyCon]) -- ^tycons to be converted & not to be converted classifyTyCons convStatus tcs = classify [] [] [] convStatus (tyConGroups tcs) where - classify conv keep ignored _ [] = (conv, keep, ignored) + +-- ******** HACKS ********* +-- TyCons that were marked as 'keep' are instead put into the 'conv' list, +-- because keeping them was breaking the nbody example. +-- This needs to be fixed. -- BL 29/11/2011 +-- classify conv keep ignored _ [] = (conv, keep, ignored) + classify conv keep ignored _ [] = (conv ++ keep, [], ignored) +-- ************************ + classify conv keep ignored cs ((tcs, ds) : rs) | can_convert && must_convert = classify (tcs ++ conv) keep ignored (cs `addListToUFM` [(tc, True) | tc <- tcs]) rs -- GitLab