
#10397: Compiler performance regression 7.6 -> 7.8 in elimCommonBlocks -------------------------------------+------------------------------------- Reporter: TobyGoodwin | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 Resolution: | Keywords: Operating System: Unknown/Multiple | performance Type of failure: None/Unknown | Architecture: Blocked By: | Unknown/Multiple Related Tickets: | Test Case: see ticket | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by nomeata): According to a profiled run, `elimCommonBlocks` now caters for 24.4% of the runtime, second to `sequenceBlocks` in `AsmCodeGen` with 59.5% (which I did not look at). `elimCommonBlocks` still spends most of the time comparing blocks, most of the time uselessly: It iterates, and in each iteration compares all blocks with the same hash key (hash + list of successor labels) again. This is pointless: If the list of successor labels has not changed, then the blocks cannot suddenly be equal. I have an idea how to avoid that. Let’s see if it pays off... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10397#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler