Closed Bug 1991223 Opened 1 month ago Closed 1 month ago

Remove uses of arguments rectifier in CodeGenerator::emitApplyGeneric

Categories

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

task

Tracking

()

RESOLVED FIXED
145 Branch
Tracking Status
firefox145 --- fixed

People

(Reporter: iain, Assigned: iain)

References

Details

Attachments

(2 files)

This is the final user of the rectifier trampoline.

The tricky part here is that we have no scratch registers available on x86 until after pushing newTarget, but if we need padding, it needs to be pushed before newTarget. The best approach I could find for x86 was to unconditionally push newTarget twice, and then possibly overwrite the second copy with the last argument. This is a little suboptimal for non-x86 targets, but for now I decided to use the same strategy on all platforms, to avoid two separate implementations of some fairly tricky code.

Status: NEW → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 145 Branch
Regressions: 1993404
QA Whiteboard: [qa-triage-done-c146/b145]

(In reply to Pulsebot from comment #3)

Pushed by [email protected]:
https://github.com/mozilla-firefox/firefox/commit/19ad14a754ef
https://hg.mozilla.org/integration/autoland/rev/4913ac14b95a
Handle arguments underflow in AllocateSpaceForApply r=jandem
https://github.com/mozilla-firefox/firefox/commit/e277fc4fc606
https://hg.mozilla.org/integration/autoland/rev/35c77e7ecf60
Handle arguments underflow in AllocateSpaceForConstructAndPushNewTarget
r=jandem

Hello!

Do you think it's possible the push mentioned in the referenced comment could have caused the improvement below ?

We are unable to run backfills on the following push range, and it's difficult to determine which of the patches in that push range caused the improvement.

Perfherder has detected a browsertime performance change from push e3f1fd706322ba441f886715b7d6dc5cf1e62c60.

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)
5% speedometer React-TodoMVC/DeletingAllItems windows11-64-24h2-shippable fission webrender 11.45 -> 10.92

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 47215

The following documentation link provides more information about this command.

Flags: needinfo?(iireland)

It's possible that this helped, but if I had to bet on a patch in that push range, I would go with bug 1991101. I don't recall seeing many samples in the rectifier trampoline prior to this change.

Flags: needinfo?(iireland)
Regressions: 1995939
Regressions: 1999771
Regressions: 2000603
Regressions: 1995949
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: