[commit: ghc] wip/T14068: Loopification: Clear OccInfo of loopified binding (f34acaa)

git at git.haskell.org git at git.haskell.org
Fri Jan 5 21:16:19 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/T14068
Link       : http://ghc.haskell.org/trac/ghc/changeset/f34acaafd32233d84bb25a511b1af55d9deacd30/ghc

>---------------------------------------------------------------

commit f34acaafd32233d84bb25a511b1af55d9deacd30
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Mon Nov 6 14:25:48 2017 -0500

    Loopification: Clear OccInfo of loopified binding
    
    as a loopified binding is no longer a loop breaker.
    
    This is a stab in the dark at maybe working around #14430, where I
    observe unsimplified unfoldings where I expec them to be simplified..


>---------------------------------------------------------------

f34acaafd32233d84bb25a511b1af55d9deacd30
 compiler/coreSyn/CoreOpt.hs  | 2 +-
 compiler/stranal/WorkWrap.hs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/compiler/coreSyn/CoreOpt.hs b/compiler/coreSyn/CoreOpt.hs
index 550a0a7..e3462c4 100644
--- a/compiler/coreSyn/CoreOpt.hs
+++ b/compiler/coreSyn/CoreOpt.hs
@@ -679,7 +679,7 @@ loopificationJoinPointBinding_maybe bndr rhs
         -- To tread with caution, let's keep it this way
         bndr' = (`setIdUnfolding` noUnfolding) $
                 (`setInlinePragma` neverInlinePragma) $
-                zapIdTailCallInfo $
+                (`setIdOccInfo` noOccInfo) $
                 bndr
     in  Just (bndr', join_bndr, mkLams bndrs body)
 
diff --git a/compiler/stranal/WorkWrap.hs b/compiler/stranal/WorkWrap.hs
index 49045d9..4eb2f10 100644
--- a/compiler/stranal/WorkWrap.hs
+++ b/compiler/stranal/WorkWrap.hs
@@ -479,7 +479,7 @@ splitFun dflags fam_envs fn_id fn_info wrap_dmds res_info rhs
             work_act = case work_inline of
               -- See Note [Activation for workers]
               NoInline -> inl_act inl_prag
-              NoUserInline | isNeverActive (inl_act inl_prag) -> inl_act inl_prag
+              NoUserInline | isNeverActive (inl_act inl_prag) -> NeverActive
               _        -> wrap_act
             work_prag = InlinePragma { inl_src = SourceText "{-# INLINE"
                                      , inl_inline = work_inline



More information about the ghc-commits mailing list