diff options
author | Fadi Hanna <fadim@microsoft.com> | 2019-04-01 12:07:47 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-01 12:07:47 -0700 |
commit | bc9248cad132fa01dd2b641b6b22849bc7a05457 (patch) | |
tree | 5d1ee71059353a66004fc7a4d2501a7452db849f /src/vm/methodtable.h | |
parent | ff43a803a814eaaa5eba02cafa4a91def3e4c7be (diff) | |
download | coreclr-bc9248cad132fa01dd2b641b6b22849bc7a05457.tar.gz coreclr-bc9248cad132fa01dd2b641b6b22849bc7a05457.tar.bz2 coreclr-bc9248cad132fa01dd2b641b6b22849bc7a05457.zip |
Enable R2R compilation/inlining of PInvoke stubs where no marshalling is required (#22560)
* These changes enable the inlining of some PInvokes that do not require any marshalling. With inlined pinvokes, R2R performance should become slightly better, since we'll avoid jitting some of the pinvoke IL stubs that we jit today for S.P.CoreLib. Performance gains not yet measured.
* Added JIT_PInvokeBegin/End helpers for all architectures. Linux stubs not yet implemented
* Add INLINE_GETTHREAD for arm/arm64
* Set CORJIT_FLAG_USE_PINVOKE_HELPERS jit flag for ReadyToRun compilations
* Updating R2RDump tool to handle pinvokes
Diffstat (limited to 'src/vm/methodtable.h')
-rw-r--r-- | src/vm/methodtable.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/vm/methodtable.h b/src/vm/methodtable.h index 84f8399dc2..74febebc39 100644 --- a/src/vm/methodtable.h +++ b/src/vm/methodtable.h @@ -326,8 +326,10 @@ struct MethodTableWriteableData enum_flag_NGEN_OverridingInterface = 0x00080000, // Overriding interface that we should generate WinRT CCW stubs for. #ifdef FEATURE_READYTORUN_COMPILER - enum_flag_NGEN_IsLayoutFixedComputed = 0x0010000, // Set if we have cached the result of IsLayoutFixed computation - enum_flag_NGEN_IsLayoutFixed = 0x0020000, // The result of the IsLayoutFixed computation + enum_flag_NGEN_IsLayoutFixedComputed = 0x0010000, // Set if we have cached the result of IsLayoutFixed computation + enum_flag_NGEN_IsLayoutFixed = 0x0020000, // The result of the IsLayoutFixed computation + enum_flag_NGEN_IsLayoutInCurrentVersionBubbleComputed = 0x0040000, // Set if we have cached the result of IsLayoutInCurrentVersionBubble computation + enum_flag_NGEN_IsLayoutInCurrentVersionBubble = 0x0080000, // The result of the IsLayoutInCurrentVersionBubble computation #endif #endif // FEATURE_PREJIT @@ -4144,6 +4146,10 @@ public: #ifdef FEATURE_READYTORUN_COMPILER // + // Is field layout in this type within the current version bubble? + // + BOOL IsLayoutInCurrentVersionBubble(); + // // Is field layout in this type fixed within the current version bubble? // This check does not take the inheritance chain into account. // |