Closed Bug 1620960 Opened 4 years ago Closed 4 years ago

Clean up and unify some of the iterator-phi code in IonBuilder

Categories

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

task

Tracking

()

RESOLVED FIXED
mozilla76
Tracking Status
firefox76 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(5 files)

Some cleanup to make it easier to implement this in WarpBuilder.

Later patches will use this.

Rename to TryNoteIterAllNoGC and refactor things a bit so that we don't need
a JSContext* and RootedScript. WarpBuilder will likely want to use this iterator
off-thread.

Depends on D66002

This function is only interested in the (network of) phis that use iterators
and we can ignore other uses.

Depends on D66003

Use the same mechanism for for-in and destructuring loops. Add loop phis to
the iterators_ Vector and at the end of IonBuilder mark these phis and phis
depending on them as having implicit uses.

Depends on D66004

This lets us reuse the same code for WarpBuilder.

Depends on D66005

Priority: -- → P1
Pushed by jdemooij@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/52182abf4baa
part 1 - Add JSTryNote::isLoop. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/cc7da5257846
part 2 - Make TryNoteIterAll a no-GC iterator. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/b14f8b30f3e5
part 3 - Only add phis to the worklist in IonBuilder::processIterators. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/2aae66fa276e
part 4 - Unify some of the iterator code in IonBuilder. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/9c8cd9594be0
part 5 - Replace IonBuilder::processIterators with MPhi::markIteratorPhis. r=tcampbell
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: