summaryrefslogtreecommitdiff
path: root/src/vm/tieredcompilation.h
diff options
context:
space:
mode:
authorKoundinya Veluri <kouvel@users.noreply.github.com>2019-02-07 17:51:29 -0800
committerGitHub <noreply@github.com>2019-02-07 17:51:29 -0800
commit19ed7168345d34336cbc5a334b3fca36046a1af1 (patch)
tree97077ea53d9ffb565a61952c2ad31ac3e8a749f7 /src/vm/tieredcompilation.h
parentaa8e508302816656477d2ba4a1ec691dfb7af9b1 (diff)
downloadcoreclr-19ed7168345d34336cbc5a334b3fca36046a1af1.tar.gz
coreclr-19ed7168345d34336cbc5a334b3fca36046a1af1.tar.bz2
coreclr-19ed7168345d34336cbc5a334b3fca36046a1af1.zip
Add config option to disable tier 0 JIT (#22370)
Add config option to disable tier 0 JIT Fixes https://github.com/dotnet/coreclr/issues/21856 - For methods that don't have pregenerated code, using tier 0 JIT can improve startup perf, and disabling tier 0 JIT can be useful to sacrifice some startup time to avoid issues of running tier 0 code for too long. In some cases, it may also be desirable to avoid tiering up much later. - A fixed value for the call count indicates that tier 0 call counting is disabled. When disabled, the method starts at tier 1. - Also modified call counting to start from a predetermined threshold and count down to zero, as it simplifies some things, allows for methods to have different thresholds, and likely is what we would want eventually anyway - Took a small step towards eliminating knowledge of specific tier levels in code that should not care, though more is to be done there
Diffstat (limited to 'src/vm/tieredcompilation.h')
-rw-r--r--src/vm/tieredcompilation.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/vm/tieredcompilation.h b/src/vm/tieredcompilation.h
index 072f8e16c4..2c021b89ec 100644
--- a/src/vm/tieredcompilation.h
+++ b/src/vm/tieredcompilation.h
@@ -34,9 +34,8 @@ public:
#ifdef FEATURE_TIERED_COMPILATION
public:
- static bool RequiresCallCounting(MethodDesc* pMethodDesc);
- void OnMethodCalled(MethodDesc* pMethodDesc, DWORD currentCallCount, BOOL* shouldStopCountingCallsRef, BOOL* wasPromotedToTier1Ref);
- void OnMethodCallCountingStoppedWithoutTier1Promotion(MethodDesc* pMethodDesc);
+ void OnTier0MethodCalled(MethodDesc* pMethodDesc, bool isFirstCall, int currentCallCountLimit, BOOL* shouldStopCountingCallsRef, BOOL* wasPromotedToNextTierRef);
+ void OnMethodCallCountingStoppedWithoutTierPromotion(MethodDesc* pMethodDesc);
void AsyncPromoteMethodToTier1(MethodDesc* pMethodDesc);
void Shutdown();
static CORJIT_FLAGS GetJitFlags(NativeCodeVersion nativeCodeVersion);
@@ -69,7 +68,6 @@ private:
ADID m_domainId;
BOOL m_isAppDomainShuttingDown;
DWORD m_countOptimizationThreadsRunning;
- DWORD m_callCountOptimizationThreshhold;
DWORD m_optimizationQuantumMs;
SArray<MethodDesc*>* m_methodsPendingCountingForTier1;
HANDLE m_tieringDelayTimerHandle;