[commit: ghc] wip/T14152: Exitification: In simplLetUnfolding, set noUnfolding for exitJoinPoint (a6a08cd)

git at git.haskell.org git at git.haskell.org
Tue Oct 24 20:09:56 UTC 2017


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

On branch  : wip/T14152
Link       : http://ghc.haskell.org/trac/ghc/changeset/a6a08cd4fc4ff5cdd1099efeb37e55d90b9f436f/ghc

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

commit a6a08cd4fc4ff5cdd1099efeb37e55d90b9f436f
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Tue Oct 24 16:06:57 2017 -0400

    Exitification: In simplLetUnfolding, set noUnfolding for exitJoinPoint
    
    Previously, this was using the existing unfolding, but that was bogus,
    because it was not simplified, and hence could refer to variables that
    are no longer in scope.
    
    This now matches what Note [Do not inline exit join points] actually
    says is happening.


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

a6a08cd4fc4ff5cdd1099efeb37e55d90b9f436f
 compiler/simplCore/Simplify.hs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler/simplCore/Simplify.hs b/compiler/simplCore/Simplify.hs
index ac03968..bac0148 100644
--- a/compiler/simplCore/Simplify.hs
+++ b/compiler/simplCore/Simplify.hs
@@ -3237,7 +3237,7 @@ simplLetUnfolding env top_lvl cont_mb id new_rhs unf
   = simplStableUnfolding env top_lvl cont_mb id unf
   | sm_preserve_exit_joins (getMode env)
   , isExitJoinId id
-  = return unf -- see Note [Do not inline exit join points]
+  = return noUnfolding -- see Note [Do not inline exit join points]
   | otherwise
   = mkLetUnfolding (seDynFlags env) top_lvl InlineRhs id new_rhs
 



More information about the ghc-commits mailing list