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
Support devirtualizing non-shared GVMs in R2R (#123183)
Implement the support for GVM devirtualization in managed type system.
It shares the same issue in #122023 where we are still not able to
devirt shared GVMs due to lacking a proper generic context, so let's do
the non-shared case first.
NativeAOT still not supported yet as it requires some work in the JIT to
stop spilling the helper call for fat pointers.
Contributes to #112596
/cc: @MichalStrehovsky@jakobbotsch
---------
Co-authored-by: Copilot <[email protected]>
CORINFO_DEVIRTUALIZATION_FAILED_DUPLICATE_INTERFACE, // crossgen2 virtual method algorithm and runtime algorithm differ in the presence of duplicate interface implementations
1559
1559
CORINFO_DEVIRTUALIZATION_FAILED_DECL_NOT_REPRESENTABLE, // Decl method cannot be represented in R2R image
1560
1560
CORINFO_DEVIRTUALIZATION_FAILED_TYPE_EQUIVALENCE, // Support for type equivalence in devirtualization is not yet implemented in crossgen2
1561
-
CORINFO_DEVIRTUALIZATION_FAILED_GENERIC_VIRTUAL, // Devirtualization of generic virtual methods is not yet implemented in crossgen2
1562
1561
CORINFO_DEVIRTUALIZATION_COUNT, // sentinel for maximum value
Copy file name to clipboardExpand all lines: src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs
+1-2Lines changed: 1 addition & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1126,7 +1126,7 @@ public enum CORINFO_DEVIRTUALIZATION_DETAIL
1126
1126
{
1127
1127
CORINFO_DEVIRTUALIZATION_UNKNOWN,// no details available
1128
1128
CORINFO_DEVIRTUALIZATION_SUCCESS,// devirtualization was successful
1129
-
CORINFO_DEVIRTUALIZATION_FAILED_CANON,// object class was canonical
1129
+
CORINFO_DEVIRTUALIZATION_FAILED_CANON,// object class or method was canonical
1130
1130
CORINFO_DEVIRTUALIZATION_FAILED_COM,// object class was com
1131
1131
CORINFO_DEVIRTUALIZATION_FAILED_CAST,// object class could not be cast to interface class
1132
1132
CORINFO_DEVIRTUALIZATION_FAILED_LOOKUP,// interface method could not be found
@@ -1142,7 +1142,6 @@ public enum CORINFO_DEVIRTUALIZATION_DETAIL
1142
1142
CORINFO_DEVIRTUALIZATION_FAILED_DUPLICATE_INTERFACE,// crossgen2 virtual method algorithm and runtime algorithm differ in the presence of duplicate interface implementations
1143
1143
CORINFO_DEVIRTUALIZATION_FAILED_DECL_NOT_REPRESENTABLE,// Decl method cannot be represented in R2R image
1144
1144
CORINFO_DEVIRTUALIZATION_FAILED_TYPE_EQUIVALENCE,// Support for type equivalence in devirtualization is not yet implemented in crossgen2
1145
-
CORINFO_DEVIRTUALIZATION_FAILED_GENERIC_VIRTUAL,// Devirtualization of generic virtual methods is not yet implemented in crossgen2
1146
1145
CORINFO_DEVIRTUALIZATION_COUNT,// sentinel for maximum value
0 commit comments