Closed Bug 1986983 Opened 1 year ago Closed 11 months ago

Support baking in constant property values for builtin JS prototypes and constructors

Categories

(Core :: JavaScript Engine: JIT, task, P1)

task

Tracking

()

RESOLVED FIXED
145 Branch
Tracking Status
firefox145 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

(Keywords: perf-alert, Whiteboard: [js-perf-next])

Attachments

(2 files)

After the global object and global lexical environment, we can also enable object fuses for builtin prototypes and constructors. This lets us get rid of more guards for cases such as Math.abs(x), array.join(), or number.toString().

This won't cover prototype objects created by the DOM or JS code yet, but it's a start.

Depends on: 1987227

This lets us eliminate guards for calls to builtins such as Math.abs(x) or
array.join().

Severity: -- → N/A
Priority: -- → P1
Status: ASSIGNED → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → 145 Branch

(In reply to Pulsebot from comment #3)

Pushed by jdemooij@mozilla.com:
https://github.com/mozilla-firefox/firefox/commit/b8e3fb41fc38
https://hg.mozilla.org/integration/autoland/rev/859aa9f31374
part 1 - Use object fuses for builtin JS constructors and prototypes. r=iain
https://github.com/mozilla-firefox/firefox/commit/18da8fdd9602
https://hg.mozilla.org/integration/autoland/rev/6a272cfe39b5
part 2 - Optimize GetProp for objects with an object fuse. r=iain

Perfherder has detected a talos performance change from push 6a272cfe39b51dec0b2ffb95c1b7d419f38c6584.

If you have any questions, please reach out to a performance sheriff. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
6% perf_reftest_singletons id-getter-4.html windows11-64-24h2-shippable e10s fission stylo webrender 145.58 -> 137.03
6% perf_reftest_singletons id-getter-3.html windows11-64-24h2-shippable e10s fission stylo webrender 145.63 -> 137.10
6% perf_reftest_singletons id-getter-5.html windows11-64-24h2-shippable e10s fission stylo webrender 145.71 -> 137.18
6% perf_reftest_singletons id-getter-6.html windows11-64-24h2-shippable e10s fission stylo webrender 145.84 -> 137.35
6% perf_reftest_singletons id-getter-7.html windows11-64-24h2-shippable e10s fission stylo webrender 145.99 -> 137.57

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.

If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a performance sheriff to do that for you.

You can run all of these tests on try with ./mach try perf --alert 46834

The following documentation link provides more information about this command.

Keywords: perf-alert
Regressions: 1991726
QA Whiteboard: [qa-triage-done-c146/b145]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: