Make letflat work for nonrec lets in rec lets as well.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Mon, 17 Aug 2009 09:54:01 +0000 (11:54 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Mon, 17 Aug 2009 09:54:01 +0000 (11:54 +0200)
cλash/CLasH/Normalize.hs

index 192ed55cf0500c1655fb9b1adba6c3a79512d596..5d2b3a67852d94820ff589d72697eb8b110974aa 100644 (file)
@@ -220,6 +220,7 @@ letflat (Let (Rec binds) expr) = do
     -- into a list with just that binding
     flatbind :: (CoreBndr, CoreExpr) -> TransformMonad [(CoreBndr, CoreExpr)]
     flatbind (b, Let (Rec binds) expr) = change ((b, expr):binds)
+    flatbind (b, Let (NonRec b' expr') expr) = change [(b, expr), (b', expr')]
     flatbind (b, expr) = return [(b, expr)]
 -- Leave all other expressions unchanged
 letflat expr = return expr