[GHC] #10293: CallArity taking 20% of compile time

GHC ghc-devs at haskell.org
Thu Apr 16 12:06:55 UTC 2015


#10293: CallArity taking 20% of compile time
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                   Owner:  nomeata
            Type:  bug               |                  Status:  new
        Priority:  high              |               Milestone:  7.12.1
       Component:  Compiler          |                 Version:  7.10.1
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------

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

 In [changeset:"9654a7cf8580bc3a027bf8b39c06d916050c446d/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="9654a7cf8580bc3a027bf8b39c06d916050c446d"
 Call Arity: Trade precision for performance in large mutually recursive
 groups

 Sometimes (especial with derived Data instances, it seems), one can have
 very large mutually recursive bindings. Calculating the Call Arity
 analysis result with full precision is an expensive operation in these
 case. So above a certain threshold (25, for no good reason besides
 intuition), skip this calculation and assume the recursion is not
 linear, which is a conservative result.

 With this, the Call Arity analysis accounts for 3.7% of the compile time
 of haskell-src-exts. Fixes #10293

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

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


More information about the ghc-tickets mailing list