If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Funnel external barriers through the internal barriers

RESOLVED FIXED in Firefox 40

Status

()

Core
JavaScript: GC
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: terrence, Assigned: terrence)

Tracking

Trunk
mozilla40
Points:
---

Firefox Tracking Flags

(firefox40 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

3 years ago
Created attachment 8600488 [details] [diff] [review]
funnel_external_barriers_via_internal-v0.diff

Right now Heap{Cell/Value}PostBarrier{/Relocate} implements identical logic to JSObject::writeBarrierPost{Relocate/Remove} and InternalGCMethods<Value>::postBarrier{Relocate/Remove} respectively. It should be simple enough to merge these by calling the internal copies from the external copies.

Externally we now have:
Heap<T> ->
    GCMethods<T>::post.+ ->
        (for JSObject* and JSFunction*) HeapObjectPostBarrier.*
             InternalGCMethods<JSObject>::post.+ ->
                 ... as below ...
        (for other T*) AssertIsNotObjectSubclass
        (for Value) HeapValuePostBarrier.*
             InternalGCMethods<Value>::post.+ ->
                 ... as below ...

And the internal variant just cuts out the indirection through HeapFooPostBarrier:
HeapPtr<T>/RelocatablePtr<T>/HeapSlot ->
    InternalGCMethods<T>::post.+ ->
        (for Value) StoreBuffer::put
        (for T*) T::writeBarrierPost ->
            (for JSObject) StoreBuffer::put
            (for TenuredCell) AssertBarrierIsNotNeeded

https://treeherder.mozilla.org/#/jobs?repo=try&revision=dedd1a24774a
Attachment #8600488 - Flags: review?(jcoppeard)

Updated

3 years ago
Attachment #8600488 - Flags: review?(jcoppeard) → review+
(Assignee)

Comment 1

3 years ago
https://treeherder.mozilla.org/#/jobs?repo=try&revision=dedd1a24774a

Comment 2

3 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/f9120972dab4
https://hg.mozilla.org/mozilla-central/rev/f9120972dab4
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox40: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
You need to log in before you can comment on or make changes to this bug.