llvm / llvm/torch-mlir

Assertion failure in Block::getTerminator during verification of GlobalSlotModuleInitializerOp

Open
#4,413 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
1.9k
Forks
736
Avg merge
5d 22h
Merged PRs (30d)
15

Description

Test commit
ac7b5f5d0feb9c07d56ec6a19cb66483b0780f53

Description
The GlobalSlotModuleInitializerOp verifier crashes when its internal block is missing the required torch.initialize.global_slots terminator operation.

Steps to reproduce

  • Minimal MLIR program (test.mlir)
"builtin.module"() ({
  "torch.global_slot.module_initializer"() ({
    "torch.constant.int"() <{slotSymNames = []}> : () -> ()
  }) : () -> ()
}) : () -> ()

Command

torch-mlir-opt test.mlir

Output

torch-mlir-opt: /workdir/sources/llvm-project/mlir/lib/IR/Block.cpp:245: mlir::Operation *mlir::Block::getTerminator(): Assertion `mightHaveTerminator()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.      Program arguments: /workdir/builds/llvm_for_torch_mlir/bin/torch-mlir-opt test.mlir
 #0 0x0000558424a6000b backtrace (/workdir/builds/llvm_for_torch_mlir/bin/torch-mlir-opt+0x566300b)
 #1 0x0000558429f6748d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /workdir/sources/llvm-project/llvm/lib/Support/Unix/Signals.inc:838:8
 #2 0x0000558429f6131f llvm::sys::RunSignalHandlers() /workdir/sources/llvm-project/llvm/lib/Support/Signals.cpp:105:18
 #3 0x0000558429f69f09 SignalHandler(int, siginfo_t*, void*) /workdir/sources/llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
 #4 0x00007fb2e4958520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007fb2e49ac9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #6 0x00007fb2e4958476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #7 0x00007fb2e493e7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #8 0x00007fb2e493e71b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #9 0x00007fb2e494fe96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x0000558429a7c504 mlir::Block::getTerminator() /workdir/sources/llvm-project/mlir/lib/IR/Block.cpp:245:3
#11 0x0000558425635669 decltype(auto) llvm::cast<mlir::torch::Torch::InitializeGlobalSlotsOp, mlir::Operation>(mlir::Operation*) /workdir/sources/llvm-project/llvm/include/llvm/Support/Casting.h:571:53
#12 0x0000558425635669 mlir::torch::Torch::GlobalSlotModuleInitializerOp::verify() /workdir/sources/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp:6264:21
#13 0x000055842549d41c llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#14 0x000055842549d41c mlir::Op<mlir::torch::Torch::GlobalSlotModuleInitializerOp, mlir::OpTrait::OneRegion, mlir::OpTrait::ZeroResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::ZeroOperands, mlir::OpTrait::SingleBlock, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::torch::Torch::InitializeGlobalSlotsOp>::Impl, mlir::OpTrait::OpInvariants, mlir::OpTrait::IsIsolatedFromAbove, mlir::torch::Torch::OpTrait::AllowedInModuleInitializer>::verifyInvariants(mlir::Operation*) /workdir/sources/llvm-project/llvm/../mlir/include/mlir/IR/OpDefinition.h:2053:9
#15 0x000055842549b737 llvm::unique_function<llvm::LogicalResult (mlir::Operation*) const>::operator()(mlir::Operation*) const /workdir/sources/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:390:12
#16 0x000055842549b737 mlir::RegisteredOperationName::Model<mlir::torch::Torch::GlobalSlotModuleInitializerOp>::verifyInvariants(mlir::Operation*) /workdir/sources/llvm-project/llvm/../mlir/include/mlir/IR/OperationSupport.h:555:14
#17 0x0000558429d39664 llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#18 0x0000558429d39664 (anonymous namespace)::OperationVerifier::verifyOnEntrance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:175:25
#19 0x0000558429d39664 auto (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_2::operator()<mlir::Operation>(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:296:45
#20 0x0000558429d39664 auto (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_1::operator()<(anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_2>((anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_2&&, llvm::PointerUnion<mlir::Operation*, mlir::Block*>) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:276:16
#21 0x0000558429d39664 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:295:16
#22 0x0000558429d39664 (anonymous namespace)::OperationVerifier::verifyOpAndDominance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:81:14
#23 0x0000558429d4046d llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#24 0x0000558429d4046d (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3::operator()(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:225:9
#25 0x0000558429d4046d auto void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&)::'lambda'(mlir::Operation**&&)::operator()<mlir::Operation*&>(mlir::Operation**&&) const /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:120:12
#26 0x0000558429d3a369 llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#27 0x0000558429d3a369 llvm::LogicalResult mlir::failableParallelForEach<mlir::Operation**, void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&)::'lambda'(mlir::Operation**&&)>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&) /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:46:11
#28 0x0000558429d3a369 void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&) /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:119:9
#29 0x0000558429d3a369 void mlir::parallelForEach<llvm::SmallVector<mlir::Operation*, 6u>&, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, llvm::SmallVector<mlir::Operation*, 6u>&, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&) /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:131:3
#30 0x0000558429d3a369 (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:224:3
#31 0x0000558429d3a369 auto (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0::operator()<mlir::Operation>(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:287:53
#32 0x0000558429d3a369 auto (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_1::operator()<(anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0>((anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0&&, llvm::PointerUnion<mlir::Operation*, mlir::Block*>) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:276:16
#33 0x0000558429d3a369 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:287:15
#34 0x0000558429d3a369 (anonymous namespace)::OperationVerifier::verifyOpAndDominance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:81:14
#35 0x0000558429d4046d llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#36 0x0000558429d4046d (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3::operator()(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:225:9
#37 0x0000558429d4046d auto void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&)::'lambda'(mlir::Operation**&&)::operator()<mlir::Operation*&>(mlir::Operation**&&) const /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:120:12
#38 0x0000558429d3a369 llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#39 0x0000558429d3a369 llvm::LogicalResult mlir::failableParallelForEach<mlir::Operation**, void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&)::'lambda'(mlir::Operation**&&)>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&) /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:46:11
#40 0x0000558429d3a369 void mlir::parallelForEach<mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, mlir::Operation**, mlir::Operation**, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&) /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:119:9
#41 0x0000558429d3a369 void mlir::parallelForEach<llvm::SmallVector<mlir::Operation*, 6u>&, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3>(mlir::MLIRContext*, llvm::SmallVector<mlir::Operation*, 6u>&, (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3&&) /workdir/sources/llvm-project/mlir/include/mlir/IR/Threading.h:131:3
#42 0x0000558429d3a369 (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:224:3
#43 0x0000558429d3a369 auto (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0::operator()<mlir::Operation>(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:287:53
#44 0x0000558429d3a369 auto (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_1::operator()<(anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0>((anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&)::$_0&&, llvm::PointerUnion<mlir::Operation*, mlir::Block*>) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:276:16
#45 0x0000558429d3a369 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:287:15
#46 0x0000558429d3a369 (anonymous namespace)::OperationVerifier::verifyOpAndDominance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:81:14
#47 0x0000558429d38233 mlir::verify(mlir::Operation*, bool) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:426:1
#48 0x0000558427d4528f llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#49 0x0000558427d4528f (anonymous namespace)::OperationParser::finalize() /workdir/sources/llvm-project/mlir/lib/AsmParser/Parser.cpp:931:48
#50 0x0000558427d4528f (anonymous namespace)::TopLevelOperationParser::parse(mlir::Block*, mlir::Location) /workdir/sources/llvm-project/mlir/lib/AsmParser/Parser.cpp:2876:20
#51 0x0000558427d42538 mlir::parseAsmSourceFile(llvm::SourceMgr const&, mlir::Block*, mlir::ParserConfig const&, mlir::AsmParserState*, mlir::AsmParserCodeCompleteContext*) /workdir/sources/llvm-project/mlir/lib/AsmParser/Parser.cpp:0:41
#52 0x0000558427c9546c mlir::parseSourceFile(std::shared_ptr<llvm::SourceMgr> const&, mlir::Block*, mlir::ParserConfig const&, mlir::LocationAttr*) /workdir/sources/llvm-project/mlir/lib/Parser/Parser.cpp:65:1
#53 0x0000558424b1914a llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#54 0x0000558424b1914a mlir::OwningOpRef<mlir::ModuleOp> mlir::detail::parseSourceFile<mlir::ModuleOp, std::shared_ptr<llvm::SourceMgr> const&>(mlir::ParserConfig const&, std::shared_ptr<llvm::SourceMgr> const&) /workdir/sources/llvm-project/mlir/include/mlir/Parser/Parser.h:158:7
#55 0x0000558424b17980 mlir::OwningOpRef<mlir::ModuleOp>::operator mlir::OwningOpRef<mlir::Operation*>() && /workdir/sources/llvm-project/mlir/include/mlir/IR/OwningOpRef.h:64:42
#56 0x0000558424b17980 mlir::parseSourceFileForTool(std::shared_ptr<llvm::SourceMgr> const&, mlir::ParserConfig const&, bool) /workdir/sources/llvm-project/mlir/include/mlir/Tools/ParseUtilities.h:31:12
#57 0x0000558424b14d6d performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:33
#58 0x0000558424b14493 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::MemoryBufferRef, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, mlir::SourceMgrDiagnosticVerifierHandler*, llvm::ThreadPoolInterface*) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:673:12
#59 0x0000558424b14493 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::MemoryBufferRef, llvm::raw_ostream&) const /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:771:12
#60 0x0000558424b14493 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::MemoryBufferRef const&, 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&)::$_3>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::MemoryBufferRef const&, llvm::raw_ostream&) /workdir/sources/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#61 0x0000558429d80981 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::MemoryBufferRef const&, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::MemoryBufferRef const&, llvm::raw_ostream&) const /workdir/sources/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#62 0x0000558429d81063 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0::operator()(llvm::StringRef) const /workdir/sources/llvm-project/mlir/lib/Support/ToolUtilities.cpp:94:13
#63 0x0000558429d80375 void llvm::interleave<llvm::StringRef const*, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream, llvm::StringRef>(llvm::SmallVector<llvm::StringRef, 8u> const&, llvm::raw_ostream&, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::StringRef const&)::'lambda'(), void>(llvm::SmallVector<llvm::StringRef, 8u>, llvm::SmallVector<llvm::StringRef, 8u>, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream) /workdir/sources/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2198:3
#64 0x0000558429d80375 void llvm::interleave<llvm::SmallVector<llvm::StringRef, 8u>, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::raw_ostream, llvm::StringRef>(llvm::SmallVector<llvm::StringRef, 8u> const&, llvm::raw_ostream&, 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0, llvm::StringRef const&) /workdir/sources/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2219:3
#65 0x0000558429d80375 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::MemoryBufferRef const&, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /workdir/sources/llvm-project/mlir/lib/Support/ToolUtilities.cpp:97:3
#66 0x0000558424ae2cb3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:776:26
#67 0x0000558424ae380f llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#68 0x0000558424ae380f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:822:7
#69 0x0000558424ae3f81 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:838:10
#70 0x0000558424adb7e2 mlir::asMainReturnCode(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/../mlir/include/mlir/Tools/mlir-opt/MlirOptMain.h:421:46
#71 0x0000558424adb7e2 main /workdir/sources/torch-mlir/tools/torch-mlir-opt/torch-mlir-opt.cpp:49:10
#72 0x00007fb2e493fd90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#73 0x00007fb2e493fe40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#74 0x0000558424a26105 _start (/workdir/builds/llvm_for_torch_mlir/bin/torch-mlir-opt+0x5629105)
Aborted (core dumped)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the crash with the minimal test.mlir input using torch-mlir-opt. Then inspect GlobalSlotModuleInitializerOp::verify in lib/Dialect/Torch/IR/TorchOps.cpp around line 6264 and the verifier stack shown in the report. Done means the malformed initializer is rejected with a verification diagnostic rather than aborting in Block::getTerminator().

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.