Closed Bug 869735 Opened 8 years ago Closed 8 years ago

Fixes to ParallelArray compilation to support generational GC

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla23

People

(Reporter: terrence, Assigned: terrence)

References

Details

Attachments

(1 file)

Attached patch v0Splinter Review
This includes 3 fixes: the first two hunks ensure that two allocation sites that flow into CompilerRoots are correctly tenured. The third hunk is to keep us from accessing the arena header of arbitrary objects that flow into parallel code: nursery things have no arena header.
Attachment #746696 - Flags: review?(nmatsakis)
Attachment #746696 - Flags: review?(nmatsakis) → review+
Comment on attachment 746696 [details] [diff] [review]
v0

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

::: js/src/builtin/ParallelArray.cpp
@@ -115,5 @@
>  /*static*/ JSObject *
>  ParallelArrayObject::newInstance(JSContext *cx)
>  {
>      gc::AllocKind kind = gc::GetGCObjectKind(NumFixedSlots);
> -    RootedObject result(cx, NewBuiltinClassInstance(cx, &class_, kind));

Actually I had a comment about this change: I believe this will cause *all* parallel arrays to be pre-tenured, which doesn't seem like the right thing to do. I imagine we should pass in the Tenured state to newInstance() as a parameter.
https://hg.mozilla.org/mozilla-central/rev/c61c7b28bace
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in before you can comment on or make changes to this bug.