Closed Bug 1949273 Opened 26 days ago Closed 24 days ago

Make it easier to emit out-of-line code from Ion

Categories

(Core :: JavaScript Engine: JIT, task)

task

Tracking

()

RESOLVED FIXED
137 Branch
Tracking Status
firefox137 --- fixed

People

(Reporter: bvisness, Assigned: bvisness)

Details

Attachments

(5 files)

Our current system for emitting out-of-line code from Ion is very bulky, requiring us to make a new subclass of OutOfLineCodeBase for every occurrence, with constructor and getters. The majority of out-of-line cases are very simple and could be replaced by some kind of lambda, which would make it much easier to experiment with code layout and hopefully improve performance as a result.

Adds a new subclass of OutOfLineCodeBase that takes a lambda. This is
very useful for the majority of out-of-line code, which only needs to
defer a few masm instructions to the end of the block when emitting code
and doesn't need any complicated logic.

Updates wasm-related codegen to use lambdas where appropriate.

Updates js-related out-of-line code to use lambdas where appropriate.
This is a judgment call on my part, and anything that seemed
sufficiently complicated was left alone.

Updates out-of-line code in platform-specific assemblers for primary
platforms (x86, arm, arm64).

Updates out-of-line code to use lambdas for secondary platforms
(loong64, mips, riscv64).

Pushed by bvisness@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ea2290563c27 Add a lambda option for out-of-line code. r=jandem,rhunt https://hg.mozilla.org/integration/autoland/rev/d4c1a9d93c49 Convert out-of-line wasm code to lambdas. r=rhunt https://hg.mozilla.org/integration/autoland/rev/83b772921373 Convert out-of-line JS code to lambdas. r=jandem https://hg.mozilla.org/integration/autoland/rev/2dc977cc0b79 Convert platform-specific OOL code to lambdas. r=jandem https://hg.mozilla.org/integration/autoland/rev/e543a77786c9 Convert OOL code for other platforms to lambdas. r=jandem
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: