Closed Bug 1710075 Opened 4 years ago Closed 4 years ago

Allocate fallback stubs as ICScript array

Categories

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

task

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
firefox90 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(10 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

After Jon's changes removing the NewObject and NewArray templates, we can get rid of the Rest IC template object and then allocate fallback stubs as a fixed-size array in ICScript instead of using the LifoAlloc.

This matches MNewArray and is what we need for the Rest code.

Depends on D114603

This will be used by a later patch in the stack, but can likely be used in more
places in the future.

Depends on D114604

The next patch wants to remove the derived classes (and kinds) for fallback stubs.

This assertion seems redundant with getStubReturnAddress so it should be fine
to remove it.

Depends on D114608

Each fallback stub is now allocated as just ICFallbackStub.

Also replaces the switch-statement in initICEntries with a faster table lookup
to map from JSOp to fallback kind (to get the trampoline code for the fallback stub).

Depends on D114609

This is more efficient than using the LifoAlloc and lets us make more code infallible.

Depends on D114610

FallbackICStubSpace is no longer a good name because it isn't used for fallback
stubs anymore.

Depends on D114611

Blocks: 1710394
Keywords: leave-open
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d333a377131f part 1 - Add CanUseFixedElementsForArray helper function. r=jonco https://hg.mozilla.org/integration/autoland/rev/43c37724bf56 part 2 - Treat MNewArrayObject as non-effectful. r=jonco https://hg.mozilla.org/integration/autoland/rev/f6f61139baf1 part 3 - Cache array shape in a global object slot. r=jonco https://hg.mozilla.org/integration/autoland/rev/2ee0591c2226 part 4 - Allocate Rest array in Warp using the array shape instead of a template object. r=jonco https://hg.mozilla.org/integration/autoland/rev/608bfdfe6fd0 part 5 - Remove template object from Rest fallback stub. r=jonco
Keywords: leave-open
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a4369f6d34be part 6 - Clean up fallback stub tracing a bit now that they never contain a GC pointer. r=jonco https://hg.mozilla.org/integration/autoland/rev/94bc946d5498 part 7 - Remove IsInlinableFallback assertion. r=iain https://hg.mozilla.org/integration/autoland/rev/731b32928128 part 8 - Remove classes and kinds for fallback stubs. r=iain https://hg.mozilla.org/integration/autoland/rev/d7ca3338e716 part 9 - Allocate fallback stubs as an array in ICScript. r=iain https://hg.mozilla.org/integration/autoland/rev/ab1fc35f9ba6 part 10 - Rename FallbackICStubSpace to JitScriptICStubSpace. r=iain
Regressions: 1742584
No longer regressions: 1742584
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: