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.
Some examples: #10821, #11492
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
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.AsRefand other places.Some examples: #10821, #11492
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