#12620: Allow the user to prevent floating and CSE -------------------------------------+------------------------------------- Reporter: nomeata | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #9520, #8457 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata): Replying to [comment:7 simonpj]:
I think that "noupdate" would require some careful thought. What if I say {{{ f x = if ... then Yield blah x else ... }}} Then the "noupdate" second field of `Yield` is just the parameter to `f`. Does the caller have to know not to build an updatable thunk.
I guess we would instruct the demand analysis to believe that `Yield` has strictness signature `<L,U><L,1*U>` and thus this once-used information will be propagated, at least to the extent possible. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12620#comment:10> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler