Note [Preserve evaluatedness]
Consider
data T = MkT !Bool
....(case v of MkT y ->
let z# = case y of
True -> 1#
False -> 2#
in ...)
The z# binding is ok because the RHS is ok-for-speculation,
but Lint will complain unless it can *see* that. So we
preserve the evaluated-ness on 'y' in tidyBndr.
(Another alternative would be to tidy unboxed lets into cases,
but that seems more indirect and surprising.) References 0
This Note does not link to any other.
Referenced by 4
- GHC.Core.Tidy call site ×2
- GHC.CoreToStg.Prep call site
- Drop unfoldings and rules GHC.CoreToStg.Prep