Make it easier to emit out-of-line code from Ion
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
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.
Assignee | ||
Comment 1•26 days ago
|
||
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.
Assignee | ||
Comment 2•26 days ago
|
||
Updates wasm-related codegen to use lambdas where appropriate.
Assignee | ||
Comment 3•26 days ago
|
||
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.
Assignee | ||
Comment 4•26 days ago
|
||
Updates out-of-line code in platform-specific assemblers for primary
platforms (x86, arm, arm64).
Assignee | ||
Comment 5•26 days ago
|
||
Updates out-of-line code to use lambdas for secondary platforms
(loong64, mips, riscv64).
https://hg.mozilla.org/mozilla-central/rev/ea2290563c27
https://hg.mozilla.org/mozilla-central/rev/d4c1a9d93c49
https://hg.mozilla.org/mozilla-central/rev/83b772921373
https://hg.mozilla.org/mozilla-central/rev/2dc977cc0b79
https://hg.mozilla.org/mozilla-central/rev/e543a77786c9
Description
•