Retain unfoldings even with SimplGently
authorsimonpj@microsoft.com <unknown>
Fri, 5 Sep 2008 17:18:14 +0000 (17:18 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 5 Sep 2008 17:18:14 +0000 (17:18 +0000)
When binding x = e, we now attach an unfolding to 'x' even if
it won't be used because SimplGently is on.

Reason: the specialiser runs right after SimplGently, and it (now)
only gathers call information for calls whose dictionary arguments are
"interesting" -- i.e. have an unfolding of some kind.

compiler/simplCore/Simplify.lhs

index 866b2d4..e1a8492 100644 (file)
@@ -566,7 +566,10 @@ completeBind env top_lvl old_bndr new_bndr new_rhs
     old_info    = idInfo old_bndr
     occ_info    = occInfo old_info
     wkr                = substWorker env (workerInfo old_info)
-    omit_unfolding = isNonRuleLoopBreaker occ_info || not (activeInline env old_bndr)
+    omit_unfolding = isNonRuleLoopBreaker occ_info 
+                  --       or not (activeInline env old_bndr)
+                  -- Do *not* trim the unfolding in SimplGently, else
+                  -- the specialiser can't see it!
 
 -----------------
 addPolyBind :: TopLevelFlag -> SimplEnv -> OutBind -> SimplEnv