Open
Description
If C++ code deletes an operation the PyOperation::valid
flag isn't updated, which can lead to crashes:
from mlir import ir
from mlir.dialects import builtin
from mlir.passmanager import PassManager
with ir.Context():
module = builtin.ModuleOp.parse("""
module {
arith.constant 10
}
""")
const_op = module.body.operations[0]
print(const_op)
PassManager.parse('builtin.module(canonicalize)').run(module)
print(const_op) # Segmentation fault (core dumped)
Metadata
Metadata
Assignees
Labels
MLIR Python bindingsMLIR Python bindings