<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/118456>118456</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] -transform-interpreter crashes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wwy6191
</td>
</tr>
</table>
<pre>
git version: d09707070c7460d0887eae8f7022e816510d5eb1
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -transform-interpreter a.mlir`
a.mlir:
```
#map = affine_map<(d1) -> ((d1 floordiv 8) ceildiv 8)>
#map1 =affine_map<(d0) -> (d0 + 1)>
#map2 = affine_map<(d0) -> (d0 + 1)>
module {
func.func @simple_test_1(%arg0: index, %arg1: index) -> index {
%c0 = arith.constant 0 : index
%0 = affine.apply #map(%arg0)
%1 = affine.apply #map1(%0)
%2 = affine.apply #map2(%1)
return %2 : index
}
module attributes {transform.with_named_sequence} {
transform.named_sequence @__transform_main(%arg0:!transform.any_op {transform.readonly}) {
%0 = transform.structured.match ops{["arith.constant"]} in %arg0 : (!transform.any_op) ->!transform.any_op
%c0_0 = arith.constant 0 : index
%1 = transform.structured.match ops{["affine.for"]} in %0 : (!transform.any_op) ->!transform.any_op
transform.debug.emit_remark_at %1, "transformed op" :!transform.any_op
transform.apply_patterns to %1 {
transform.apply_patterns.transform.test_patterns
} :!transform.any_op
transform.debug.emit_remark_at %0, "matched apply_patterns" :!transform.any_op
transform.yield
}
}
}
```
stack trace:
```
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/llvm/include/llvm/Support/Casting.h:572: decltype(auto) llvm::cast(From &) [To = mlir::transform::TransformOpInterface, From = mlir::Operation]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt -transform-interpreter /data/szy/MLIR/seed/seed3/tmp.NaszRjL43u.mlir
#0 0x0000562c53147f88 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1185f88)
#1 0x0000562c53145a9e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1183a9e)
#2 0x0000562c5314891d SignalHandler(int) Signals.cpp:0:0
#3 0x00007f11835a1420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007f1182bde00b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007f1182bbd859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007f1182bbd729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007f1182bbd729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007f1182bcefd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x0000562c5587a44f applySequenceBlock(mlir::Block&, mlir::transform::FailurePropagationMode, mlir::transform::TransformState&, mlir::transform::TransformResults&) TransformOps.cpp:0:0
#10 0x0000562c5587e05e mlir::transform::NamedSequenceOp::apply(mlir::transform::TransformRewriter&, mlir::transform::TransformResults&, mlir::transform::TransformState&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x38bc05e)
#11 0x0000562c55829071 mlir::transform::detail::TransformOpInterfaceInterfaceTraits::Model<mlir::transform::NamedSequenceOp>::apply(mlir::transform::detail::TransformOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::transform::TransformRewriter&, mlir::transform::TransformResults&, mlir::transform::TransformState&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3867071)
#12 0x0000562c5907294c mlir::transform::TransformState::applyTransform(mlir::transform::TransformOpInterface) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x70b094c)
#13 0x0000562c5907e4b2 mlir::transform::applyTransforms(mlir::Operation*, mlir::transform::TransformOpInterface, mlir::RaggedArray<llvm::PointerUnion<mlir::Operation*, mlir::Attribute, mlir::Value>> const&, mlir::transform::TransformOptions const&, bool, llvm::function_ref<void (mlir::transform::TransformState&)>, llvm::function_ref<llvm::LogicalResult (mlir::transform::TransformState&)>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x70bc4b2)
#14 0x0000562c558b15bd mlir::transform::applyTransformNamedSequence(mlir::RaggedArray<llvm::PointerUnion<mlir::Operation*, mlir::Attribute, mlir::Value>>, mlir::transform::TransformOpInterface, mlir::ModuleOp, mlir::transform::TransformOptions const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x38ef5bd)
#15 0x0000562c558ac541 (anonymous namespace)::InterpreterPass::runOnOperation() InterpreterPass.cpp:0:0
#16 0x0000562c56582936 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c0936)
#17 0x0000562c56583260 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c1260)
#18 0x0000562c56585832 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c3832)
#19 0x0000562c5657e0da performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x0000562c5657dd2d llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#21 0x0000562c56629fa5 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4667fa5)
#22 0x0000562c56577d15 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b5d15)
#23 0x0000562c56577fbf mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b5fbf)
#24 0x0000562c565782ee mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b62ee)
#25 0x0000562c53128a77 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1166a77)
#26 0x00007f1182bbf083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#27 0x0000562c531285ee _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11665ee)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWk9v47bT_jTKhYhBUX99yMFx1ngX2DRBkvYqUOJIYVciVZLKxv30L0jJluTEu960bvEr2o1NcsiZZ-bhDEWZas0rAXDlRddedHNBO_Ms1dW3b9vYX_oXuWTbq4ob9AJKcym8YIUYXibY_lckYYwZTtMEKKRlggmB1I8jH7MIct_DKw-v9FYbaOw8L8a_5p0wHfLTBQ4XMfry9OjFuJdT0CrJugLQN26eB_mm5upStgahS6Oo0KVUzSUXBlSrwIBCdGFF9ot4eDX0BCuEbEeM-_9dgwQNbZEX3CBallxA1tDWC9YeSZnvkSW69IJPyCOp60BlLaVi_AWldqwAXu8aXvBpv5xv13uzHJ4uxzDyyDXyD2aS9y35_tRGsq4G5CXXHl4hVHaiWNg_yAux5k1bQ2ZAm8x3MCKqKmx9wQWDV4-sUd_nT_oGZa61XxdZwQL3FipunheFFNpQYZDt3E3ei-IJlgVt23qLepATM8hylPePyQ92z6XJMWnSS_ujtALTKbGbNLXTS27c5-BBaozieWdAW9B7di0s-zJBG2CZhj86EAV4yc3EMaPoXMpGIMv2o1lDuZgFwSP-OJeKbSbbuWoFlElRb62lZDlROXHxKK2N6grTKWCLhpriGclW2ynRtUfIPGYeIV50Y2FwMTCgj6Kz741VO068NzQxqMDZiQSZhPxU-_tYl1Id2v5XDR8HGORdtYCGm0xBQ9XXjBrUs8nuE7KXBIbs2o5Qpy3tOJq11BhQQiMjBwdMInpcfDEOuK286x-dafl4qinHUOIBpfM9MDS34afQbjnUDO22a7_N-o_h70Ee1oYWX-38AqyOtwK7tN9HesOooR7Z6D-3Htncfvn84JFNXb80lwpqoBp2zVbJ36EwQ9MjGy6KumMwdjx2bSuVlVhTbbioFrbSRAlxdQ2K2mxb8EhKOyMtmdy0YOUFq4Jq45F0o2SDPBK7_RldP0lH6qHieMFq75S--bRr3rWfbdUqLWSyRv0ys5l3LShqbImNbqw1K61B2batg1xTL1g_Scft9DdaO_3WjNjG0BkXrJ-2_bgdpKrqGhAGyRJxUcimpYbnNaAeoW-3FUlQSXkNbOHh1f2XT6vHT0h3ecMNoijvKqTAesvS99mYVjtCbDyyqbh57vJFIZvRtQcR4Fp3oD2yQVQwNAQCmWdAhaL6GeW0-OoYYHU_OkKwrml7PuBFT7F7JStFmz0Y_WFC5B2vmf20OXmzP1YcOVUcUaEB2PAReGRjmnbxC9V_Pvz-JQy6_thhmU8CjPArxhhHMSmiwA-TMk0nXNJb3X-5V1wYB_7JbQaSjkKKfsukNgpo4wK9Rtwm8mWf-v42F3jkGr_6fhqVaTpUUY8E_gGAiC7hPQAPnXjklaD1_1HBalB6YN95bAzoEkYbyYGN6dJnaGaNR9LBZ323XhStZRh2__pVgmGVpLQKIuqHBKMsU6CNVJApM2Cpee6RzWsaZ3F4WXPRvV5WousHWvNsS_dCywXubQ1DgkdLw6kOkjPAOEeKcg1ogrmqeV5cfik-E_y6b5JF4FsXOvs9slksbGurGbR2c3WCv_YdL84U0dmmW3pR2MxmD3r-YEY0NyNnabRENJcO42lmGNb7wc1yGlKrIRk0xIcaErJEFZistzjTUNltnL3QujsZOxfGIq8lZY2uCtrrjfDSah8UJ-8pzkSd2VkZk_Ys9tf0LRPLmiAcFKZzhQWULD6BKYXlSOw4EgQli0eOLKdsjtKEhmHZ1-TH4Xx5Xcviq0fSsWQMPS45HC1BG8rrTsG9ki2tXIG5lQy-O2VftR4NNfAjBXvpB9BdbfRQHSel73Df2QSDD_ACjuC4jl_sSXvniLu273TemTnkuGXfFDc2IXwAys856iy5L0jzAkdD7rPe8-feI0uc-MfNZGAor4-fSPZfnhTlZkjtliW1F6xPj8mnE8PyIXPWUhTQGuSeMjyymsdlPDwdjvx3KREnOPFHSszK4RInZBkWJ5s5Bm4_cNLGmh1rz4IzwTlehsWIMzjACWFOjuOcY9IzUD9PmoNT_DjhgVYVsJVSdOsF6_GgdC_dsfJX4a7O1qfoXu3uJebdv9mS6fbYp90eOJGId63Vo2ezcilr-zlaWnaisHKZgtIL1i-SM3QSBSY8d08f31l0HPgiK17Qut9TH9NzLrYVYU5GtoXzRJv7Uc5OZdssQc4w_qN0-YvUvnXXZXftR8l2puwHZZSzMU7RPE60iELfKqZCim0jO40EbUC3faLqjf48PvHdUz3UGdWJOzFxt3ucOZB85zgTT_XHtiIH8cRd05J31z7Ju9aus2K0NVLtFc844kw6vc6tBK23mutbKmhly9q4yTvhrvjZGR8gw6jAyyAe45Ec-CMgMf5pf9zzFmou4CBrW9E9zPhvd9B0klX1WWij3PWDVG9WnQv0mvuBwfZ7qkCYz6KUk6PLuWLgkxiPMUgPYmCjcGD6zhnvMnDuy3PZHKTBJN8u5zYngBlFLSibW1aulugf3JJow4ZLimeqgGWtUbMc-yg7VcBtpY5XUotqLYWB17cnzduaq7vW3FIu1lKUvJqlusno2yRB8AE4xghDx4riR6roHnsn-B8dvMF-C41U2-uuLPsNsJdnUNKuNhmDGuxx8NicfUE5HoHl_kGgoHWd0-JrVs6L2cRJp8by7HhG6244raEwD1BxbdT2LTm-R4BexCNhhvur2FqK6p9F8p3I_ICes4fKOCbLkkYT4LqtuVkJdq9kAVrvbP1XSPc_uCW-KzEdezSKi-oByqPd50nFcZyUNNqnYkIOslXC_Oj9ffBf28XnqXR5xPyJe4ND95Z5edS9w8GkeKb9EWT1s5T5kW_OhrnMyxFzeIA5JQB_C-Z_B1xMYLyTI9H8fQRJaZKg4eL5DG9D4pgmyaj98Oq9xGmAsqzmeZFpQ5XJfuYOvNDd7mVD_9UNunXcbXgQEvt30J0cIo8AUK_1XNijvef3740v2FXAlsGSXsCVnwQB8dM4TC6er9Ioj1kQBJBiFsZ5kOOQxmHJaJ4kMRD_gl8RTEKf4AAvg4Qki4gG1C6VJGlQxHjphRgayuuFNXIhVXXhXm9e-X4aRvFFTXOo9VX_ywVHRfebhQt15UDlXaW9ENdcGz2uYLip3a-u3ITo5ti7SPe6FPRFp-qrj7-FHSx9uSL_HwAA__8tQb1l">