
#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): Despite the rule that one should set up a proper benchmark first, and then start hacking, I am now validating a patch that groups the blocks not only by hash, but also by the list of successor labels. These should be equal for all equal blocks, so we do not lose anything, but this should also give much smaller lists to search through linearly, and they can be updated with a new substitution without traversing the whole heap. I can probably report if that helps tomorrow. There are more way to improve the code (e.g. not repeatedly building this map, but rather working with one), but before I do that I really should get some benchmarks for this issue :-) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10397#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler