Closed Bug 834826 Opened 7 years ago Closed 7 years ago

Eliminate various unnecessary stack roots

Categories

(Core :: JavaScript Engine, defect)

Other Branch
x86
macOS
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla21

People

(Reporter: bhackett1024, Unassigned)

References

Details

Attachments

(1 file)

Attached patch patchSplinter Review
The attached patch fixes various unnecessary roots in SS, reducing the number of constructed roots from 39% of the original total to 22%.  A fair amount of this is removing inference and compilation roots that with bug 772820 are now unnecessary, though there are various miscellaneous rooting refactorings as well.
Attachment #706525 - Flags: review?(terrence)
How big is the performance regression on SS now?
I haven't measured, but will do so after this lands.  My target was to eliminate at least 80% of the roots so this is right about there.  There is still some more that can be done fwiw.
Comment on attachment 706525 [details] [diff] [review]
patch

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

::: js/src/jsobj.h
@@ +1134,2 @@
>  extern JSBool
> +HasOwnProperty(JSContext *cx, LookupGenericOp lookup,

Disregard my IRC request for a comment here. It did not occur to me that Has*Own*Property would need to throw exceptions.
Attachment #706525 - Flags: review?(terrence) → review+
(In reply to Terrence Cole [:terrence] from comment #1)
> How big is the performance regression on SS now?

Testing on linux/x64 I get a difference of <1ms on SS, or .4%
https://hg.mozilla.org/mozilla-central/rev/052d2de29f8f
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
Depends on: 837418
You need to log in before you can comment on or make changes to this bug.