aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mlir/include/mlir/Dialect/PDL/IR/PDLOps.td3
-rw-r--r--mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir18
-rw-r--r--mlir/test/Dialect/PDL/canonicalize.mlir10
3 files changed, 29 insertions, 2 deletions
diff --git a/mlir/include/mlir/Dialect/PDL/IR/PDLOps.td b/mlir/include/mlir/Dialect/PDL/IR/PDLOps.td
index 4a97c17..258ad41 100644
--- a/mlir/include/mlir/Dialect/PDL/IR/PDLOps.td
+++ b/mlir/include/mlir/Dialect/PDL/IR/PDLOps.td
@@ -268,8 +268,7 @@ def PDL_OperandsOp
// pdl::OperationOp
//===----------------------------------------------------------------------===//
-def PDL_OperationOp
- : PDL_Op<"operation", [AttrSizedOperandSegments, NoSideEffect]> {
+def PDL_OperationOp : PDL_Op<"operation", [AttrSizedOperandSegments]> {
let summary = "Define an operation within a pattern";
let description = [{
`pdl.operation` operations define operation nodes within a pattern. Within
diff --git a/mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir b/mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir
index d2f1358..f9415b3 100644
--- a/mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir
+++ b/mlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir
@@ -202,3 +202,21 @@ module @apply_native_rewrite {
}
}
}
+
+// -----
+
+// CHECK-LABEL: module @unbound_rewrite_op
+module @unbound_rewrite_op {
+ // CHECK: module @rewriters
+ // CHECK: func @pdl_generated_rewriter()
+ // CHECK: %[[UNUSED:.*]] = pdl_interp.create_operation "bar.op"
+ // CHECK: pdl_interp.finalize
+ pdl.pattern : benefit(1) {
+ %root = pdl.operation "foo.op"
+ pdl.rewrite %root {
+ %unused = pdl.operation "bar.op"
+ }
+ }
+}
+
+// -----
diff --git a/mlir/test/Dialect/PDL/canonicalize.mlir b/mlir/test/Dialect/PDL/canonicalize.mlir
new file mode 100644
index 0000000..5cb08ac
--- /dev/null
+++ b/mlir/test/Dialect/PDL/canonicalize.mlir
@@ -0,0 +1,10 @@
+// RUN: mlir-opt -canonicalize %s | FileCheck %s
+
+pdl.pattern @operation_op : benefit(1) {
+ %root = pdl.operation "foo.op"
+ pdl.rewrite %root {
+ // CHECK: pdl.operation "bar.unused"
+ %unused_rewrite = pdl.operation "bar.unused"
+ pdl.erase %root
+ }
+}