Early inline
Joachim Breitner
mail at joachim-breitner.de
Sun Feb 19 05:51:01 UTC 2017
Hi,
perf.haskell.org has built all but the last patch in this sequence, so
I can now see what it has to say about where the performance changes
came from:
Am Freitag, den 17.02.2017, 16:41 +0000 schrieb Simon Peyton Jones via
ghc-devs:
> So I have ended up a with a whole series of patches, which are on
> wip/spj-early-inline branch
> 7f14d15c0e5fc2c9a81db3d0f0b01d85857b1d87 Error message wibbles accumulated from the preceding patches
Not built yet, but probably not interesting.
> 0499c65d9fa45e7879e1e1264fdaa15274adcba6 Improve SetLevels for join points
nofib/time/hidden 0.376 + 5.59% 0.397 s
econds
> 3b2fc0827ff6cafa34836c2d9dc710b628c990b6 Change -ddump-tc-trace output in TcErrors, slightly
no change
> 9ffdf62b0ca72c4f35579f9d6f31a9beebf23025 Improve pretty-printing of types
no change
> 3f346eac06399a79adf48425018ee949cee245bf Add VarSet.anyDVarSet, allDVarSet
no change
> 912e71eb3b4ec91e805ecf2236d1033e55e2933a The Early Inline Patch
> 7188cd13f8e54efa764d52ca016b87b3669b29f5 Small changes to expression sizing in CoreUnfold
> bfc6fa3f377d11bdfcdbf82b65bf2f39cb00b90c Fix SetLevels for makeStaticPtr
> 8b1cfea089faacb5b95ffcc3511e05faeabb8076 Extend CSE to handle recursive bindings
> 50411995641802568bb27c867afe804f91e0524c Combine identical case alterantives in CSE
> 2e077ccc736a0b2a622b7f42b7929966bddb4ded Inline data constructor wrappers in phase 2 only
> b868de53dd19f639c1070089ecff21948ff33e0d Make Specialise work with casts
> c767ae5f04a09ef71dcb8f67a17225a52c2cc5d2 Stop uniques ending up in SPEC rule names
> b49ed1f0102f93ca7f62632c436b41bd240b501f Occurrence-analyse the result of rule firings
> 607a735dfb99bb8f0edf466ccb01e732218c42ec Add -fspec-constr-keen
> 67a0c1872c0515f1f12ea68097a84e02da92f45b Refactor floating of bindings (fiBind)
These patches cannot be distinguished because all but the last one
failed to build:
compiler/simplCore/SimplCore.hs:435:48: error:
• Couldn't match type ‘CoreM ModGuts’
with ‘CoreProgram -> CoreProgram’
Expected type: DynFlags -> CoreProgram -> CoreProgram
Actual type: ModGuts -> CoreM ModGuts
• In the first argument of ‘doPassD’, namely ‘floatInwards’
In the expression: doPassD floatInwards
In the expression:
{-# SCC "FloatInwards" #-} (doPassD floatInwards)
https://github.com/nomeata/ghc-speed-logs/blob/ae1b6dcd32fd2c8578ef3eee4c6f8926d845cb97/bfc6fa3f377d11bdfcdbf82b65bf2f39cb00b90c.log.broken
The overall effect of this patch was (as you already know):
nofib/time/binary-trees 0.751 - 4.79% 0.715
seconds
nofib/time/fannkuch-redux 4.751 - 3.85% 4.568
seconds
nofib/time/integer 1.276 + 19.04% 1.519
seconds
all sizes increase by 3 or 4%.
tests/alloc/T10547 32406096 - 4.48% 30953160 bytes
tests/alloc/T10858 259699544 - 4.94% 246866000 bytes
tests/alloc/T12227 1654153320 - 35.87% 1060777528 bytes
tests/alloc/T12234 75197448 - 7.02% 69918192 bytes
tests/alloc/T12707 1309049328 - 5.06% 1242803272 bytes
tests/alloc/T13035 90082344 - 4.04% 86438544 bytes
tests/alloc/T13056 512447048 - 20.21% 408873760 bytes
tests/alloc/T1969 756392264 - 19% 612713624 bytes
tests/alloc/T3064 287429088 - 8.9% 261860968 bytes
tests/alloc/T3294 2715661784 - 3.51% 2620404344 bytes
tests/alloc/T4801 412672008 - 5.77% 388841920 bytes
tests/alloc/T5321FD 470413728 - 3.67% 453148744 bytes
tests/alloc/T5321Fun 500839840 - 3.11% 485276616 bytes
tests/alloc/T5642 836251056 - 5.19% 792875648 bytes
tests/alloc/T5837 51684016 - 3.97% 49631216 bytes
tests/alloc/T6048 98489944 + 3.4% 101835168 bytes
tests/alloc/T783 462334328 - 5.21% 438237272 bytes
tests/alloc/T9020 775878448 - 35.27% 502248184 bytes
tests/alloc/T9872a 3136944168 - 6.81% 2923428352 bytes
tests/alloc/T9872b 3964092608 - 5.85% 3732226832 bytes
tests/alloc/T9872c 3603773864 - 5.49% 3405843000 bytes
tests/alloc/T9872d 466420232 - 5.1% 442644168 bytes
tests/alloc/T9961 575612760 - 13.15% 499917080 bytes
tests/alloc/lazy-bs-all 436680 - 3.77% 420224 bytes
tests/alloc/parsing001 499038992 - 6.77% 465237088 bytes
tests/alloc/T10547 32406096 - 4.48% 30953160 bytes
tests/alloc/T10858 259699544 - 4.94% 246866000 bytes
tests/alloc/T12227 1654153320 - 35.87% 1060777528 bytes
tests/alloc/T12234 75197448 - 7.02% 69918192 bytes
tests/alloc/T12707 1309049328 - 5.06% 1242803272 bytes
tests/alloc/T13035 90082344 - 4.04% 86438544 bytes
tests/alloc/T13056 512447048 - 20.21% 408873760 bytes
tests/alloc/T1969 756392264 - 19% 612713624 bytes
tests/alloc/T3064 287429088 - 8.9% 261860968 bytes
tests/alloc/T3294 2715661784 - 3.51% 2620404344 bytes
tests/alloc/T4801 412672008 - 5.77% 388841920 bytes
tests/alloc/T5321FD 470413728 - 3.67% 453148744 bytes
tests/alloc/T5321Fun 500839840 - 3.11% 485276616 bytes
tests/alloc/T5642 836251056 - 5.19% 792875648 bytes
tests/alloc/T5837 51684016 - 3.97% 49631216 bytes
tests/alloc/T6048 98489944 + 3.4% 101835168 bytes
tests/alloc/T783 462334328 - 5.21% 438237272 bytes
tests/alloc/T9020 775878448 - 35.27% 502248184 bytes
tests/alloc/T9872a 3136944168 - 6.81% 2923428352 bytes
tests/alloc/T9872b 3964092608 - 5.85% 3732226832 bytes
tests/alloc/T9872c 3603773864 - 5.49% 3405843000 bytes
tests/alloc/T9872d 466420232 - 5.1% 442644168 bytes
tests/alloc/T9961 575612760 - 13.15% 499917080 bytes
tests/alloc/lazy-bs-all 436680 - 3.77% 420224 bytes
tests/alloc/parsing001 499038992 - 6.77% 465237088 bytes
> e90f4d7c6d3003039fa1647a3da3dafcaa75527b More tracing in SpecConstr
no changes.
Well, less helpful than expected, but hard to do better given a patch
series where not every patch builds.
Greetings,
Joachim
--
Joachim “nomeata” Breitner
mail at joachim-breitner.de • https://www.joachim-breitner.de/
XMPP: nomeata at joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
Debian Developer: nomeata at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20170219/3dcc8b0e/attachment.sig>
More information about the ghc-devs
mailing list