summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authorNoah Falk <noahfalk@users.noreply.github.com>2018-04-10 20:35:33 -0700
committerGitHub <noreply@github.com>2018-04-10 20:35:33 -0700
commit6854a3ea1f0946a115de208dbb2371896c3ca23a (patch)
tree00b5265d1edd7efb60fddfd7656a329318ff8322 /src/inc
parent2ffcdd00249fd37e3c0d823df79ff19579028d66 (diff)
downloadcoreclr-6854a3ea1f0946a115de208dbb2371896c3ca23a.tar.gz
coreclr-6854a3ea1f0946a115de208dbb2371896c3ca23a.tar.bz2
coreclr-6854a3ea1f0946a115de208dbb2371896c3ca23a.zip
Fix x86 steady state tiered compilation performance (#17476)
* Fix x86 steady state tiered compilation performance Also included - a few tiered compilation only test hooks + small logging fix for JitBench Tiered compilation wasn't correctly implementing the MayHavePrecode and RequiresStableEntryPoint policy functions. On x64 this was a non-issue, but due to compact entrypoints on x86 it lead to methods allocating both FuncPtrStubs and Precodes. The FuncPtrStubs would never get backpatched which caused never ending invocations of the Prestub for some methods. Although such code still runs correctly, it is much slower than it needs to be. On MusicStore x86 I am seeing a 20% improvement in steady state RPS after this fix, bringing us inline with what I've seen on x64.
Diffstat (limited to 'src/inc')
-rw-r--r--src/inc/clrconfigvalues.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/inc/clrconfigvalues.h b/src/inc/clrconfigvalues.h
index 2e66f12244..12a2c0f375 100644
--- a/src/inc/clrconfigvalues.h
+++ b/src/inc/clrconfigvalues.h
@@ -654,6 +654,9 @@ RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredCompilation, W("TieredCompilation"), 0,
RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_LEGACY_TieredCompilation, W("EXPERIMENTAL_TieredCompilation"), 0, "Deprecated - Use COMPLUS_TieredCompilation")
RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Tier1CallCountThreshold, W("TieredCompilation_Tier1CallCountThreshold"), 30, "Number of times a method must be called after which it is promoted to tier 1.")
RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Tier1CallCountingDelayMs, W("TieredCompilation_Tier1CallCountingDelayMs"), 100, "Delay in milliseconds since process startup or the last tier 0 JIT before call counting begins for tier 1 promotion.")
+
+RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Test_CallCounting, W("TieredCompilation_Test_CallCounting"), 1, "Enabled by default (only activates when TieredCompilation is also enabled). If disabled immediately backpatches prestub, and likely prevents any tier1 promotion")
+RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Test_OptimizeTier0, W("TieredCompilation_Test_OptimizeTier0"), 0, "Use optimized codegen (normally used by tier1) in tier0")
#endif