Concrete type information does not propagate through struct fields #110290
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
tenet-performance
Performance related issue
Milestone
Description
It appears that JIT is not able to propagate concrete type information through struct fields typed as the type's abstract parent.
The example below matches the shape of stateless
FSharpFunc<T1...Tn>
instantiations by F#.Given reduced repro:
The Tier1-PGO compilation of
Example()
isIt would be great if JIT could propagate the concrete type here through the field and not rely on DPGO to devirtualize the func types back. This also does not devirtualize on NativeAOT for more than single
MyFunc
implementation. Thanks!Configuration
Regression?
Not tested on .NET 8
The text was updated successfully, but these errors were encountered: