| 9ad64a5c | 14-Feb-2022 |
River Riddle <[email protected]> |
[mlir:PDLL] Add support for C++ generation
This commits adds a C++ generator to PDLL that generates wrapper PDL patterns directly usable in C++ code, and also generates the definitions of native con
[mlir:PDLL] Add support for C++ generation
This commits adds a C++ generator to PDLL that generates wrapper PDL patterns directly usable in C++ code, and also generates the definitions of native constraints/rewrites that have code bodies specified in PDLL. This generator is effectively the PDLL equivalent of the current DRR generator, and will allow easy replacement of DRR patterns with PDLL patterns. A followup will start to utilize this for end-to-end integration testing and show case how to use this as a drop-in replacement for DRR tablegen usage.
Differential Revision: https://reviews.llvm.org/D119781
show more ...
|
| a486cf5e | 14-Feb-2022 |
River Riddle <[email protected]> |
[mlir:PDLL] Fix handling of unspecified operands/results on operation expressions
If the operand list or result list of an operation expression is not specified, we interpret this as meaning that th
[mlir:PDLL] Fix handling of unspecified operands/results on operation expressions
If the operand list or result list of an operation expression is not specified, we interpret this as meaning that the operands/results are "unconstraint" (i.e. "could be anything"). We currently don't properly handle differentiating this case from the case of "no operands/results". This commit adds the insertion of implicit value/type range variables when these lists are unspecified. This allows for adding proper support for when zero operands or results are expected.
Differential Revision: https://reviews.llvm.org/D119780
show more ...
|