You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JIT: Support for devirtualizing array interface methods (#108153)
Update JIT and runtime to devirtualize interface calls on arrays
over non-shared element types.
Shared types are not (yet) handled.
Add intrinsic and inlining attributes to key methods in the BCL.
This allows the JIT to devirtualize and inline enumerator creation
and devirtualize and inline all methods that access the enumerator.
And this in turn allows the enumerator to be stack allocated in some
simple cases.
However, the enumerator fields are not (yet) physically promoted,
because of an optimization in the BCL to return a static empty
array enumerator. So the object being accessed later is ambiguous.
Alse ensure that since GDV resolves the virtual call twice, and
expects to get similar results both times, things work for the array
case by keeping track of the initial devirtualization inputs.
Progress towards #62457.
0 commit comments