[GHC] #15703: Significant compilation time blowup when refactoring singletons-heavy code
GHC
ghc-devs at haskell.org
Mon Oct 8 16:21:54 UTC 2018
#15703: Significant compilation time blowup when refactoring singletons-heavy code
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.8.1
Component: Compiler | Version: 8.6.1
Resolution: | Keywords:
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 RyanGlScott):
I attached the results of compiling `Lib.hs` with `-dshow-passes` enabled.
Of particular note is:
{{{
Result size of Float out(FOS {Lam = Just 0,
Consts = True,
OverSatApps = False})
= {terms: 950, types: 14,499, coercions: 83,275, joins: 0/12}
!!! Float out(FOS {Lam = Just 0,
Consts = True,
OverSatApps = False}) [Lib]: finished in 28.01
milliseconds, allocated 19.390 megabytes
*** Simplifier [Lib]:
Result size of Simplifier iteration=1
= {terms: 924, types: 12,141, coercions: 235,672, joins: 0/46}
Result size of Simplifier iteration=2
= {terms: 755, types: 5,948, coercions: 312,927, joins: 0/17}
Result size of Simplifier iteration=3
= {terms: 715, types: 3,828, coercions: 403,226, joins: 0/2}
Result size of Simplifier
= {terms: 703, types: 3,759, coercions: 228,342, joins: 0/2}
!!! Simplifier [Lib]: finished in 208488.74 milliseconds, allocated
373891.763 megabytes
*** Simplifier [Lib]:
Result size of Simplifier
= {terms: 703, types: 3,759, coercions: 228,342, joins: 0/2}
}}}
The number of coercions appears to jump between float-out and the first
simplifier pass. However, it's a later simplifier pass that takes up the
bulk of the time (208488.74 milliseconds of it).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15703#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list