Closed Bug 1552740 Opened 5 years ago Closed 5 years ago

Cranelift: General live range splitting

Categories

(Core :: JavaScript: WebAssembly, enhancement, P3)

enhancement

Tracking

()

RESOLVED WONTFIX

People

(Reporter: lth, Unassigned)

References

Details

This is a generalization of the work in bug 1552735 and should happen later. Currently when the Cranelift register allocator reaches maximum register pressure and must spill, it spills by assigning some SSA value to a stack slot for its lifetime. This leads to locally poor code; the correct behavior would be to attempt to split the live range.

If we're sticking to SSA regalloc, then there's work by Braun & Hack that explains how to do this systematically and with good results. We would likely then either replace our spill/reload passes by a splitter pass, or somehow augment those passes with a splitter component.

Blocks: cranelift
No longer blocks: cranelift-x64-parity
Priority: -- → P3

WONTFIXing this because there's a new register allocator coming.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.