Closed Bug 1967810 Opened 1 year ago Closed 1 year ago

Fix offthread baseline compilation

Categories

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

task

Tracking

()

RESOLVED FIXED
141 Branch
Tracking Status
firefox141 --- fixed

People

(Reporter: iain, Assigned: iain)

References

(Blocks 2 open bugs)

Details

Attachments

(3 external files)

While working on bug 1960433, I've uncovered a number of latent issues in the initial implementation of offthread baseline compilation.

RecompileBaselineScriptForDebugMode is normally enough here, but there are some corner cases where it's insufficient. In particular, if we already have an IonScript at this point, we need to invalidate it before replacing the baseline script, to preserve our invariants about BaselineScript implying IonScript. Looking at the code that calls RecompileBaselineScriptForDebugMode, there's enough complexity that it seems better to reproduce the existing approach more precisely. This requires converting OSREntryForFrame into a VM call.

This path now more closely matches the existing path in CanEnterBaselineJIT.

TSAN doesn't like it when we look at function flags offthread.

Pushed by iireland@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/03a954bf8c9f Call ensureExecutionObservabilityOfOsrFrame in OSREntryForFrame r=jandem https://hg.mozilla.org/integration/autoland/rev/0865222c28a0 Fix BaselineQueuedScriptPtr r=jandem https://hg.mozilla.org/integration/autoland/rev/e3faaea247b6 Don't look at function flags in baseline compiler r=jandem https://hg.mozilla.org/integration/autoland/rev/4c020f44c7c3 apply code formatting via Lando
QA Whiteboard: [qa-triage-done-c142/b141]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: