Closed Bug 1359800 Opened 7 years ago Closed 7 years ago

Refactor some sweeping logic

Categories

(Core :: JavaScript Engine: JIT, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: jonco, Assigned: jonco)

Details

Attachments

(2 files)

A couple of minor refactorings.

Firstly, we should be calling IsAboutToBeFinalized in sweeping rather than checking mark bits (either directly or via IsMarked).
As above.
Attachment #8861936 - Flags: review?(sphink)
Secondly, IsMarked should report cells allocated during incremental marking/sweeping as marked.  Then we can remove this extra check in a few places.
Attachment #8861937 - Flags: review?(sphink)
Comment on attachment 8861937 [details] [diff] [review]
bug1359800-check-incremental-in-is-marked

Review of attachment 8861937 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/gc/Marking.cpp
@@ +3088,4 @@
>          *thingp = Forwarded(*thingp);
> +        return true;
> +    }
> +    TenuredCell& thing = (*thingp)->asTenured();

Move this up and reuse it for the zone calculation. You could even get rid of the IsInsideNursery assert if you like, since it's implied by asTenured(), but keep it if you think it's more clear this way.
Attachment #8861937 - Flags: review?(sphink) → review+
Comment on attachment 8861936 [details] [diff] [review]
bug1359800-use-is-about-to-be-finalized

Review of attachment 8861936 [details] [diff] [review]:
-----------------------------------------------------------------

Don't these patches need to land together? Otherwise this one would lose the allocated during incremental check.
Attachment #8861936 - Flags: review?(sphink) → review+
(In reply to Steve Fink [:sfink] [:s:] from comment #4)
Nope, IsAboutToBeFinalized already does the allocated during incremental check.
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/95d2d6bf646d
Use IsAboutToBeFinalized rather than marking state directly during sweeping r=sfink
https://hg.mozilla.org/integration/mozilla-inbound/rev/af2b7f5b3ab5
Check allocatedDuringIncremental flag in IsMarked functions r=sfink
https://hg.mozilla.org/mozilla-central/rev/95d2d6bf646d
https://hg.mozilla.org/mozilla-central/rev/af2b7f5b3ab5
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: