[riscv64] Elide redundant no-op `mv`-like instructions when applicable
Categories
(Core :: JavaScript Engine: JIT, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox158 | --- | fixed |
People
(Reporter: csmantle, Assigned: csmantle)
References
(Blocks 1 open bug)
Details
Attachments
(6 external files)
The riscv64 backend currently generates some no-op self-moves and other similar no-op instructions. We could try to eliminate them.
Recently, I have extended LoongLint with multi-architecture support, including riscv64. This optimization is discovered when evaluating LoongLint on riscv64 JITDumps produced by Octane. In total, this elides ~204 such instructions on this benchmark
| Assignee | ||
Comment 1•2 months ago
|
||
This helps later elision of self-moves.
| Assignee | ||
Comment 2•2 months ago
|
||
This function will be used in later parts. Keep AssemblerRISCVI::mv()
intact since it corresponds to an actual RISC-V pseudo-instruction.
| Assignee | ||
Comment 3•2 months ago
|
||
Per LoongLint for RISC-V, this eliminates 9 (out of 206) non-canonical
nops on Octane with codegen profile RVA23U64.
| Assignee | ||
Comment 4•2 months ago
|
||
Per LoongLint for RISC-V, this further eliminates 91 (out of 206)
no-ops on Octane.
| Assignee | ||
Comment 5•2 months ago
|
||
Per LoongLint for RISC-V, this further eliminates 106 (out of 206)
no-ops on Octane.
Updated•2 months ago
|
| Assignee | ||
Comment 6•2 months ago
|
||
Updated•2 months ago
|
https://hg.mozilla.org/mozilla-central/rev/43a089a7f75a
https://hg.mozilla.org/mozilla-central/rev/db02850efbba
https://hg.mozilla.org/mozilla-central/rev/a5ba46738f1a
https://hg.mozilla.org/mozilla-central/rev/1f3f049aaade
https://hg.mozilla.org/mozilla-central/rev/769a3b9b835f
https://hg.mozilla.org/mozilla-central/rev/702064d2d252
Updated•1 month ago
|
Description
•