diff options
author | Brian Sullivan <briansul@microsoft.com> | 2018-01-05 11:43:42 -0800 |
---|---|---|
committer | Brian Sullivan <briansul@microsoft.com> | 2018-01-05 15:26:43 -0800 |
commit | 3fc07ad6ffcb49646d629ba63b6f156a7071c2eb (patch) | |
tree | 072714a2eca07326191fd9ce1ba6e23c8f81e621 /src/jit/jitconfigvalues.h | |
parent | 41d23b05acac98c68d3b348c60bf151cfedd778f (diff) | |
download | coreclr-3fc07ad6ffcb49646d629ba63b6f156a7071c2eb.tar.gz coreclr-3fc07ad6ffcb49646d629ba63b6f156a7071c2eb.tar.bz2 coreclr-3fc07ad6ffcb49646d629ba63b6f156a7071c2eb.zip |
Fix issue where the unsigned value used for the the map select budget could underflow
resulting in an unlimited budget
Changed m_mapSelectBudget and budget to be a signed integer
Added an assert that ensures that the remaining budget is between [0..m_mapSelectBudget]
Change the test for running out of budge to be a <= zero test instead of an equal zero test.
Fixed the bug in the handling of phiArgs in VNForMapSelectWork
by adding a check if we exceeded our budget when processing the first phiArg.
Added a define for DEFAULT_MAP_SELECT_BUDGET
Diffstat (limited to 'src/jit/jitconfigvalues.h')
-rw-r--r-- | src/jit/jitconfigvalues.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/jit/jitconfigvalues.h b/src/jit/jitconfigvalues.h index 64dfe9ce60..d22a9e1858 100644 --- a/src/jit/jitconfigvalues.h +++ b/src/jit/jitconfigvalues.h @@ -282,11 +282,13 @@ CONFIG_METHODSET(JitOptRepeat, W("JitOptRepeat")) // Runs optimizer m CONFIG_INTEGER(JitOptRepeatCount, W("JitOptRepeatCount"), 2) // Number of times to repeat opts when repeating #endif // defined(OPT_CONFIG) -CONFIG_INTEGER(JitRegisterFP, W("JitRegisterFP"), 3) // Control FP enregistration -CONFIG_INTEGER(JitTelemetry, W("JitTelemetry"), 1) // If non-zero, gather JIT telemetry data -CONFIG_INTEGER(JitVNMapSelBudget, W("JitVNMapSelBudget"), 100) // Max # of MapSelect's considered for a particular - // top-level invocation. -CONFIG_INTEGER(TailCallLoopOpt, W("TailCallLoopOpt"), 1) // Convert recursive tail calls to loops +CONFIG_INTEGER(JitRegisterFP, W("JitRegisterFP"), 3) // Control FP enregistration +CONFIG_INTEGER(JitTelemetry, W("JitTelemetry"), 1) // If non-zero, gather JIT telemetry data + +// Max # of MapSelect's considered for a particular top-level invocation. +CONFIG_INTEGER(JitVNMapSelBudget, W("JitVNMapSelBudget"), DEFAULT_MAP_SELECT_BUDGET) + +CONFIG_INTEGER(TailCallLoopOpt, W("TailCallLoopOpt"), 1) // Convert recursive tail calls to loops CONFIG_METHODSET(AltJit, W("AltJit")) // Enables AltJit and selectively limits it to the specified methods. CONFIG_METHODSET(AltJitNgen, W("AltJitNgen")) // Enables AltJit for NGEN and selectively limits it to the specified methods. |