Don't extra non-representable values in simplres.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 09:56:09 +0000 (11:56 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 09:56:09 +0000 (11:56 +0200)
cλash/CLasH/Normalize.hs

index ec7a66bf991ea5f5ff65fc5b3ac231ec7123ab82..2f74be883ffa601522ae8d4350b40332b2c3896e 100644 (file)
@@ -651,7 +651,10 @@ simplrestop expr@(Lam _ _) = return expr
 simplrestop expr@(Let _ _) = return expr
 simplrestop expr = do
   local_var <- Trans.lift $ is_local_var expr
-  if local_var
+  -- Don't extract values that are not representable, to prevent loops with
+  -- inlinenonrep
+  repr <- isRepr expr
+  if local_var || not repr
     then
       return expr
     else do