summaryrefslogtreecommitdiff
path: root/compiler/simplCore/SimplCore.hs
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2015-10-08 14:07:02 +0200
committerJoachim Breitner <mail@joachim-breitner.de>2015-11-06 15:55:21 +0100
commit761639c60d80273b2036de72c56b7dfa26cd5be8 (patch)
tree7eb581cbb407d8f0a0a441d465880183702db11b /compiler/simplCore/SimplCore.hs
parent5d3221aeefd3fab8c7ded74110997571805ab2ec (diff)
downloadhaskell-wip/T10918.tar.gz
Make Call Arity aggressive only in the second runwip/T10918
not that I believe that this is a viable solution, but it should be a way to work around https://ghc.haskell.org/trac/ghc/ticket/10918#comment:10 and hopefully tell me whether the whole thing is actually useful.
Diffstat (limited to 'compiler/simplCore/SimplCore.hs')
-rw-r--r--compiler/simplCore/SimplCore.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/simplCore/SimplCore.hs b/compiler/simplCore/SimplCore.hs
index efe3bafc23..ae4032fd9d 100644
--- a/compiler/simplCore/SimplCore.hs
+++ b/compiler/simplCore/SimplCore.hs
@@ -271,7 +271,7 @@ getCoreToDo dflags
-- Csg.calc, where an arg of timesDouble thereby becomes strict.
runWhen call_arity $ CoreDoPasses
- [ CoreDoCallArity
+ [ CoreDoCallArity False
, simpl_phase 0 ["post-call-arity"] max_iter
],
@@ -299,7 +299,7 @@ getCoreToDo dflags
maybe_rule_check (Phase 0),
runWhen call_arity $ CoreDoPasses
- [ CoreDoCallArity
+ [ CoreDoCallArity True
, simpl_phase 0 ["post-late-call-arity"] max_iter
],
@@ -380,8 +380,8 @@ doCorePass (CoreDoFloatOutwards f) = {-# SCC "FloatOutwards" #-}
doCorePass CoreDoStaticArgs = {-# SCC "StaticArgs" #-}
doPassU doStaticArgs
-doCorePass CoreDoCallArity = {-# SCC "CallArity" #-}
- doPassD callArityAnalProgram
+doCorePass (CoreDoCallArity l) = {-# SCC "CallArity" #-}
+ doPassD (callArityAnalProgram l)
doCorePass CoreDoStrictness = {-# SCC "NewStranal" #-}
doPassDFM dmdAnalProgram