Closed Bug 1657303 Opened 2 months ago Closed 1 month ago

Warp: support optimized-arguments

Categories

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

task

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox81 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Long-term we want to reconsider the arguments analysis (it's quite a lot of overhead for cold scripts), but for now we can use WarpBuilder instead of IonBuilder.

Warp compilations can then rely on the transpiler for the lazy arguments optimizations. We also need to guard the optimized-arguments MagicValue doesn't escape to ICs; we can deoptimize the arguments-analysis if we hit this bailout.

I have a patch for this. The main thing it doesn't handle yet is optimized FunApply and we de-optimize for that, but once we have transpiler support for it that should just work.

  • If WarpBuilder is enabled, use WarpBuilder instead of IonBuilder for the analysis itself.
  • Support optimized-arguments accesses in the transpiler (FunApplyArgs is still missing).
  • Slow paths insert MGuardNotOptimizedArguments to deoptimize optimized-arguments.
Pushed by jdemooij@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2df77215b824
Support using the arguments analysis with WarpBuilder. r=iain
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 81 Branch
You need to log in before you can comment on or make changes to this bug.