Raft of optimiser changes

Simon Peyton Jones simonpj at microsoft.com
Thu Aug 28 11:16:03 UTC 2014

I've just pushed a bunch of Core-to-Core optimisation changes that have been sitting in my tree for ages.  The aggregate effect on nofib is very modest, but they are mostly aimed at corner cases, and consolidation.

        Program           Size    Allocs   Runtime   Elapsed  TotalMem

            Min          -7.2%     -3.1%     -7.8%     -7.8%    -14.8%

            Max          +5.6%     +1.3%    +20.0%    +19.7%    +50.0%

Geometric Mean          -0.3%     -0.1%     +1.7%     +1.7%     +0.2%
The runtime increases are spurious - I checked.
A couple of perf/compiler tests (i.e. GHC's own performance) improve significantly, which is a good sign.
I have a few more to come but wanted to get this lot out of my hair.

a1a400ed * Testsuite wibbles

39ccdf91 * White space only

6c6b001e * Remove dead lookup_dfun_id (merge-o)

a0b2897e * Simple refactor of the case-of-case transform

bb877266 * Performance changes

082e41b4 * Testsuite wibbles

1122857e * Run float-inwards immediately before the strictness analyser.

86a2ebf8 * Comments only

6d48ce29 * Make tidyProgram discard speculative specialisation rules

fa582cc4 * Fix an egregious bug in the NonRec case of bindFreeVars

b9e49d3e * Add -fspecialise-aggressively

dce70957 * Compiler performance increases -- yay!

a3e207f6 * More SPEC rules fire

baa3c9a3 * Wibbles to "...plus N others" error message about instances in scope

99178c1f * Specialise monad functions, and make them INLINEABLE

2ef997b8 * Slightly improve fusion rules for 'take'

949ad67e * Don't float out (classop dict e1 e2)

34363330 * Move the Enum Word instance into GHC.Enum

4c03791f * Specialise Eq, Ord, Read, Show at Int, Char, String

9cf5906b * Make worker/wrapper work on INLINEABLE things

8f099374 * Make maybeUnfoldingTemplate respond to DFunUnfoldings

3af1adf9 * Kill unused setUnfoldingTemplate

6e0f6ede * Refactor unfoldings

e9cd1d5e * Less voluminous output when printing continuations

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140828/05cb2b40/attachment.html>

More information about the ghc-devs mailing list