Closed Bug 1736021 Opened 3 months ago Closed 3 months ago

Continue to replace sweeping weak edges with tracing them

Categories

(Core :: JavaScript: GC, task, P3)

task

Tracking

()

RESOLVED FIXED
95 Branch
Tracking Status
firefox95 --- fixed

People

(Reporter: jonco, Assigned: jonco)

References

Details

Attachments

(5 files)

Following on from bug 1735486, replace even more uses of sweeping with tracing.

In this case we know that we only ever do this in sweeping, so we can optimize
by ignoring the tracer and checking the mark bits directly. This avoids
dispatching on the (known) tracer kind, and dispatching on the (irrelevant)
cell kind to call IsAboutToBeFinalized.

Previously this purged eval cache entries relatied to nursey strings at the
start of minor GC. I don't see a reason to remove these entries since the hash
isn't based on the string address. Instead we can update the string pointer for
any that were tenured, and continue to discard the rest.

Depends on D128602

Depends on D128603

This simplifies InnerViewTable::sweepEntry because it can use the provided
sweep() method on the view vector.

Depends on D128604

Now we can expose the map's sweep policy and use this to replace sweepEntry entirely.

Depends on D128605

Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e49fe5b9c09b
Convert the unique ID table to use traceWeak during sweeping r=sfink
https://hg.mozilla.org/integration/autoland/rev/abd389d9d913
Update the eval cache after minor GC r=jandem
https://hg.mozilla.org/integration/autoland/rev/65234acc241d
Sweep symbol registry with tracing r=sfink
https://hg.mozilla.org/integration/autoland/rev/3a02803e1d29
Move UnsafeBarePtr to Barrier.h and use it in InnerViewTable::ViewVector r=sfink
https://hg.mozilla.org/integration/autoland/rev/032f4f99161c
Replace InnerViewTable::sweepEntry with use of the standard sweep policy r=sfink
You need to log in before you can comment on or make changes to this bug.