[Mlir-commits] [mlir] [mlir][python] C++ API demo (PR #71133)
Mehdi Amini
llvmlistbot at llvm.org
Fri Nov 3 17:06:26 PDT 2023
================
@@ -551,3 +552,37 @@ def testInferTypeOpInterface():
two_operands = test.InferResultsVariadicInputsOp(single=zero, doubled=zero)
# CHECK: f32
print(two_operands.result.type)
+
+
+# CHECK-LABEL: testPythonPassDemo
+ at run
+def testPythonPassDemo():
+ def print_ops(op):
+ print(op.name)
+
+ module = """
+ module {
+ func.func @main() {
+ %memref = memref.alloca() : memref<1xi64>
+ %c0 = arith.constant 0 : index
+ %c1 = arith.constant 1 : i64
+ memref.store %c1, %memref[%c0] : memref<1xi64>
+ %u_memref = memref.cast %memref : memref<1xi64> to memref<*xi64>
+ return
+ }
+ }
+ """
+
+ # CHECK: memref.alloca
+ # CHECK: arith.constant
+ # CHECK: arith.constant
+ # CHECK: memref.store
+ # CHECK: memref.cast
+ # CHECK: func.return
+ # CHECK: func.func
+ # CHECK: builtin.module
+ with Context() as ctx, Location.unknown():
+ test.register_python_test_dialect(ctx)
+ test.register_python_test_pass_demo_pass(print_ops)
+ mlir_module = Module.parse(module)
+ PassManager.parse("builtin.module(python-pass-demo)").run(mlir_module.operation)
----------------
joker-eph wrote:
If this is intended as a demo, can you make it into its own file, with extensive documentation: "example style"
https://github.com/llvm/llvm-project/pull/71133
More information about the Mlir-commits
mailing list