mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 23:08:39 +09:00
Issue #1624 - Make ion inlining optimizations a pref.
This also adds it to JS_SetGlobalJitCompilerOption()
This commit is contained in:
parent
d8fdbcd88c
commit
ec0865128b
6 changed files with 14 additions and 3 deletions
|
|
@ -299,10 +299,11 @@ nsJSUtils::CompileModule(JSContext* aCx,
|
|||
|
||||
NS_ENSURE_TRUE(xpc::Scriptability::Get(aEvaluationGlobal).Allowed(), NS_OK);
|
||||
|
||||
if (!JS::CompileModule(aCx, aCompileOptions, aSrcBuf, aModule)) {
|
||||
bool compileResult = JS::CompileModule(aCx, aCompileOptions, aSrcBuf, aModule);
|
||||
|
||||
if (!compileResult) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ DefaultJitOptions::DefaultJitOptions()
|
|||
SET_DEFAULT(disableGvn, false);
|
||||
|
||||
// Toggles whether inlining is globally disabled.
|
||||
SET_DEFAULT(disableInlining, true);
|
||||
SET_DEFAULT(disableInlining, false);
|
||||
|
||||
// Toggles whether loop invariant code motion is globally disabled.
|
||||
SET_DEFAULT(disableLicm, false);
|
||||
|
|
|
|||
|
|
@ -6607,6 +6607,9 @@ JS_SetGlobalJitCompilerOption(JSContext* cx, JSJitCompilerOption opt, uint32_t v
|
|||
case JSJITCOMPILER_ION_INTERRUPT_WITHOUT_SIGNAL:
|
||||
jit::JitOptions.ionInterruptWithoutSignals = !!value;
|
||||
break;
|
||||
case JSJITCOMPILER_ION_INLINING:
|
||||
jit::JitOptions.disableInlining = !value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5905,6 +5905,7 @@ JS_SetOffthreadIonCompilationEnabled(JSContext* cx, bool enabled);
|
|||
Register(ION_GVN_ENABLE, "ion.gvn.enable") \
|
||||
Register(ION_FORCE_IC, "ion.forceinlineCaches") \
|
||||
Register(ION_ENABLE, "ion.enable") \
|
||||
Register(ION_INLINING, "ion.inlining") \
|
||||
Register(ION_INTERRUPT_WITHOUT_SIGNAL, "ion.interrupt-without-signals") \
|
||||
Register(ION_CHECK_RANGE_ANALYSIS, "ion.check-range-analysis") \
|
||||
Register(BASELINE_ENABLE, "baseline.enable") \
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* vim: set ts=8 sts=4 et sw=4 tw=99: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
|
@ -1428,6 +1429,8 @@ ReloadPrefsCallback(const char* pref, void* data)
|
|||
|
||||
bool unboxedObjects = Preferences::GetBool(JS_OPTIONS_DOT_STR "unboxed_objects");
|
||||
|
||||
bool inlining = Preferences::GetBool(JS_OPTIONS_DOT_STR "ion.inlining");
|
||||
|
||||
sSharedMemoryEnabled = Preferences::GetBool(JS_OPTIONS_DOT_STR "shared_memory");
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
@ -1458,6 +1461,8 @@ ReloadPrefsCallback(const char* pref, void* data)
|
|||
useIonEager ? 0 : -1);
|
||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_UNBOXED_OBJECTS,
|
||||
unboxedObjects);
|
||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_INLINING,
|
||||
inlining);
|
||||
}
|
||||
|
||||
XPCJSContext::~XPCJSContext()
|
||||
|
|
|
|||
|
|
@ -1272,6 +1272,7 @@ pref("javascript.options.strict.debug", false);
|
|||
pref("javascript.options.unboxed_objects", false);
|
||||
pref("javascript.options.baselinejit", true);
|
||||
pref("javascript.options.ion", true);
|
||||
pref("javascript.options.ion.inlining", true);
|
||||
pref("javascript.options.asmjs", true);
|
||||
pref("javascript.options.wasm", true);
|
||||
// wasm jit crashes in 32bit builds because of 64bit casts so
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue