Bug 1700771 - Create pref for inlining maximum function size. r=iain

Differential Revision: https://phabricator.services.mozilla.com/D110350
This commit is contained in:
Caroline Cullen 2021-03-31 17:18:13 +00:00
Родитель 92af85bf62
Коммит 30b2db3912
4 изменённых файлов: 26 добавлений и 0 удалений

Просмотреть файл

@ -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