This repository was archived by the owner on Apr 23, 2021. It is now read-only.
This repository was archived by the owner on Apr 23, 2021. It is now read-only.
IR printing (-print-ir-after-all) crash #182
Closed
Description
The IR printer is expected to be resilient to invalid IR and -print-ir-after-all should never crash on a test case that didn't crash without it (because a developer wouldn't be able to see what's wrong).
$ mlir-opt -lower-to-llvm test/Transforms/loop-tiling.mlir
does not crash (it just fails verification), but
$ mlir-opt -lower-to-llvm -print-ir-after-all test/Transforms/loop-tiling.mlir
...
llvm.func @simple_matmul(%arg0: !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }*">, %arg1: !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }*">, %arg2: !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }*">) -> !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }"> {
%0 = llvm.load %arg0 : !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }*">
%1 = llvm.load %arg1 : !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }*">
%2 = llvm.load %arg2 : !llvm<"{ <64 x float>*, i64, [2 x i64], [2 x i64] }*">
affine.for %arg3 = 0 to 256 {
affine.for %arg4 = 0 to 256 {
affine.for %arg5 = 0 to 250 {
%3 = affine.load %0[%arg3, %arg5] : mlir-opt: /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/Types.h:277: U mlir::Type::cast() const [with U = mlir::MemRefType]: Assertion `isa<U>()' failed.
Stack dump:
0. Program arguments: mlir-opt -lower-to-llvm -print-ir-after-all test/Transforms/loop-tiling.mlir
#0 0x0000000000b1f66a llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/uday/llvm-project/llvm/lib/Support/Unix/Signals.inc:532:22
#1 0x0000000000b1f6fd PrintStackTraceSignalHandler(void*) /home/uday/llvm-project/llvm/lib/Support/Unix/Signals.inc:593:1
#2 0x0000000000b1d8a2 llvm::sys::RunSignalHandlers() /home/uday/llvm-project/llvm/lib/Support/Signals.cpp:68:20
#3 0x0000000000b1f0e7 SignalHandler(int) /home/uday/llvm-project/llvm/lib/Support/Unix/Signals.inc:384:1
#4 0x00007fca3b3d4e80 __restore_rt (/lib64/libpthread.so.0+0x12e80)
#5 0x00007fca3ae99e75 __GI_raise (/lib64/libc.so.6+0x37e75)
#6 0x00007fca3ae84895 __GI_abort (/lib64/libc.so.6+0x22895)
#7 0x00007fca3ae84769 _nl_load_domain.cold (/lib64/libc.so.6+0x22769)
#8 0x00007fca3ae92566 (/lib64/libc.so.6+0x30566)
#9 0x000000000042c6eb mlir::MemRefType mlir::Type::cast<mlir::MemRefType>() const /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/Types.h:278:12
#10 0x000000000042924f mlir::AffineLoadOp::getMemRefType() /home/uday/llvm-project/llvm/projects/mlir/include/mlir/Dialect/AffineOps/AffineOps.h:516:3
#11 0x0000000000417543 mlir::AffineLoadOp::print(mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/lib/Dialect/AffineOps/AffineOps.cpp:1959:31
#12 0x000000000043fc96 mlir::Op<mlir::AffineLoadOp, mlir::OpTrait::OneResult, mlir::OpTrait::AtLeastNOperands<1u>::Impl>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/OpDefinition.h:950:3
#13 0x00000000009ee2f8 (anonymous namespace)::OperationPrinter::printOperation(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1727:5
#14 0x00000000009edcbc (anonymous namespace)::OperationPrinter::print(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1633:24
#15 0x00000000009edc29 (anonymous namespace)::OperationPrinter::print(mlir::Block*, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1625:5
#16 0x00000000009ec826 (anonymous namespace)::OperationPrinter::printRegion(mlir::Region&, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1367:56
#17 0x000000000041364b print(mlir::OpAsmPrinter&, mlir::AffineForOp) /home/uday/llvm-project/llvm/projects/mlir/lib/Dialect/AffineOps/AffineOps.cpp:1328:65
#18 0x000000000041968d mlir::AffineForOp::print(mlir::OpAsmPrinter&) /home/uday/llvm-project/build/projects/mlir/include/mlir/Dialect/AffineOps/AffineOps.cpp.inc:89:26
#19 0x0000000000442989 mlir::Op<mlir::AffineForOp, mlir::OpTrait::ZeroResult, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::AffineTerminatorOp>::Impl, mlir::OpTrait::VariadicOperands>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/OpDefinition.h:950:3
#20 0x00000000009ee2f8 (anonymous namespace)::OperationPrinter::printOperation(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1727:5
#21 0x00000000009edcbc (anonymous namespace)::OperationPrinter::print(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1633:24
#22 0x00000000009edc29 (anonymous namespace)::OperationPrinter::print(mlir::Block*, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1625:5
#23 0x00000000009ec826 (anonymous namespace)::OperationPrinter::printRegion(mlir::Region&, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1367:56
#24 0x000000000041364b print(mlir::OpAsmPrinter&, mlir::AffineForOp) /home/uday/llvm-project/llvm/projects/mlir/lib/Dialect/AffineOps/AffineOps.cpp:1328:65
#25 0x000000000041968d mlir::AffineForOp::print(mlir::OpAsmPrinter&) /home/uday/llvm-project/build/projects/mlir/include/mlir/Dialect/AffineOps/AffineOps.cpp.inc:89:26
#26 0x0000000000442989 mlir::Op<mlir::AffineForOp, mlir::OpTrait::ZeroResult, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::AffineTerminatorOp>::Impl, mlir::OpTrait::VariadicOperands>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/OpDefinition.h:950:3
#27 0x00000000009ee2f8 (anonymous namespace)::OperationPrinter::printOperation(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1727:5
#28 0x00000000009edcbc (anonymous namespace)::OperationPrinter::print(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1633:24
#29 0x00000000009edc29 (anonymous namespace)::OperationPrinter::print(mlir::Block*, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1625:5
#30 0x00000000009ec826 (anonymous namespace)::OperationPrinter::printRegion(mlir::Region&, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1367:56
#31 0x000000000041364b print(mlir::OpAsmPrinter&, mlir::AffineForOp) /home/uday/llvm-project/llvm/projects/mlir/lib/Dialect/AffineOps/AffineOps.cpp:1328:65
#32 0x000000000041968d mlir::AffineForOp::print(mlir::OpAsmPrinter&) /home/uday/llvm-project/build/projects/mlir/include/mlir/Dialect/AffineOps/AffineOps.cpp.inc:89:26
#33 0x0000000000442989 mlir::Op<mlir::AffineForOp, mlir::OpTrait::ZeroResult, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::AffineTerminatorOp>::Impl, mlir::OpTrait::VariadicOperands>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/OpDefinition.h:950:3
#34 0x00000000009ee2f8 (anonymous namespace)::OperationPrinter::printOperation(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1727:5
#35 0x00000000009edcbc (anonymous namespace)::OperationPrinter::print(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1633:24
#36 0x00000000009edc29 (anonymous namespace)::OperationPrinter::print(mlir::Block*, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1625:5
#37 0x00000000009ec826 (anonymous namespace)::OperationPrinter::printRegion(mlir::Region&, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1367:56
#38 0x0000000000a4045e mlir::impl::printFunctionLikeOp(mlir::OpAsmPrinter&, mlir::Operation*, llvm::ArrayRef<mlir::Type>, bool, llvm::ArrayRef<mlir::Type>) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/FunctionSupport.cpp:217:18
#39 0x00000000005dd2d9 printLLVMFuncOp(mlir::OpAsmPrinter&, mlir::LLVM::LLVMFuncOp) /home/uday/llvm-project/llvm/projects/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp:1097:28
#40 0x00000000005f32a1 mlir::LLVM::LLVMFuncOp::print(mlir::OpAsmPrinter&) /home/uday/llvm-project/build/projects/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.cpp.inc:3331:1
#41 0x000000000061cad2 mlir::Op<mlir::LLVM::LLVMFuncOp, mlir::OpTrait::ZeroResult, mlir::OpTrait::IsIsolatedFromAbove, mlir::OpTrait::FunctionLike, mlir::OpTrait::ZeroOperands>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/OpDefinition.h:950:3
#42 0x00000000009ee2f8 (anonymous namespace)::OperationPrinter::printOperation(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1727:5
#43 0x00000000009edcbc (anonymous namespace)::OperationPrinter::print(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1633:24
#44 0x00000000009edc29 (anonymous namespace)::OperationPrinter::print(mlir::Block*, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1625:5
#45 0x00000000009ec826 (anonymous namespace)::OperationPrinter::printRegion(mlir::Region&, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1367:56
#46 0x0000000000a61273 mlir::ModuleOp::print(mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/Module.cpp:84:1
#47 0x0000000000a5bee7 mlir::Op<mlir::ModuleOp, mlir::OpTrait::ZeroOperands, mlir::OpTrait::ZeroResult, mlir::OpTrait::IsIsolatedFromAbove, mlir::OpTrait::SymbolTable, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::ModuleTerminatorOp>::Impl>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&) /home/uday/llvm-project/llvm/projects/mlir/include/mlir/IR/OpDefinition.h:950:3
#48 0x00000000009ee2f8 (anonymous namespace)::OperationPrinter::printOperation(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1727:5
#49 0x00000000009edcbc (anonymous namespace)::OperationPrinter::print(mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1633:24
#50 0x00000000009ee944 (anonymous namespace)::ModulePrinter::print(mlir::ModuleOp) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1806:3
#51 0x00000000009ef369 mlir::ModuleOp::print(llvm::raw_ostream&, mlir::OpPrintingFlags) /home/uday/llvm-project/llvm/projects/mlir/lib/IR/AsmPrinter.cpp:1941:33
#52 0x000000000066d185 printIR(mlir::Operation*, bool, llvm::raw_ostream&) /home/uday/llvm-project/llvm/projects/mlir/lib/Pass/IRPrinting.cpp:70:24
#53 0x000000000066d5d2 (anonymous namespace)::IRPrinterInstrumentation::runAfterPass(mlir::Pass*, mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/Pass/IRPrinting.cpp:114:3
#54 0x0000000000672b9c mlir::PassInstrumentor::runAfterPass(mlir::Pass*, mlir::Operation*) /home/uday/llvm-project/llvm/projects/mlir/lib/Pass/Pass.cpp:694:58
#55 0x00000000006701a9 mlir::Pass::run(mlir::Operation*, mlir::AnalysisManager) /home/uday/llvm-project/llvm/projects/mlir/lib/Pass/Pass.cpp:90:28
#56 0x000000000067084f mlir::OpPassManager::run(mlir::Operation*, mlir::AnalysisManager) /home/uday/llvm-project/llvm/projects/mlir/lib/Pass/Pass.cpp:223:15
#57 0x0000000000672234 mlir::PassManager::run(mlir::ModuleOp) /home/uday/llvm-project/llvm/projects/mlir/lib/Pass/Pass.cpp:565:39
#58 0x000000000063cb80 performActions(llvm::raw_ostream&, bool, bool, llvm::SourceMgr&, mlir::MLIRContext*, mlir::PassPipelineCLParser const&) /home/uday/llvm-project/llvm/projects/mlir/lib/Support/MlirOptMain.cpp:66:13
#59 0x000000000063cd01 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, bool, bool, mlir::PassPipelineCLParser const&) /home/uday/llvm-project/llvm/projects/mlir/lib/Support/MlirOptMain.cpp:92:49
#60 0x000000000063cf23 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::PassPipelineCLParser const&, bool, bool, bool) /home/uday/llvm-project/llvm/projects/mlir/lib/Support/MlirOptMain.cpp:125:36
#61 0x00000000009dc6bc main /home/uday/llvm-project/llvm/projects/mlir/tools/mlir-opt/mlir-opt.cpp:83:16
#62 0x00007fca3ae85f33 __libc_start_main (/lib64/libc.so.6+0x23f33)
#63 0x000000000040c6de _start (/home/uday/llvm-project/build/bin/mlir-opt+0x40c6de)
Aborted (core dumped)
Metadata
Metadata
Assignees
Labels
No labels