summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/vectorise/Vectorise/Type/Classify.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/vectorise/Vectorise/Type/Classify.hs b/compiler/vectorise/Vectorise/Type/Classify.hs
index 7122cb7664..9717aa0ca1 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