Note [NOINLINE and strictness]
At one point we disabled strictness for NOINLINE functions, on the grounds that they should be entirely opaque. But that lost lots of useful semantic strictness information, so now we analyse them like any other function, and pin strictness information on them. That in turn forces us to worker/wrapper them; see Note [Worker/wrapper for NOINLINE functions] in GHC.Core.Opt.WorkWrap.
References 1
- Worker/wrapper for NOINLINE functions GHC.Core.Opt.WorkWrap
Referenced by 1
- GHC.Core.Opt.DmdAnal call site