Closed Bug 863795 Opened 7 years ago Closed 7 years ago

Remove duplicates from the store buffer when compacting

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla23

People

(Reporter: terrence, Assigned: terrence)

References

Details

Attachments

(1 file)

Attached patch v0Splinter Review
Brian's research in Bug 851057 found that removing duplicates before marking improved the performance of the object buffer. This patch implements this logic on the base store buffer class and performs this pass for all store buffers.

In practice, we will probably want to specialize |compact()| for each edge type and only run the compaction algorithms that are most relevant for each type. Alternatively, we may want to remove the current notInSet compaction by simply checking this condition at every store buffer insertion. These will require profiling, so I am leaving them for a separate pass.
Attachment #739682 - Flags: review?(wmccloskey)
Attachment #739682 - Flags: feedback?(bhackett1024)
Comment on attachment 739682 [details] [diff] [review]
v0

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

::: js/src/gc/StoreBuffer.cpp
@@ +101,5 @@
>  template <typename T>
>  void
> +StoreBuffer::MonoTypeBuffer<T>::compactRemoveDuplicates()
> +{
> +    JS_ASSERT(duplicates.count() == 0);

duplicates.empty()
Attachment #739682 - Flags: review?(wmccloskey) → review+
https://hg.mozilla.org/mozilla-central/rev/36ed827e43af
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
Attachment #739682 - Flags: feedback?(bhackett1024)
You need to log in before you can comment on or make changes to this bug.