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

GHC ghc-devs at haskell.org
Mon May 18 11:12:11 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
                                     |  Phab:D896
-------------------------------------+-------------------------------------

Comment (by Joachim Breitner <mail@…>):

 In [changeset:"73f836f5d57a3106029b573c42f83d2039d21d89/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="73f836f5d57a3106029b573c42f83d2039d21d89"
 CmmCommonBlockElim: Improve hash function

 Previously, the hash function used to cut down the number of block
 comparisons did not take local registers into account, causing far too
 many similar, but different bocks to be considered candidates for the
 (expensive!) comparision.

 Adding register to the hash takes CmmCommonBlockElim's share of the
 runtime of the example in #10397 from 17% to 2.5%, and eliminates all
 unwanted hash collisions.

 This patch also replaces the fancy trie by a plain Data.Map. It turned
 out to be not performance critical, so this simplifies the code.

 Differential Revision: https://phabricator.haskell.org/D896
 }}}

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


More information about the ghc-tickets mailing list