Closed Bug 1566332 Opened 2 years ago Closed 2 years ago

Make the Baseline JIT depend on the Baseline Interpreter


(Core :: JavaScript Engine: JIT, task, P1)




Tracking Status
firefox70 --- fixed


(Reporter: jandem, Assigned: jandem)




(5 files)

It should be impossible to enable the Baseline JIT without the interpreter, similar to how Ion requires Baseline. Then we can simplify a number of things (bug 1566330, bug 1552154, some other things).

We can probably land this at the end of this week or so, when an emergency back out will become increasingly unlikely.

This is more symmetrical with baselineInterpreterWarmUpThreshold and the
baselineInterpreter/baselineJit options.

Depends on D38277

This unblocks clean up of Ion bailouts and Baseline because we can now assume
the interpreter is enabled.

Depends on D38278

If the script already has a BaselineScript or the Interpreter/JIT thresholds are the same,
we will immediately switch to Baseline JIT code at the same LOOPENTRY op. This should be
unlikely for most loops and the extra overhead for this case is negligible.

Depends on D38279

Priority: -- → P1
Pushed by
part 1 - Add DefaultJitOptions::setEagerBaselineCompilation() and use it in a few places. r=tcampbell
part 2 - Stop messing with JIT prefs in gdb unwind test. r=tcampbell
part 3 - Rename JitOptions.baselineWarmUpThreshold to JitOptions.baselineJitWarmUpThreshold. r=tcampbell
part 4 - Make IsBaselineJitEnabled imply IsBaselineInterpreterEnabled. r=tcampbell
part 5 - Remove support for C++ interpreter -> Baseline JIT OSR, always enter Baseline Interpreter. r=tcampbell
You need to log in before you can comment on or make changes to this bug.