From: simonpj@microsoft.com Date: Fri, 5 Sep 2008 17:18:14 +0000 (+0000) Subject: Retain unfoldings even with SimplGently X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=cef4b33c4155f4225035fdae17bc410d229c805e Retain unfoldings even with SimplGently 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. --- diff --git a/compiler/simplCore/Simplify.lhs b/compiler/simplCore/Simplify.lhs index 866b2d4..e1a8492 100644 --- a/compiler/simplCore/Simplify.lhs +++ b/compiler/simplCore/Simplify.lhs @@ -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