Big INLINE patch
Simon Peyton-Jones
simonpj at microsoft.com
Tue Oct 20 09:47:08 EDT 2009
Simon, Ian
I'm about to commit the long-promised inline patch. The nofib results are attached, relative to the current HEAD.
* Execution times seems to improve quite a bit,
but I don't know whether to trust them.
* Allocations are generally down slightly. One outlier is 'rewrite'
which has a very delicate CSE opportunity, so I don't mind this.
I'm still chasing 'bspt', but I don't think it's a big deal.
* Binary sizes wobble about a bit, and are up 0.9% on average,
but I think that's acceptable.
* Compile times seems down fairly consistently
* Module sizes wobble about a bit; average is down 0.5%
The main goal is to get a new, more robust framework for programs that use a lot of overloading, which NDP does. For NDP, the new stuff makes GHC usable, whereas it's just hopelessly slow and/or all bloated code without it. I'm quite keen to the patch in, because at the moment I have to send a weekly patch to Australia, and it's becoming difficult at their end.
There a *LOT* of changes to many files, so committing this patch will make it more difficult to move stuff to the branch.
Happy for me to go ahead?
Simon
M ./compiler/basicTypes/BasicTypes.lhs -61 +100
M ./compiler/basicTypes/Id.lhs -20 +10
M ./compiler/basicTypes/IdInfo.lhs -101 +45
M ./compiler/basicTypes/MkId.lhs -7 +36
M ./compiler/basicTypes/Name.lhs -1 +6
M ./compiler/basicTypes/OccName.lhs -6 +7
M ./compiler/basicTypes/SrcLoc.lhs -1
M ./compiler/cmm/CmmLex.x -1 +1
M ./compiler/cmm/PprC.hs -2 +2
M ./compiler/cmm/PprCmm.hs -4 +3
M ./compiler/cmm/ZipCfgCmmRep.hs -4 +3
M ./compiler/coreSyn/CoreArity.lhs -7 +17
M ./compiler/coreSyn/CoreFVs.lhs -11 +49
M ./compiler/coreSyn/CoreLint.lhs -48 +3
M ./compiler/coreSyn/CorePrep.lhs -3 +2
M ./compiler/coreSyn/CoreSubst.lhs -37 +192
M ./compiler/coreSyn/CoreSyn.lhs -93 +158
M ./compiler/coreSyn/CoreTidy.lhs -12 +24
M ./compiler/coreSyn/CoreUnfold.lhs -279 +442
M ./compiler/coreSyn/CoreUtils.lhs -181 +21
M ./compiler/coreSyn/MkExternalCore.lhs -1
M ./compiler/coreSyn/PprCore.lhs -49 +106
M ./compiler/cprAnalysis/CprAnalyse.lhs -2 +2
M ./compiler/deSugar/Desugar.lhs -24 +22
M ./compiler/deSugar/DsBinds.lhs -199 +252
M ./compiler/deSugar/DsExpr.lhs -15 +27
M ./compiler/deSugar/DsForeign.lhs -4 +6
M ./compiler/deSugar/DsMeta.hs -16 +19
M ./compiler/deSugar/DsMonad.lhs -3 +3
M ./compiler/deSugar/Match.lhs -4 +5
M ./compiler/hsSyn/Convert.lhs -6 +8
M ./compiler/hsSyn/HsBinds.lhs -35 +27
M ./compiler/hsSyn/HsDecls.lhs -1 +1
M ./compiler/hsSyn/HsExpr.lhs -2 +2
M ./compiler/hsSyn/HsPat.lhs -1 +1
M ./compiler/hsSyn/HsUtils.lhs -2 +7
M ./compiler/iface/BinIface.hs -17 +40
M ./compiler/iface/IfaceSyn.lhs -18 +34
M ./compiler/iface/MkIface.lhs -29 +25
M ./compiler/iface/TcIface.lhs -38 +52
M ./compiler/main/DriverMkDepend.hs -1 +1
M ./compiler/main/ErrUtils.lhs -2 +2
M ./compiler/main/StaticFlags.hs -9 +11
M ./compiler/main/TidyPgm.lhs -115 +120
M ./compiler/parser/Lexer.x -3 +3
M ./compiler/parser/Parser.y.pp -8 +8
M ./compiler/parser/ParserCore.y -5 +6
M ./compiler/parser/RdrHsSyn.lhs -11 +17
M ./compiler/prelude/PrelNames.lhs -2 +4
M ./compiler/prelude/PrelRules.lhs -2 +3
M ./compiler/simplCore/CSE.lhs -2 +1
M ./compiler/simplCore/CoreMonad.lhs -10 +87
M ./compiler/simplCore/FloatIn.lhs -11 +8
M ./compiler/simplCore/FloatOut.lhs -23
M ./compiler/simplCore/OccurAnal.lhs -82 +98
M ./compiler/simplCore/SetLevels.lhs -58 +54
M ./compiler/simplCore/SimplCore.lhs -98 +120
M ./compiler/simplCore/SimplEnv.lhs -26 +23
M ./compiler/simplCore/SimplMonad.lhs -2 +2
M ./compiler/simplCore/SimplUtils.lhs -49 +38
M ./compiler/simplCore/Simplify.lhs -157 +243
M ./compiler/specialise/Rules.lhs -15 +36
M ./compiler/specialise/Specialise.lhs -14 +24
M ./compiler/stgSyn/StgLint.lhs -1 +1
M ./compiler/stranal/DmdAnal.lhs -1 +1
M ./compiler/stranal/StrictAnal.lhs -1
M ./compiler/stranal/WorkWrap.lhs -12 +24
M ./compiler/stranal/WwLib.lhs -1 +1
M ./compiler/typecheck/Inst.lhs -1 +3
M ./compiler/typecheck/TcBinds.lhs -29 +91
M ./compiler/typecheck/TcClassDcl.lhs -79 +90
M ./compiler/typecheck/TcDeriv.lhs -5 +5
M ./compiler/typecheck/TcExpr.lhs -4 +6
M ./compiler/typecheck/TcForeign.lhs -1 +1
M ./compiler/typecheck/TcGenDeriv.lhs -13 +13
M ./compiler/typecheck/TcHsSyn.lhs -8 +5
M ./compiler/typecheck/TcInstDcls.lhs -129 +317
M ./compiler/typecheck/TcRnDriver.lhs -2 +11
M ./compiler/typecheck/TcRnMonad.lhs +1
M ./compiler/typecheck/TcRnTypes.lhs +4
M ./compiler/typecheck/TcSimplify.lhs -10 +10
M ./compiler/typecheck/TcSplice.lhs -2 +2
M ./compiler/typecheck/TcType.lhs -6 +16
M ./compiler/types/InstEnv.lhs -7 +11
M ./compiler/utils/Bag.lhs +3
M ./compiler/utils/Outputable.lhs -18 +20
M ./compiler/vectorise/VectCore.hs -1 +3
M ./compiler/vectorise/VectType.hs +7
bash-3.2$
-------------- next part --------------
A non-text attachment was scrubbed...
Name: results-19Oct09
Type: application/octet-stream
Size: 120746 bytes
Desc: results-19Oct09
Url : http://www.haskell.org/pipermail/cvs-ghc/attachments/20091020/bb0b0d18/results-19Oct09-0001.obj
More information about the Cvs-ghc
mailing list