bjorn3 commented on Issue #1081:
The new backend framework doesn't use legalizations.
cfallin commented on Issue #1081:
While we still use some skeletal remains of legalizations (e.g. lowering heap accesses to primitive address computation ops and load/store ops), the specific issues described here mostly don't apply anymore, I agree.
cfallin closed Issue #1081:
I'll use this issue as a dump for things that I've noticed could be enhanced for the legalization module in the Rust meta crate, probably better to do later once we've ported all of the meta code to Rust.
- [ ] Remove the ordering hack in the
x86legalizer file, which was needed because we want to ensure the same ordering of transform groups as the Python module does (for encodings).- [x] When there are several legalizations available for a given Cranelift opcode (e.g. when the opcode is type-dependent), the generated code does unwrap the arguments from the instruction several times, and generates a predicate too. We could unwrap the arguments at the top once and for all, and then generate predicates for each type the legalization affects.
- [x] Remove the condition when the value of
predicateis a plaintrue.- [x] Try to gather the predicate conditions together, instead of refining the predicate (e.g.
let predicate = value_type == I64; let predicate = predicate && type_sets[42].contains(something);etc).- [ ] Allow to bind several times in the
def!macro.- [ ] Consider adding a
ToRustCodeandToRustCommenttrait that structs can implement.
Last updated: Dec 06 2025 at 06:05 UTC