[all-commits] [llvm/llvm-project] 95b4e8: [mlir:PDLL] Add support for PDL MLIR code generation
River Riddle via All-commits
all-commits at lists.llvm.org
Sat Feb 26 11:26:45 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 95b4e88b1db348fbb074c945bd85c777cf807cc0
https://github.com/llvm/llvm-project/commit/95b4e88b1db348fbb074c945bd85c777cf807cc0
Author: River Riddle <riddleriver at gmail.com>
Date: 2022-02-26 (Sat, 26 Feb 2022)
Changed paths:
M mlir/include/mlir/Tools/PDLL/AST/Nodes.h
A mlir/include/mlir/Tools/PDLL/CodeGen/MLIRGen.h
M mlir/lib/Tools/PDLL/CMakeLists.txt
A mlir/lib/Tools/PDLL/CodeGen/CMakeLists.txt
A mlir/lib/Tools/PDLL/CodeGen/MLIRGen.cpp
A mlir/test/mlir-pdll/CodeGen/MLIR/decl.pdll
A mlir/test/mlir-pdll/CodeGen/MLIR/expr.pdll
A mlir/test/mlir-pdll/CodeGen/MLIR/stmt.pdll
R mlir/test/mlir-pdll/Parser/lit.local.cfg
A mlir/test/mlir-pdll/lit.local.cfg
M mlir/tools/mlir-pdll/CMakeLists.txt
M mlir/tools/mlir-pdll/mlir-pdll.cpp
Log Message:
-----------
[mlir:PDLL] Add support for PDL MLIR code generation
This commits starts to plumb PDLL down into MLIR and adds an initial
PDL generator. After this commit, we will have conceptually support
end-to-end execution of PDLL. Followups will add CPP generation to
match the current DRR setup, and begin to add various end-to-end
tests to test PDLL execution.
Differential Revision: https://reviews.llvm.org/D119779
Commit: a486cf5e98bcf6a186bf3d01ba4539a3e27bd08d
https://github.com/llvm/llvm-project/commit/a486cf5e98bcf6a186bf3d01ba4539a3e27bd08d
Author: River Riddle <riddleriver at gmail.com>
Date: 2022-02-26 (Sat, 26 Feb 2022)
Changed paths:
M mlir/include/mlir/Tools/PDLL/AST/Nodes.h
M mlir/lib/Tools/PDLL/Parser/Parser.cpp
M mlir/test/mlir-pdll/CodeGen/MLIR/expr.pdll
M mlir/test/mlir-pdll/Parser/expr.pdll
Log Message:
-----------
[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
Commit: 9ad64a5c78a98c4f9eb4fff7c9c7665925db6907
https://github.com/llvm/llvm-project/commit/9ad64a5c78a98c4f9eb4fff7c9c7665925db6907
Author: River Riddle <riddleriver at gmail.com>
Date: 2022-02-26 (Sat, 26 Feb 2022)
Changed paths:
A mlir/include/mlir/Tools/PDLL/CodeGen/CPPGen.h
M mlir/lib/Tools/PDLL/CodeGen/CMakeLists.txt
A mlir/lib/Tools/PDLL/CodeGen/CPPGen.cpp
A mlir/test/mlir-pdll/CodeGen/CPP/general.pdll
M mlir/tools/mlir-pdll/mlir-pdll.cpp
Log Message:
-----------
[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
Commit: b474ca1d5a445cdfa924d794439013bea1599f92
https://github.com/llvm/llvm-project/commit/b474ca1d5a445cdfa924d794439013bea1599f92
Author: River Riddle <riddleriver at gmail.com>
Date: 2022-02-26 (Sat, 26 Feb 2022)
Changed paths:
M mlir/lib/Tools/PDLL/Parser/Parser.cpp
M mlir/test/mlir-pdll/Parser/constraint-failure.pdll
Log Message:
-----------
[PDLL] Properly error out on returning results from native constraints
PDL currently doesn't support result values from constraints, meaning we need
to error out until this is actually supported to avoid crashes.
Differential Revision: https://reviews.llvm.org/D119782
Compare: https://github.com/llvm/llvm-project/compare/2e7c35ea12c8...b474ca1d5a44
More information about the All-commits
mailing list