Skip to content

Commit fd62c7f

Browse files
authoredMay 28, 2020
GCCoverageInfo support 32-bit Tiered compilation (#37116)
* GCCoverageInfo support 32-bit Tiered compilation Update the GC coverage info code path to respect Tiered compilation on a 32-bit platform.
1 parent 95cde18 commit fd62c7f

File tree

3 files changed

+22
-19
lines changed

3 files changed

+22
-19
lines changed
 

‎src/coreclr/src/inc/CrstTypes.def

+1
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,7 @@ End
493493
Crst CodeVersioning
494494
AcquiredBefore LoaderHeap SingleUseLock DeadlockDetection JumpStubCache DebuggerController FuncPtrStubs
495495
AcquiredAfter ReJITGlobalRequest ThreadStore GlobalStrLiteralMap SystemDomain DebuggerMutex MethodDescBackpatchInfoTracker
496+
ReadyToRunEntryPointToMethodDescMap ClassInit AppDomainCache TypeIDMap FusionAppCtx
496497
End
497498

498499
// Used to synchronize all global requests (which may span multiple AppDomains) which add

‎src/coreclr/src/inc/crsttypes.h

+15-15
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ enum CrstType
181181
// An array mapping CrstType to level.
182182
int g_rgCrstLevelMap[] =
183183
{
184-
9, // CrstAllowedFiles
185-
9, // CrstAppDomainCache
184+
8, // CrstAllowedFiles
185+
10, // CrstAppDomainCache
186186
14, // CrstAppDomainHandleTable
187187
0, // CrstArgBasedStubCache
188188
0, // CrstAssemblyDependencyGraph
@@ -193,14 +193,14 @@ int g_rgCrstLevelMap[] =
193193
4, // CrstAvailableParamTypes
194194
7, // CrstBaseDomain
195195
-1, // CrstCCompRC
196-
9, // CrstCer
196+
8, // CrstCer
197197
13, // CrstClassFactInfoHash
198-
8, // CrstClassInit
198+
11, // CrstClassInit
199199
-1, // CrstClrNotification
200200
0, // CrstCLRPrivBinderMaps
201201
3, // CrstCLRPrivBinderMapsAdd
202202
6, // CrstCodeFragmentHeap
203-
10, // CrstCodeVersioning
203+
9, // CrstCodeVersioning
204204
0, // CrstCOMCallWrapper
205205
4, // CrstCOMWrapperCache
206206
0, // CrstConnectionNameTable
@@ -216,7 +216,7 @@ int g_rgCrstLevelMap[] =
216216
0, // CrstDebuggerHeapExecMemLock
217217
0, // CrstDebuggerHeapLock
218218
4, // CrstDebuggerJitInfo
219-
11, // CrstDebuggerMutex
219+
10, // CrstDebuggerMutex
220220
0, // CrstDelegateToFPtrHash
221221
16, // CrstDomainLocalBlock
222222
0, // CrstDynamicIL
@@ -232,14 +232,14 @@ int g_rgCrstLevelMap[] =
232232
3, // CrstFCall
233233
7, // CrstFriendAccessCache
234234
7, // CrstFuncPtrStubs
235-
5, // CrstFusionAppCtx
236-
11, // CrstGCCover
235+
10, // CrstFusionAppCtx
236+
10, // CrstGCCover
237237
13, // CrstGlobalStrLiteralMap
238238
1, // CrstHandleTable
239239
0, // CrstHostAssemblyMap
240240
3, // CrstHostAssemblyMapAdd
241241
0, // CrstIbcProfile
242-
9, // CrstIJWFixupData
242+
8, // CrstIJWFixupData
243243
0, // CrstIJWHash
244244
7, // CrstILStubGen
245245
3, // CrstInlineTrackingMap
@@ -250,7 +250,7 @@ int g_rgCrstLevelMap[] =
250250
13, // CrstIOThreadpoolWorker
251251
0, // CrstIsJMCMethod
252252
7, // CrstISymUnmanagedReader
253-
8, // CrstJit
253+
11, // CrstJit
254254
0, // CrstJitGenericHandleCache
255255
16, // CrstJitInlineTrackingMap
256256
3, // CrstJitPatchpoint
@@ -290,9 +290,9 @@ int g_rgCrstLevelMap[] =
290290
3, // CrstRCWCache
291291
0, // CrstRCWCleanupList
292292
3, // CrstRCWRefCache
293-
4, // CrstReadyToRunEntryPointToMethodDescMap
293+
10, // CrstReadyToRunEntryPointToMethodDescMap
294294
0, // CrstReDacl
295-
9, // CrstReflection
295+
8, // CrstReflection
296296
17, // CrstReJITGlobalRequest
297297
20, // CrstRemoting
298298
3, // CrstRetThunkCache
@@ -323,10 +323,10 @@ int g_rgCrstLevelMap[] =
323323
13, // CrstThreadpoolWorker
324324
4, // CrstThreadStaticDataHashTable
325325
12, // CrstThreadStore
326-
9, // CrstTieredCompilation
327-
9, // CrstTPMethodTable
326+
8, // CrstTieredCompilation
327+
8, // CrstTPMethodTable
328328
3, // CrstTypeEquivalenceMap
329-
7, // CrstTypeIDMap
329+
10, // CrstTypeIDMap
330330
3, // CrstUMEntryThunkCache
331331
0, // CrstUMThunkHash
332332
3, // CrstUniqueStack

‎src/coreclr/src/vm/jitinterface.cpp

+6-4
Original file line numberDiff line numberDiff line change
@@ -14217,15 +14217,17 @@ TADDR EECodeInfo::GetSavedMethodCode()
1421714217
} CONTRACTL_END;
1421814218
#ifndef HOST_64BIT
1421914219
#if defined(HAVE_GCCOVER)
14220-
_ASSERTE (!m_pMD->m_GcCover || GCStress<cfg_instr>::IsEnabled());
14220+
14221+
PTR_GCCoverageInfo gcCover = GetNativeCodeVersion().GetGCCoverageInfo();
14222+
_ASSERTE (!gcCover || GCStress<cfg_instr>::IsEnabled());
1422114223
if (GCStress<cfg_instr>::IsEnabled()
14222-
&& m_pMD->m_GcCover)
14224+
&& gcCover)
1422314225
{
14224-
_ASSERTE(m_pMD->m_GcCover->savedCode);
14226+
_ASSERTE(gcCover->savedCode);
1422514227

1422614228
// Make sure we return the TADDR of savedCode here. The byte array is not marshaled automatically.
1422714229
// The caller is responsible for any necessary marshaling.
14228-
return PTR_TO_MEMBER_TADDR(GCCoverageInfo, m_pMD->m_GcCover, savedCode);
14230+
return PTR_TO_MEMBER_TADDR(GCCoverageInfo, gcCover, savedCode);
1422914231
}
1423014232
#endif //defined(HAVE_GCCOVER)
1423114233
#endif

0 commit comments

Comments
 (0)
Please sign in to comment.