[commit: ghc] wip/T14068: Loopification: Preserver Invariant 4, polymorphism rule (34a0e05)
git at git.haskell.org
git at git.haskell.org
Wed Aug 2 03:07:05 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/T14068
Link : http://ghc.haskell.org/trac/ghc/changeset/34a0e054c60a442bb8b520450f1792a138145af6/ghc
>---------------------------------------------------------------
commit 34a0e054c60a442bb8b520450f1792a138145af6
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Tue Aug 1 12:23:38 2017 -0400
Loopification: Preserver Invariant 4, polymorphism rule
>---------------------------------------------------------------
34a0e054c60a442bb8b520450f1792a138145af6
compiler/simplCore/OccurAnal.hs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/compiler/simplCore/OccurAnal.hs b/compiler/simplCore/OccurAnal.hs
index a16b761..4742b41 100644
--- a/compiler/simplCore/OccurAnal.hs
+++ b/compiler/simplCore/OccurAnal.hs
@@ -2667,6 +2667,8 @@ tagRecBinders lvl body_uds triples
, [bndr] <- bndrs
, let occ_rhs = lookupDetails unadj_uds_rhss bndr
, AlwaysTailCalled arity <- tailCallInfo occ_rhs
+ -- Could do better, see note [Excess polymorphism and join points]
+ , isValidJoinPointType arity (idType bndr)
= let occ = lookupDetails adj_uds bndr
occ' = markRecursiveTailCalled arity occ
bndr' = setIdOccInfo bndr occ'
More information about the ghc-commits
mailing list