Closed Bug 1502051 Opened 6 years ago Closed 6 years ago

Cleanups in BaselineScript and BaselineCompiler

Categories

(Core :: JavaScript Engine: JIT, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox65 --- fixed

People

(Reporter: tcampbell, Assigned: tcampbell)

References

Details

Attachments

(5 files)

I'd like to clean up a few things in BaselineScript around being more precise about how we use code labels and entry points.
- Use C++ member initialization to simplify constructors.
- Mark class as final since it has trailing allocations.
- Make constructor private.
These are very specialized entry points so instead name them after their
use cases to make code easier to read and keep in sync.

Depends on D9787
Make the slotInfo argument required and assert that stack is
synchronized. A native code address for baseline is only well-defined if
the registers are setup correctly. Existing code was fine, this just
asserts some previously un-documented things.

Depends on D9789
Add a maybeNativeCodeForPc that returns nullptr on optimized-out code.
This is useful later for generating mappings without having to first
determine 'dead code'. Also reorganize the logic a little.

Depends on D9790
It currently generates the same table in a round-about way so we should
just use the same table for consistency. Note that the BaselineScript
still gets it's own yield/await offsets table that is tracked in native
address offsets.

Depends on D9799
Apparently I didn't run with --ion-eager. I need to fix a failing testcase
Attachment #9020027 - Attachment description: Bug 1502051 - Cleanup BaselineScript entry point names. r?djvj → Bug 1502051 - Cleanup BaselineScript entry point names. r?jandem
Attachment #9020052 - Attachment description: Bug 1502051 - BaselineCompiler should use JSScript::yieldAndAwaitOffsets. r?djvj → Bug 1502051 - BaselineCompiler should use JSScript::yieldAndAwaitOffsets. r?jandem
Pushed by tcampbell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1eb75409c3e9
Cleanup up BaselineScript initializers. r=djvj
https://hg.mozilla.org/integration/autoland/rev/8f8923703a09
Cleanup BaselineScript entry point names. r=jandem
https://hg.mozilla.org/integration/autoland/rev/5c6343e86e05
Always check slotInfo for BaselineScript::nativeCodeForPc. r=djvj
https://hg.mozilla.org/integration/autoland/rev/fdda51be24d2
Cleanup BaselineScript::nativeCodeForPc. r=djvj
https://hg.mozilla.org/integration/autoland/rev/b2d4c84560b1
BaselineCompiler should use JSScript::yieldAndAwaitOffsets. r=jandem
Depends on: 1503640
Depends on: 1502744
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: