-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
area-GC-coreclrquestionAnswer questions and provide assistance, not an issue with source code or documentation.Answer questions and provide assistance, not an issue with source code or documentation.
Milestone
Description
s_useThreadAllocationContexts
is ever false for win-x86/x64 and single processor:
runtime/src/coreclr/vm/gcheaputilities.cpp
Line 376 in 0682b04
s_useThreadAllocationContexts = !useGlobalAllocationContext && (IsServerHeap() || ::g_SystemInfo.dwNumberOfProcessors != 1 || CPUGroupInfo::CanEnableGCCPUGroups()); |
In some places they have specialized optimizations, e.g. this win-x64 only branch:
runtime/src/coreclr/vm/jitinterfacegen.cpp
Lines 85 to 98 in 0682b04
else | |
{ | |
// Replace the 1p slow allocation helpers with faster version | |
// | |
// When we're running Workstation GC on a single proc box we don't have | |
// InlineGetThread versions because there is no need to call GetThread | |
SetJitHelperFunction(CORINFO_HELP_NEWSFAST, JIT_TrialAllocSFastSP); | |
SetJitHelperFunction(CORINFO_HELP_NEWSFAST_ALIGN8, JIT_TrialAllocSFastSP); | |
SetJitHelperFunction(CORINFO_HELP_BOX, JIT_BoxFastUP); | |
SetJitHelperFunction(CORINFO_HELP_NEWARR_1_VC, JIT_NewArr1VC_UP); | |
SetJitHelperFunction(CORINFO_HELP_NEWARR_1_OBJ, JIT_NewArr1OBJ_UP); | |
ECall::DynamicallyAssignFCallImpl(GetEEFuncEntryPoint(AllocateStringFastUP), ECall::FastAllocateString); | |
} |
Are these relevant? If not, we can delete these paths.
Metadata
Metadata
Assignees
Labels
area-GC-coreclrquestionAnswer questions and provide assistance, not an issue with source code or documentation.Answer questions and provide assistance, not an issue with source code or documentation.