Fix letremoveunused, it removed all used bindings.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 6 Aug 2009 15:32:25 +0000 (17:32 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 6 Aug 2009 15:32:25 +0000 (17:32 +0200)
cλash/CLasH/Normalize.hs

index b2b4bd86f0080693d29f70183ef469083b15bdfc..90cbbc70aad1b52730746facd4c7500e0ef3cba5 100644 (file)
@@ -170,7 +170,7 @@ letremoveunused expr@(Let (Rec binds) res) = do
       bound_exprs = map snd binds
       -- For each bind check if the bind is used by res or any of the bound
       -- expressions
-      dobind (bndr, _) = not $ any (expr_uses_binders [bndr]) (res:bound_exprs)
+      dobind (bndr, _) = any (expr_uses_binders [bndr]) (res:bound_exprs)
 -- Leave all other expressions unchanged
 letremoveunused expr = return expr
 letremoveunusedtop = everywhere ("letremoveunused", letremoveunused)