[GHC] #10397: Compiler performance regression 7.6 -> 7.8 in elimCommonBlocks

GHC ghc-devs at haskell.org
Sat May 16 11:23:01 UTC 2015


#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


More information about the ghc-tickets mailing list