Open
Description
There are a number of examples of cases now where the jit has difficulty with mixed byref/native int uses of some resource. These come about from pointer reinterpretation methods like Unsafe.AsRef
and other places.
The idea here is to run a phase after inlining to build a globally consistent view of the type of a local, possibly introducing casts where appropriate (like morph's "cast out of gc") so that later phases can reason about type correctness in a strictly local fashion.
category:implementation
theme:ir
skill-level:expert
cost:large