Do all tracing via the new tracing paths

RESOLVED FIXED in Firefox 40

Status

()

defect
RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: terrence, Assigned: terrence)

Tracking

(Blocks 1 bug)

Trunk
mozilla40
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox40 fixed)

Details

Attachments

(8 attachments)

Apologies in advance for a long, trivial set of patches. Feel free to skim: there really isn't anything terribly interesting here.
Attachment #8585792 - Flags: review?(jcoppeard)
Attachment #8585793 - Flags: review?(jcoppeard)
Attachment #8585794 - Flags: review?(jcoppeard)
Attachment #8585795 - Flags: review?(jcoppeard)
Attachment #8585797 - Flags: review?(jcoppeard)
Attachment #8585798 - Flags: review?(jcoppeard)
Attachment #8585799 - Flags: review?(jcoppeard)
And finally, objects. This does not remove the attendant machinery because there are a handful of things like MarkObjectSlots holding various parts of the infrastructure alive still, making it not quite trivial to remove yet.

Try run is at:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=da10f36072d0

I missed some JitCode marking in non x64 platforms last time; hopefully this run will be cleaner. Tip also seems like it might be a bit orange as well; we'll have to see how https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=46067a10bd37 shapes up.
Attachment #8585801 - Flags: review?(jcoppeard)
Yup, the inbound I pushed against is painfully broken; ignore that try run.
Attachment #8585792 - Flags: review?(jcoppeard) → review+
Attachment #8585793 - Flags: review?(jcoppeard) → review+
Attachment #8585794 - Flags: review?(jcoppeard) → review+
Attachment #8585795 - Flags: review?(jcoppeard) → review+
Attachment #8585797 - Flags: review?(jcoppeard) → review+
Attachment #8585798 - Flags: review?(jcoppeard) → review+
Attachment #8585799 - Flags: review?(jcoppeard) → review+
Comment on attachment 8585801 [details] [diff] [review]
4.7.8_remove_object_markers-v0.diff

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

::: js/src/gc/RootMarking.cpp
@@ +373,5 @@
>      markChainIfNotNull(JSTracer* trc, List& list, const char* name)
>      {
>          for (Element* r = list.getFirst(); r; r = r->getNext()) {
>              if (r->get())
> +                TraceRoot(trc, r->address(), name);

Nice!

::: js/src/vm/ScopeObject.cpp
@@ +1184,5 @@
>  void
>  LiveScopeVal::sweep()
>  {
>      if (staticScope_)
> +        MOZ_ALWAYS_FALSE(IsAboutToBeFinalizedUnbarriered(staticScope_.unsafeGet()));

Can drop the Unbarriered/unsafeGet().
Attachment #8585801 - Flags: review?(jcoppeard) → review+
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4c5a22a8b0a9

MarkIdForBarrier cannot yet assert that we don't fire barriered during GC because of watchpoint. It's only a pre-barrier so it isn't actually harmful -- I'll file a followup to clean this up later.
The first patch in this series was checked in with the wrong bug # and actually belongs to bug 1148534.
You need to log in before you can comment on or make changes to this bug.