llvm/mlir/lib/Tools
River Riddle ea64828a10 [mlir:PDL] Expand how native constraint/rewrite functions can be defined
This commit refactors the expected form of native constraint and rewrite
functions, and greatly reduces the necessary user complexity required when
defining a native function. Namely, this commit adds in automatic processing
of the necessary PDLValue glue code, and allows for users to define
constraint/rewrite functions using the C++ types that they actually want to
use.

As an example, lets see a simple example rewrite defined today:

```
static void rewriteFn(PatternRewriter &rewriter, PDLResultList &results,
                      ArrayRef<PDLValue> args) {
  ValueRange operandValues = args[0].cast<ValueRange>();
  TypeRange typeValues = args[1].cast<TypeRange>();
  ...
  // Create an operation at some point and pass it back to PDL.
  Operation *op = rewriter.create<SomeOp>(...);
  results.push_back(op);
}
```

After this commit, that same rewrite could be defined as:

```
static Operation *rewriteFn(PatternRewriter &rewriter ValueRange operandValues,
                            TypeRange typeValues) {
  ...
  // Create an operation at some point and pass it back to PDL.
  return rewriter.create<SomeOp>(...);
}
```

Differential Revision: https://reviews.llvm.org/D122086
2022-04-06 17:41:59 -07:00
..
lsp-server-support [mlir][PDLL] Add signature help to the PDLL language server 2022-03-19 13:28:24 -07:00
mlir-lsp-server [mlir][PDLL] Add an initial language server for PDLL 2022-03-19 13:28:23 -07:00
mlir-opt
mlir-pdll-lsp-server [mlir][PDLL] Add signature help to the PDLL language server 2022-03-19 13:28:24 -07:00
mlir-reduce
mlir-translate Revert "[mlirTranslateMain] Add a customization callback." 2022-03-14 22:04:46 -07:00
PDLL [mlir:PDL] Expand how native constraint/rewrite functions can be defined 2022-04-06 17:41:59 -07:00
CMakeLists.txt [mlir][PDLL] Add an initial language server for PDLL 2022-03-19 13:28:23 -07:00