[GHC] #9961: compile-time performance regression compiling genprimcode

GHC ghc-devs at haskell.org
Sun Jan 11 23:17:19 UTC 2015


#9961: compile-time performance regression compiling genprimcode
-------------------------------------+-------------------------------------
        Reporter:  hvr               |                   Owner:  simonpj
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.10.1
       Component:  Compiler          |                 Version:  7.10.1-rc1
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by scpmw):

 `lintAnnots` is definitely not the villain here: It doesn't change
 performance if I simply short-cut it out. All cost then lands in
 `Core2Core`. Reason is that `FloatOut` floats out the bodies of
 `doCorePass` past the cost-centre annotations. This is because the bodies
 are partially applied functions (so `exprIsHNF` is set), which makes
 floating treat it like a constructor application. I'm pretty sure that's
 wrong, and ezyang's tick semantics seem to agree.

 At this point I'm still trying to understand how this got introduced (most
 likely my fault in some way). If my diagnosis is right, we'll probably
 need a new version of `exprIsHNF` or `mkTick`. In any case, while this
 definitely needs to be fixed, it's not the cause for this slow-down.

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


More information about the ghc-tickets mailing list