
#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 reasonable, but it raises a few questions:
Indeed maybe the demand analyser should not even record signle-entry- ness in the Ids, since it is so fragile.
Yes, I’m all for not storing information that we do not keep up-to-date, as it will just be too likely that a later pass uses them, and things break again in obscure places. But then this should also apply to the strictness-and-demand signature of functions, which should be stripped of any `1*` information! But that’s not too bad; the final, non-ww pass could attach full strictness signatures to exported functions (at least as long as we don’t have CSE as a STG-to-STG-transformation as proposed in #9291). What should be the consequence for `OneShot` annotations on lambda binders? Don’t all the same considerations apply here? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11731#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler