зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1700771 - Create pref for inlining maximum function size. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D110350
This commit is contained in:
Родитель
92af85bf62
Коммит
30b2db3912
|
@ -5283,6 +5283,13 @@ JS_PUBLIC_API void JS_SetGlobalJitCompilerOption(JSContext* cx,
|
|||
JitSpew(js::jit::JitSpew_IonScripts, "Disable offthread compilation");
|
||||
}
|
||||
break;
|
||||
case JSJITCOMPILER_INLINING_BYTECODE_MAX_LENGTH:
|
||||
if (value == uint32_t(-1)) {
|
||||
jit::DefaultJitOptions defaultValues;
|
||||
value = defaultValues.smallFunctionMaxBytecodeLength;
|
||||
}
|
||||
jit::JitOptions.smallFunctionMaxBytecodeLength = value;
|
||||
break;
|
||||
case JSJITCOMPILER_JUMP_THRESHOLD:
|
||||
if (value == uint32_t(-1)) {
|
||||
jit::DefaultJitOptions defaultValues;
|
||||
|
@ -5364,6 +5371,9 @@ JS_PUBLIC_API bool JS_GetGlobalJitCompilerOption(JSContext* cx,
|
|||
case JSJITCOMPILER_ION_FREQUENT_BAILOUT_THRESHOLD:
|
||||
*valueOut = jit::JitOptions.frequentBailoutThreshold;
|
||||
break;
|
||||
case JSJITCOMPILER_INLINING_BYTECODE_MAX_LENGTH:
|
||||
*valueOut = jit::JitOptions.smallFunctionMaxBytecodeLength;
|
||||
break;
|
||||
case JSJITCOMPILER_BASELINE_INTERPRETER_ENABLE:
|
||||
*valueOut = jit::JitOptions.baselineInterpreter;
|
||||
break;
|
||||
|
|
|
@ -2632,6 +2632,7 @@ extern JS_PUBLIC_API void JS_SetOffthreadIonCompilationEnabled(JSContext* cx,
|
|||
Register(JIT_TRUSTEDPRINCIPALS_ENABLE, "jit_trustedprincipals.enable") \
|
||||
Register(ION_CHECK_RANGE_ANALYSIS, "ion.check-range-analysis") \
|
||||
Register(ION_FREQUENT_BAILOUT_THRESHOLD, "ion.frequent-bailout-threshold") \
|
||||
Register(INLINING_BYTECODE_MAX_LENGTH, "inlining.bytecode-max-length") \
|
||||
Register(BASELINE_INTERPRETER_ENABLE, "blinterp.enable") \
|
||||
Register(BASELINE_ENABLE, "baseline.enable") \
|
||||
Register(OFFTHREAD_COMPILATION_ENABLE, "offthread-compilation.enable") \
|
||||
|
|
|
@ -885,6 +885,10 @@ static void LoadStartupJSPrefs(XPCJSContext* xpccx) {
|
|||
cx, JSJITCOMPILER_ION_FREQUENT_BAILOUT_THRESHOLD,
|
||||
StaticPrefs::
|
||||
javascript_options_ion_frequent_bailout_threshold_DoNotUseDirectly());
|
||||
JS_SetGlobalJitCompilerOption(
|
||||
cx, JSJITCOMPILER_INLINING_BYTECODE_MAX_LENGTH,
|
||||
StaticPrefs::
|
||||
javascript_options_inlining_bytecode_max_length_DoNotUseDirectly());
|
||||
|
||||
#ifdef DEBUG
|
||||
JS_SetGlobalJitCompilerOption(
|
||||
|
|
|
@ -5454,6 +5454,17 @@
|
|||
mirror: always # LoadStartupJSPrefs
|
||||
do_not_use_directly: true
|
||||
|
||||
# A threshold for Warp to decide whether a function can be inlined.
|
||||
# If the size of a function is smaller than this threshold, then it
|
||||
# may be inlined.
|
||||
#
|
||||
# NOTE: These must match JitOptions defaults.
|
||||
- name: javascript.options.inlining_bytecode_max_length
|
||||
type: uint32_t
|
||||
value: 130
|
||||
mirror: always
|
||||
do_not_use_directly: true
|
||||
|
||||
- name: javascript.options.compact_on_user_inactive
|
||||
type: bool
|
||||
value: true
|
||||
|
|
Загрузка…
Ссылка в новой задаче