@@ -4101,11 +4101,12 @@ enum GenTreeCallFlags : unsigned int
41014101 GTF_CALL_M_GUARDED_DEVIRT_CHAIN = 0x00080000 , // this call is a candidate for chained guarded devirtualization
41024102 GTF_CALL_M_ALLOC_SIDE_EFFECTS = 0x00100000 , // this is a call to an allocator with side effects
41034103 GTF_CALL_M_SUPPRESS_GC_TRANSITION = 0x00200000 , // suppress the GC transition (i.e. during a pinvoke) but a separate GC safe point is required.
4104- GTF_CALL_M_EXP_RUNTIME_LOOKUP = 0x00400000 , // [DEBUG only] this call needs to be transformed into CFG for the dynamic dictionary expansion feature.
41054104 GTF_CALL_M_EXPANDED_EARLY = 0x00800000 , // the Virtual Call target address is expanded and placed in gtControlExpr in Morph rather than in Lower
41064105 GTF_CALL_M_HAS_LATE_DEVIRT_INFO = 0x01000000 , // this call has late devirtualzation info
41074106 GTF_CALL_M_LDVIRTFTN_INTERFACE = 0x02000000 , // ldvirtftn on an interface type
41084107 GTF_CALL_M_CAST_CAN_BE_EXPANDED = 0x04000000 , // this cast (helper call) can be expanded if it's profitable. To be removed.
4108+ GTF_CALL_M_CAST_OBJ_NONNULL = 0x08000000 , // if we expand this specific cast we don't need to check the input object for null
4109+ // NOTE: if needed, this flag can be removed, and we can introduce new _NONNUL cast helpers
41094110};
41104111
41114112inline constexpr GenTreeCallFlags operator ~(GenTreeCallFlags a)
@@ -4141,6 +4142,7 @@ enum GenTreeCallDebugFlags : unsigned int
41414142 GTF_CALL_MD_DEVIRTUALIZED = 0x00000002 , // this call was devirtualized
41424143 GTF_CALL_MD_UNBOXED = 0x00000004 , // this call was optimized to use the unboxed entry point
41434144 GTF_CALL_MD_GUARDED = 0x00000008 , // this call was transformed by guarded devirtualization
4145+ GTF_CALL_MD_RUNTIME_LOOKUP_EXPANDED = 0x00000010 , // this runtime lookup helper is expanded
41444146};
41454147
41464148inline constexpr GenTreeCallDebugFlags operator ~(GenTreeCallDebugFlags a)
@@ -5476,21 +5478,6 @@ struct GenTreeCall final : public GenTree
54765478 }
54775479#endif
54785480
5479- void SetExpRuntimeLookup ()
5480- {
5481- gtCallMoreFlags |= GTF_CALL_M_EXP_RUNTIME_LOOKUP;
5482- }
5483-
5484- void ClearExpRuntimeLookup ()
5485- {
5486- gtCallMoreFlags &= ~GTF_CALL_M_EXP_RUNTIME_LOOKUP;
5487- }
5488-
5489- bool IsExpRuntimeLookup () const
5490- {
5491- return (gtCallMoreFlags & GTF_CALL_M_EXP_RUNTIME_LOOKUP) != 0 ;
5492- }
5493-
54945481 void SetExpandedEarly ()
54955482 {
54965483 gtCallMoreFlags |= GTF_CALL_M_EXPANDED_EARLY;
@@ -5684,6 +5671,8 @@ struct GenTreeCall final : public GenTree
56845671
56855672 bool IsHelperCall (Compiler* compiler, unsigned helper) const ;
56865673
5674+ bool IsRuntimeLookupHelperCall (Compiler* compiler) const ;
5675+
56875676 bool IsSpecialIntrinsic (Compiler* compiler, NamedIntrinsic ni) const ;
56885677
56895678 CorInfoHelpFunc GetHelperNum () const ;
0 commit comments