cfallin opened issue #4130:
As part of #4128, we will need a way to write ISLE rules that replace CLIF values with new CLIF values, insert new CLIF instructions, and delete old CLIF instructions. It might also make sense to allow replacement of single instructions with bounded (single-in, single-out) control-flow shapes, as in Hoopl.
This work will consist at least of:
- Developing a driver framework, similar to but distinct from the CLIF-to-MachInst lowering driver, for both forward and backward transform passes to traverse the input;
- Making the generated CLIF-instruction extractor prelude compatible with this framework as well;
- Generating CLIF-instruction constructors;
- Developing an idiomatic way of writing a toplevel constructor entry-point that replaces one input value/instruction with some output.
cfallin labeled issue #4130:
As part of #4128, we will need a way to write ISLE rules that replace CLIF values with new CLIF values, insert new CLIF instructions, and delete old CLIF instructions. It might also make sense to allow replacement of single instructions with bounded (single-in, single-out) control-flow shapes, as in Hoopl.
This work will consist at least of:
- Developing a driver framework, similar to but distinct from the CLIF-to-MachInst lowering driver, for both forward and backward transform passes to traverse the input;
- Making the generated CLIF-instruction extractor prelude compatible with this framework as well;
- Generating CLIF-instruction constructors;
- Developing an idiomatic way of writing a toplevel constructor entry-point that replaces one input value/instruction with some output.
cfallin labeled issue #4130:
As part of #4128, we will need a way to write ISLE rules that replace CLIF values with new CLIF values, insert new CLIF instructions, and delete old CLIF instructions. It might also make sense to allow replacement of single instructions with bounded (single-in, single-out) control-flow shapes, as in Hoopl.
This work will consist at least of:
- Developing a driver framework, similar to but distinct from the CLIF-to-MachInst lowering driver, for both forward and backward transform passes to traverse the input;
- Making the generated CLIF-instruction extractor prelude compatible with this framework as well;
- Generating CLIF-instruction constructors;
- Developing an idiomatic way of writing a toplevel constructor entry-point that replaces one input value/instruction with some output.
fitzgen commented on issue #4130:
This is implemented in the recent e-graphs work. Closing.
fitzgen closed issue #4130:
As part of #4128, we will need a way to write ISLE rules that replace CLIF values with new CLIF values, insert new CLIF instructions, and delete old CLIF instructions. It might also make sense to allow replacement of single instructions with bounded (single-in, single-out) control-flow shapes, as in Hoopl.
This work will consist at least of:
- Developing a driver framework, similar to but distinct from the CLIF-to-MachInst lowering driver, for both forward and backward transform passes to traverse the input;
- Making the generated CLIF-instruction extractor prelude compatible with this framework as well;
- Generating CLIF-instruction constructors;
- Developing an idiomatic way of writing a toplevel constructor entry-point that replaces one input value/instruction with some output.
Last updated: Dec 23 2024 at 13:07 UTC