Note [knownCon occ info]
If the case binder is not dead, then neither are the pattern bound
variables:
case <any> of x { (a,b) ->
case x of { (p,q) -> p } }
Here (a,b) both look dead, but come alive after the inner case is eliminated.
The point is that we bring into the envt a binding
let x = (a,b)
after the outer case, and that makes (a,b) alive. At least we do unless
the case binder is guaranteed dead. References 0
This Note does not link to any other.
Referenced by 2
- DataAlt occ info GHC.Core.Opt.Simplify.Iteration
- GHC.Core.Opt.Simplify.Iteration call site