[GHC] #7258: Compiling DynFlags is jolly slow

GHC ghc-devs at haskell.org
Mon Oct 30 06:31:44 UTC 2017


#7258: Compiling DynFlags is jolly slow
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  simonpj
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.6.1
      Resolution:                    |             Keywords:  deriving-perf
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by alexbiehl):

 I tried the suggestion in comment [comment:67] and got these results for
 compiling `W2.hs`

 Vanilla:

 {{{
 COST CENTRE     MODULE      SRC
 %time %alloc

 sink            CmmPipeline compiler/cmm/CmmPipeline.hs:(104,13)-(105,59)
 55.7   15.9
 SimplTopBinds   SimplCore   compiler/simplCore/SimplCore.hs:761:39-74
 19.5   30.6
 FloatOutwards   SimplCore   compiler/simplCore/SimplCore.hs:471:40-66
 4.2    9.0
 RegAlloc-linear AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55)    4.0   11.1
 pprNativeCode   AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65)    2.8    6.3
 NewStranal      SimplCore   compiler/simplCore/SimplCore.hs:480:40-63
 1.6    3.7
 OccAnal         SimplCore
 compiler/simplCore/SimplCore.hs:(739,22)-(740,67)     1.5    3.5
 StgCmm          HscMain     compiler/main/HscMain.hs:(1426,13)-(1427,62)
 1.2    2.4
 regLiveness     AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52)    1.2    1.9
 genMachCode     AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62)    0.9    1.8
 NativeCodeGen   CodeOutput  compiler/main/CodeOutput.hs:171:18-78
 0.9    2.1
 CoreTidy        HscMain     compiler/main/HscMain.hs:1253:27-67
 0.8    1.9
 }}}

 `skpped` as UniqSet:

 {{{
 COST CENTRE     MODULE         SRC
 %time %alloc

 SimplTopBinds   SimplCore      compiler/simplCore/SimplCore.hs:761:39-74
 38.3   29.0
 sink            CmmPipeline
 compiler/cmm/CmmPipeline.hs:(104,13)-(105,59)        13.2   20.3
 RegAlloc-linear AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55)    8.3   10.5
 FloatOutwards   SimplCore      compiler/simplCore/SimplCore.hs:471:40-66
 8.1    8.5
 pprNativeCode   AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65)    5.4    5.9
 NewStranal      SimplCore      compiler/simplCore/SimplCore.hs:480:40-63
 3.1    3.5
 OccAnal         SimplCore
 compiler/simplCore/SimplCore.hs:(739,22)-(740,67)     2.9    3.3
 StgCmm          HscMain
 compiler/main/HscMain.hs:(1426,13)-(1427,62)          2.3    2.3
 regLiveness     AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52)    2.1    1.8
 NativeCodeGen   CodeOutput     compiler/main/CodeOutput.hs:171:18-78
 1.7    2.0
 genMachCode     AsmCodeGen
 compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62)    1.6    1.7
 CoreTidy        HscMain        compiler/main/HscMain.hs:1253:27-67
 1.4    1.8
 foldNodesBwdOO  Hoopl.Dataflow
 compiler/cmm/Hoopl/Dataflow.hs:(397,1)-(403,17)       1.1    0.8
 }}}

 Good results I think.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7258#comment:70>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list