Closed Bug 888872 Opened 7 years ago Closed 7 years ago

IonMonkey: Track location of slots/elements pointers for generational GC

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla25

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file)

Attached patch PatchSplinter Review
Slots/elements can be allocated in the nursery and moved by minor GCs. When this happens we have to update any slots/elements pointers stored in Ion frames to point to the new malloc'ed buffer.

This patch tracks slots/elements pointers in safepoints, and updates them during minor GCs. This depends on Terrence's patch in bug 888463 and fixes Kraken.
Attachment #769650 - Flags: review?(terrence)
Attachment #769650 - Flags: review?(dvander)
Comment on attachment 769650 [details] [diff] [review]
Patch

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

The changes to Nursery look righteous. I'll leave the rest to David.

r=me

::: js/src/ion/LIR.h
@@ -542,5 @@
>  #endif
>            case MIRType_Slots:
>            case MIRType_Elements:
> -            // When we begin allocating slots vectors from the GC, this will
> -            // need to change to ::OBJECT.

Well, that was prescient at least.
Attachment #769650 - Flags: review?(terrence) → review+
Comment on attachment 769650 [details] [diff] [review]
Patch

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

Good catch. It's unfortunate we have to add all this extra complexity. It seems like a good long-term goal for the GC will be removing the distinctions between where GC objects are allocated.
Attachment #769650 - Flags: review?(dvander) → review+
Depends on: 889986
https://hg.mozilla.org/mozilla-central/rev/9a62d56be0bc
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
Depends on: 890414
You need to log in before you can comment on or make changes to this bug.