
#10800: vector-0.11 compile time increased substantially with 7.10.1 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: bug | Status: new Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 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 bgamari): I have noticed that there is a qualitative difference in the verbose- core2core output between 7.8.4 and 7.10.3: namely 7.8 lacks an initial gentle simplifier pass. In the case of 7.10.3 the compiler inlines `Data.Vector.Generic.zip` in the `SimplMode {Phase = 2 [main], inline, rules, eta-expand, case-of-case}` pass, producing a significant amount of unresolved `stream`/`unstream` pairs relatively early in simplification. The last appearance of `unstream` doesn't disappear until `SimplMode {Phase = 0 [main], inline, rules, eta-expand, case-of-case}`. By contrast, 7.8.4 doesn't perform this inlining until much later (right before the second FloatOut; it's a bit hard to tell precisely since `verbose-core2core` doesn't output simplifier passes). As far as I can tell, it manages to collapse all of the stream fusion apparatus in a single simplifier pass. I believe this may be the reason for the difference. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10800#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler