#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