[GHC] #14152: Float exit paths out of recursive functions
GHC
ghc-devs at haskell.org
Fri Sep 1 16:26:05 UTC 2017
#14152: Float exit paths out of recursive functions
-------------------------------------+-------------------------------------
Reporter: nomeata | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Resolution: | Keywords: JoinPoints
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #14137 #10918 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by nomeata):
Inlining the exit join points in the `"final"` simplifier iteration is not
a clear win:
{{{
Nofib runtimes
Benchmark name previous change now
nofib/time/VS 0.372 + 16.13% 0.432
seconds
nofib/time/cryptarithm1 0.503 + 4.17% 0.524
seconds
nofib/time/k-nucleotide 5.558 - 7.72% 5.129
seconds
}}}
my theory is that floating exit paths out of tight loops makes tight loops
very small which is beneficial for *mumble mumble* weird hardware reasons.
(I know, someone needs to look at the code instead of speculating…)
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14152#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list