
#11731: Simplifier: Inlining trivial let can lose sharing -------------------------------------+------------------------------------- Reporter: nomeata | Owner: Type: bug | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D2064 Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata):
Sounds like a plan. I am currently checking the effect of a very late, non-ww, demand analyzer.
It does fix the bug here (both as observed in nofib, and the test case I produced here). The numbers for thunks are the same as with `-flate-dmd- anal`, though. I wonder: What else (besides the code-generator) uses the used-once information in a critical way? In particular, `isUsedOnce` is *only* mentioned in `CoreToStg`. Should we even bother removing the information then? Anyways, I implemented it (wip/T11731 for now). I did put the code into DmdAnal.hs, after all, that’s where it belongs, and added a boolean flag to `CoreDoStrictness`. A full validation is running. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11731#comment:32 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler