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