Closed Bug 1159428 Opened 9 years ago Closed 9 years ago

Use Value and Id type-based dispatch to implement Barriers

Categories

(Core :: JavaScript: GC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla40
Tracking Status
firefox40 --- fixed

People

(Reporter: terrence, Assigned: terrence)

Details

Attachments

(1 file, 1 obsolete file)

This simplifies Barrier.h to the tune of ~100 lines.
Attachment #8598875 - Flags: review?(jcoppeard)
Comment on attachment 8598875 [details] [diff] [review]
typedispatch_for_barriers-v0.diff

Huh, this builds locally without warnings on both gcc and clang and still manages to fail every single build on Try. C++ FTW. I'll give this another look tomorrow.
Attachment #8598875 - Flags: review?(jcoppeard)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b9b99c3d21b1

The issue was unified builds. For reasons I'm not entirely clear on relating to how templates are instantiated, with this patch we need T::writeBarrier.+ to be defined. I tried an inlined and an out-of-line version and they seem to be the same speed locally, so let's try the out-of-line version first, as it's much simpler.
Attachment #8598875 - Attachment is obsolete: true
Attachment #8599452 - Flags: review?(jcoppeard)
Comment on attachment 8599452 [details] [diff] [review]
typedispatch_for_barriers-v1.diff

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

Great to see all this code removed!

::: js/src/gc/Barrier.cpp
@@ +65,1 @@
>  

I guess we have no uses of read-barriered jsids.
Attachment #8599452 - Flags: review?(jcoppeard) → review+
https://hg.mozilla.org/mozilla-central/rev/bfcba00a76c0
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
You need to log in before you can comment on or make changes to this bug.