cfallin opened Issue #1344:
This issue will track progress on our new instruction selector / machine-code emission work, which has been ongoing (in design and initial implementation).
The scope of the work is:
- Build a new instruction selector, to replace the recipes and meta-DSL system that adds encodings to existing Cranelift IR instructions.
- Develop a low-level encoding of machine instructions, with virtual registers prior to register allocation (an "IR" of sorts)
- Interface the above to a new register allocator infrastructure,
minira
- Develop the binary-encoding pass that emits into a
CodeSink
from the above representationAs discussed among @sunfishcode, @julian-seward1, @bnjbvr, and others, we want to do this work in order to clean up the story for a new machine backend, as recipes had become difficult to write and maintain.
The system will be co-developed with an initial backend for ARM64 using the new interfaces.
alexcrichton transferred Issue #1344:
This issue will track progress on our new instruction selector / machine-code emission work, which has been ongoing (in design and initial implementation).
The scope of the work is:
- Build a new instruction selector, to replace the recipes and meta-DSL system that adds encodings to existing Cranelift IR instructions.
- Develop a low-level encoding of machine instructions, with virtual registers prior to register allocation (an "IR" of sorts)
- Interface the above to a new register allocator infrastructure,
minira
- Develop the binary-encoding pass that emits into a
CodeSink
from the above representationAs discussed among @sunfishcode, @julian-seward1, @bnjbvr, and others, we want to do this work in order to clean up the story for a new machine backend, as recipes had become difficult to write and maintain.
The system will be co-developed with an initial backend for ARM64 using the new interfaces.
Last updated: Dec 23 2024 at 14:03 UTC