[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