Common Context transformation for join points
Joachim Breitner
mail at joachim-breitner.de
Tue Dec 17 23:50:45 UTC 2013
Hi,
I created a first prototype of this optimization (branch
wip/common-context), and the results are a clear, although very small
win in some benchmarks, and no regression (ignoring the flaky
cacheprof):
--------------------------------------------------------------------------------
Program Size Allocs Runtime Elapsed TotalMem
--------------------------------------------------------------------------------
cacheprof -0.0% +0.1% +2.4% +2.4% +0.0%
fibheaps -0.0% -0.3% 0.02 0.02 +0.0%
fluid -0.1% -0.0% 0.01 0.01 +0.0%
gamteb -0.0% -0.3% 0.04 0.04 +0.0%
ida -0.0% -1.4% 0.06 0.06 +0.0%
scs -0.0% -0.2% -0.5% -0.5% +0.0%
simple -0.0% -0.8% 0.15 0.15 +0.0%
--------------------------------------------------------------------------------
Min -0.1% -1.4% -4.5% -4.5% +0.0%
Max -0.0% +0.1% +3.3% +3.3% +6.7%
Geometric Mean -0.0% -0.0% +0.2% +0.2% +0.1%
I don’t have much experience with performance numbers in GHC yet, but I
guess a geometric mean of -0.0% is not something to get excited about.
Maybe in conjunction with CPR and nested CPR, there will be a combined
benefit.
Not sure why size does not go down generally, as I expected the
optimization to take code that is generated more than once, and move it
to where it is generated only once.
Greetings,
Joachim
--
Joachim “nomeata” Breitner
mail at joachim-breitner.de • http://www.joachim-breitner.de/
Jabber: nomeata at joachim-breitner.de • GPG-Key: 0x4743206C
Debian Developer: nomeata at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20131218/4b70f350/attachment.sig>
More information about the ghc-devs
mailing list