X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FsimplCore%2FSimplify.lhs;h=4c1b6cb07bdd31eae1192066afd9e9907ad43878;hb=63e3a41126771e71c44705480c2bde7043a41df3;hp=60ee802f61b7d94a194337c3e6cfaddf2f4c3a98;hpb=e934294fd6c4a3beb150b5a6c03299d8c42fd306;p=ghc-hetmet.git diff --git a/compiler/simplCore/Simplify.lhs b/compiler/simplCore/Simplify.lhs index 60ee802..4c1b6cb 100644 --- a/compiler/simplCore/Simplify.lhs +++ b/compiler/simplCore/Simplify.lhs @@ -18,10 +18,11 @@ import Id import MkId ( mkImpossibleExpr, seqId ) import Var import IdInfo -import Name ( mkSystemVarName ) +import Name ( mkSystemVarName, isExternalName ) import Coercion import FamInstEnv ( topNormaliseType ) import DataCon ( DataCon, dataConWorkId, dataConRepStrictness ) +import CoreMonad ( SimplifierSwitch(..), Tick(..) ) import CoreSyn import Demand ( isStrictDmd, splitStrictSig ) import PprCore ( pprParendExpr, pprCoreExpr ) @@ -674,12 +675,14 @@ simplUnfolding env top_lvl id _ _ (CoreUnfolding { uf_tmpl = expr, uf_arity = arity , uf_src = src, uf_guidance = guide }) | isInlineRuleSource src - = do { expr' <- simplExpr rule_env expr + = -- pprTrace "su" (vcat [ppr id, ppr act, ppr (getMode env), ppr (getMode rule_env)]) $ + do { expr' <- simplExpr rule_env expr ; let src' = CoreSubst.substUnfoldingSource (mkCoreSubst env) src ; return (mkCoreUnfolding (isTopLevel top_lvl) src' expr' arity guide) } -- See Note [Top-level flag on inline rules] in CoreUnfold where - rule_env = updMode (updModeForInlineRules (idInlineActivation id)) env + act = idInlineActivation id + rule_env = updMode (updModeForInlineRules act) env -- See Note [Simplifying gently inside InlineRules] in SimplUtils simplUnfolding _ top_lvl id _occ_info new_rhs _