Closed Bug 1631267 Opened 5 years ago Closed 5 years ago

Warp: Support CacheIR's LoadObject

Categories

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

task

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: evilpies, Assigned: jandem)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

LoadObject is used for example for guarding on properties on the prototype chain.
A simple version that just creates an MConstant for the JSObject* in LoadObject triggers nursery related assertions. We probably have to implement something like IonBuilder::checkNurseryObject, however that might not be possible off-thread.

There's a TODO to check for nursery things in WarpOracle. I hope that will be good enough for now because the builtin prototypes are tenured...

If we wanted to support this, I think the best approach is to store a list/set of nursery objects in the snapshot, copy it to the IonScript and then have JIT code load from that instead of baking nursery objects in the code. I don't really like the mechanism IonBuilder has for this.

Priority: -- → P2

We don't transpile CacheIR if the stub data contains nursery pointers. We will
probably need to support that at some point, but this lets us improve our
coverage for now.

Assignee: nobody → jdemooij
Status: NEW → ASSIGNED

While working on the previous patch I noticed some builtin prototypes weren't tenured.

Use createBlankPrototypeInheriting for consistency with similar code elsewhere.

Depends on D73221

Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/437e68411565 part 1 - Support LoadObject in the transpiler. r=iain https://hg.mozilla.org/integration/autoland/rev/66899ba0dcbe part 2 - Create MapIteratorProto, SetIteratorProto, FinalizationIteratorProto as singletons. r=jwalden
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: