[GHC] #7258: Compiling DynFlags is jolly slow
GHC
ghc-devs at haskell.org
Thu Oct 26 07:36:42 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 tdammers):
Updated performance graph:
https://ghc.haskell.org/trac/ghc/attachment/ticket/7258/ghc-large-record-
types-optimized.png (this one uses -O, not -O2)
Key observation: read, read-appl and show "explode" while all the other
examples, including getline-appl and getline, behave properly.
A sample profile like the one for 400-field read, shows that the
bottleneck is no longer ASM output or register allocation anymore once -O
is involved:
{{{
Thu Oct 26 01:25 2017 Time and Allocation Profiling Report
(Final)
ghc-stage2 +RTS -p -h -RTS -B/home/tobias/well-
typed/devel/ghc/inplace/lib -B/home/tobias/well-
typed/devel/ghc/inplace/lib -O -fforce-recomp -c examples/t-400-read.hs
total time = 128.62 secs (128624 ticks @ 1000 us, 1
processor)
total alloc = 37,659,351,320 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC
%time %alloc
sink CmmPipeline compiler/cmm/CmmPipeline.hs:(104,13)-(105,59)
77.8 23.6
SimplTopBinds SimplCore compiler/simplCore/SimplCore.hs:761:39-74
9.6 30.0
FloatOutwards SimplCore compiler/simplCore/SimplCore.hs:471:40-66
3.0 10.4
RegAlloc-linear AsmCodeGen
compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55) 1.6 5.0
OccAnal SimplCore
compiler/simplCore/SimplCore.hs:(739,22)-(740,67) 1.1 4.2
pprNativeCode AsmCodeGen
compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65) 1.0 4.7
NewStranal SimplCore compiler/simplCore/SimplCore.hs:480:40-63
0.9 4.2
CoreTidy HscMain compiler/main/HscMain.hs:1253:27-67
0.7 2.9
StgCmm HscMain compiler/main/HscMain.hs:(1426,13)-(1427,62)
0.6 1.9
regLiveness AsmCodeGen
compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52) 0.5 1.4
genMachCode AsmCodeGen
compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62) 0.4 1.3
NativeCodeGen CodeOutput compiler/main/CodeOutput.hs:171:18-78
0.4 1.6
CommonSubExpr SimplCore compiler/simplCore/SimplCore.hs:462:40-56
0.2 1.1
deSugar HscMain compiler/main/HscMain.hs:511:7-44
0.2 1.1
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7258#comment:56>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list