
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. Simon 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

On Thu, 28 Aug 2014 11:16:03 +0000
Simon Peyton Jones
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.
Hello Simon! The compiler improvements look great! Although running 'fulltest' one test caught core lint error:
typecheck/should_compile T7891 [exit code non-0] (hpc,optasm,profasm,optllvm)
It can be reran as: $ make fulltest THREADS=12 TEST=T7891 The result of optasm run: =====> T7891(optasm) 3365 of 4096 [0, 0, 0] cd ./typecheck/should_compile && '/home/slyfox/dev/git/ghc-validate/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -c T7891.hs -O -fasm -fno-warn-incomplete-patterns >T7891.comp.stderr 2>&1 Compile failed (status 256) errors were: *** Core Lint errors : in result of Simplifier *** <no location info>: Warning: In the type ‘a_12 -> t_aiE -> t_aiE’ @ a_12 is out of scope (attached it's complete output) Thank you! -- Sergei
participants (2)
-
Sergei Trofimovich
-
Simon Peyton Jones