Closed Bug 1661766 Opened 3 months ago Closed 3 months ago

Simplify representation of slots/element ranges on the mark stack

Categories

(Core :: JavaScript: GC, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
82 Branch
Tracking Status
firefox82 --- fixed

People

(Reporter: jonco, Assigned: jonco)

Details

Attachments

(1 file)

Right now we store ranges of object slots/elements as start/end pointers on the mark stack, but if we ever yield to the mutator we replace these with index based ranges in case the mutator invalidates the pointers by changing the object.

It would be simpler to always use index based ranges and then not have to change them.

This will also be necessary to support concurrent marking.

This stores slots/element ranges as object and start index rather than having
two separate representations (one used during marking, one when we yield to the
mutator during marking). It's possible that this could affect marking
performance but we'll catch that by checking the mark rate telemetry. This
should also reduce the size needed for the mark stack a little.

Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/da45331c242c
Simplify representation of slots/element ranges on the mark stack r=sfink
Pushed by rmaries@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6cc010c07495
Simplify representation of slots/element ranges on the mark stack r=sfink. CLOSED TREE
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 82 Branch
You need to log in before you can comment on or make changes to this bug.