path: root/src/vm
diff options
authorNoah Falk <>2018-03-28 13:56:24 -0700
committerGitHub <>2018-03-28 13:56:24 -0700
commit9c32fda3feb190f60934ffc0de7a328e0506e367 (patch)
tree2c557dd07e716c500fe06770ffc8f7d3dab6ed60 /src/vm
parenta79ca6566567188a408cfcf4859286fc87e5c449 (diff)
Removing 'EXPERIMENTAL' from tiered compilation env var (#17283)
Things have progressed far enough that its time to use a friendlier name. The feature still still has performance aspects that need to be investigated and improved, but I don't want to scare people off simply because it isn't as fast as it could be. This also updates to use a newer CoreFX version for JitBench since that appeared to be broken, and updated some comments and usage of the tieredcompilation variable.
Diffstat (limited to 'src/vm')
2 files changed, 9 insertions, 14 deletions
diff --git a/src/vm/eeconfig.cpp b/src/vm/eeconfig.cpp
index ab83463256..a227437356 100644
--- a/src/vm/eeconfig.cpp
+++ b/src/vm/eeconfig.cpp
@@ -1240,7 +1240,10 @@ HRESULT EEConfig::sync()
dwSleepOnExit = CLRConfig::GetConfigValue(CLRConfig::UNSUPPORTED_SleepOnExit);
- fTieredCompilation = CLRConfig::GetConfigValue(CLRConfig::UNSUPPORTED_TieredCompilation) != 0;
+ fTieredCompilation = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_TieredCompilation) != 0 ||
+ //this older name is deprecated, but still accepted for a time. Preserving it is a very small overhead not to needlessly break things.
+ CLRConfig::GetConfigValue(CLRConfig::UNSUPPORTED_LEGACY_TieredCompilation) != 0;
tieredCompilation_tier1CallCountThreshold =
if (tieredCompilation_tier1CallCountThreshold < 1)
diff --git a/src/vm/tieredcompilation.cpp b/src/vm/tieredcompilation.cpp
index cd571a6b47..f139ddea5c 100644
--- a/src/vm/tieredcompilation.cpp
+++ b/src/vm/tieredcompilation.cpp
@@ -22,19 +22,11 @@
// # Current feature state
-// This feature is incomplete and currently experimental. To enable it
-// you need to set COMPLUS_EXPERIMENTAL_TieredCompilation = 1. When the environment
-// variable is unset the runtime should work as normal, but when it is there are a few
-// known issues
-// ETW - Native to IL maps aren't correctly emitted (probably tier1 wrong, tier0 right)
-// Profiler - Still missing APIs that allow profilers to correctly get native to IL
-// maps for all code bodies.
-// Diagnostic tools have minimal testing that we are aware of and its possible they
-// made additional assumptions about runtime implementation that have been invalidated
-// by this feature. VS debugging does appear to work at a basic level at least.
-// I aim to keep this comment updated as things change.
+// This feature is a work in progress. It should be functionally correct for a
+// good range of scenarios, but performance varies by scenario. To enable it
+// you need to set COMPLUS_TieredCompilation = 1. This feature has been
+// tested with all of our runtime and CoreFX functional tests, as well as
+// diagnostics tests and various partner testing in Visual Studio.
// # Important entrypoints in this code: