[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