
#14137: Do more inlining into non-recursive join points -------------------------------------+------------------------------------- Reporter: simonpj | Owner: nomeata Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: JoinPoints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata):
I think `isJoinId` would be fine, and much faster.
Isn’t it the simplifier that turns a potential join point into one? So if I use `isJoinId`, won’t this delay the effect of the patch to the first run off the occurrence analyser after a simplifier run, instead of doing it right in the first occurrence analyzer run? (`tagNonRecBinder` only modifies the `idOccInfo`).
Not quite: ds5 won't be a join point; it'll disappear entirely by being inlined.
What about the many occurrences of `ds5` in `safe`? Don’t they prevent inlining, due to code duplication? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14137#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler