
#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