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

GHC ghc-devs at haskell.org
Mon May 18 08:08:40 UTC 2015


#10397: Compiler performance regression 7.6 -> 7.8 in elimCommonBlocks
-------------------------------------+-------------------------------------
        Reporter:  TobyGoodwin       |                   Owner:
            Type:  bug               |                  Status:  merge
        Priority:  normal            |               Milestone:  7.10.2
       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:  Phab:D892
-------------------------------------+-------------------------------------

Comment (by nomeata):

 Replying to [comment:23 nomeata]:
 > I wonder if it is faster to hash the list of labels and group them using
 a single level IntMap instead of the current trie based on nested
 IntMap.... That’s worth a try.

 no, it’s not. And profiling shows why: The time is still spent mostly in
 `eqBlockBodyWith`. With my refactoring, the number of calls to that
 function is minimal anyways, so the only way to improve the situation is
  * a better hash function (it currently does not take operators into
 account, and maybe it can also take “internal” functions into account)
  * no linear search by using a trie for blocks, similar how we do it for
 Core expressions.
  * lose precision.

 I’ll add some debug output to see how these blocks that cannot be merged
 look like.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10397#comment:24>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list