llvm / llvm/torch-mlir

Crash in GlobalSlotModuleInitializerOp verifier due to invalid attribute type in slotSymNames

Open
#4,411 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 verifier for torch.global_slot.module_initializer crashes when torch.initialize.global_slots contains an integer attribute in its slotSymNames list instead of the expected one.

Steps to reproduce

  • Minimal MLIR program (test.mlir)
"builtin.module"() ({
  "torch.global_slot"() <{sym_name = "slot0", sym_visibility = "private", typeBound = !torch.int}> : () -> ()
  "torch.global_slot.module_initializer"() ({
    %1 = "torch.constant.int"() <{value = 1 : i64}> : () -> !torch.int
    "torch.initialize.global_slots"(%1) <{slotSymNames = [159]}> : (!torch.int) -> ()
  }) : () -> ()
  "func.func"() <{function_type = () -> (), sym_name = "forward"}> ({
    %0 = "torch.global_slot.get"() <{slot = @slot0}> : () -> !torch.int
    "func.return"() : () -> ()
  }) : () -> ()
}) : () -> ()

Command

torch-mlir-opt test.mlir

Output

torch-mlir-opt: /workdir/sources/llvm-project/llvm/include/llvm/Support/Casting.h:566: decltype(auto) llvm::cast(From &) [To = mlir::FlatSymbolRefAttr, From = mlir::Attribute]: 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 and instructions to reproduce the bug.
Stack dump:
0.      Program arguments: /workdir/builds/llvm_for_torch_mlir/bin/torch-mlir-opt test.mlir
 #0 0x00005602465b200b backtrace (/workdir/builds/llvm_for_torch_mlir/bin/torch-mlir-opt+0x566300b)
 #1 0x000056024bab948d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /workdir/sources/llvm-project/llvm/lib/Support/Unix/Signals.inc:838:8
 #2 0x000056024bab331f llvm::sys::RunSignalHandlers() /workdir/sources/llvm-project/llvm/lib/Support/Signals.cpp:105:18
 #3 0x000056024babbf09 SignalHandler(int, siginfo_t*, void*) /workdir/sources/llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
 #4 0x00007f33363b9520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f333640d9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #6 0x00007f33363b9476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #7 0x00007f333639f7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #8 0x00007f333639f71b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #9 0x00007f33363b0e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x000056024718930d decltype(auto) llvm::cast<mlir::FlatSymbolRefAttr, mlir::Attribute>(mlir::Attribute&) /workdir/sources/llvm-project/llvm/include/llvm/Support/Casting.h:566:3
#11 0x00005602471878ad mlir::torch::Torch::GlobalSlotModuleInitializerOp::verify() /workdir/sources/torch-mlir/lib/Dialect/Torch/IR/TorchOps.cpp:0:36
#12 0x0000560246fef41c llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#13 0x0000560246fef41c 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
#14 0x0000560246fed737 llvm::unique_function<llvm::LogicalResult (mlir::Operation*) const>::operator()(mlir::Operation*) const /workdir/sources/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:390:12
#15 0x0000560246fed737 mlir::RegisteredOperationName::Model<mlir::torch::Torch::GlobalSlotModuleInitializerOp>::verifyInvariants(mlir::Operation*) /workdir/sources/llvm-project/llvm/../mlir/include/mlir/IR/OperationSupport.h:555:14
#16 0x000056024b88b664 llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#17 0x000056024b88b664 (anonymous namespace)::OperationVerifier::verifyOnEntrance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:175:25
#18 0x000056024b88b664 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
#19 0x000056024b88b664 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
#20 0x000056024b88b664 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:295:16
#21 0x000056024b88b664 (anonymous namespace)::OperationVerifier::verifyOpAndDominance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:81:14
#22 0x000056024b89246d llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#23 0x000056024b89246d (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3::operator()(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:225:9
#24 0x000056024b89246d 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
#25 0x000056024b88c369 llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#26 0x000056024b88c369 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
#27 0x000056024b88c369 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
#28 0x000056024b88c369 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
#29 0x000056024b88c369 (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:224:3
#30 0x000056024b88c369 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
#31 0x000056024b88c369 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
#32 0x000056024b88c369 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:287:15
#33 0x000056024b88c369 (anonymous namespace)::OperationVerifier::verifyOpAndDominance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:81:14
#34 0x000056024b89246d llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#35 0x000056024b89246d (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&)::$_3::operator()(mlir::Operation*) const /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:225:9
#36 0x000056024b89246d 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
#37 0x000056024b88c369 llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#38 0x000056024b88c369 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
#39 0x000056024b88c369 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
#40 0x000056024b88c369 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
#41 0x000056024b88c369 (anonymous namespace)::OperationVerifier::verifyOnExit(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:224:3
#42 0x000056024b88c369 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
#43 0x000056024b88c369 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
#44 0x000056024b88c369 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:287:15
#45 0x000056024b88c369 (anonymous namespace)::OperationVerifier::verifyOpAndDominance(mlir::Operation&) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:81:14
#46 0x000056024b88a233 mlir::verify(mlir::Operation*, bool) /workdir/sources/llvm-project/mlir/lib/IR/Verifier.cpp:426:1
#47 0x000056024989728f llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#48 0x000056024989728f (anonymous namespace)::OperationParser::finalize() /workdir/sources/llvm-project/mlir/lib/AsmParser/Parser.cpp:931:48
#49 0x000056024989728f (anonymous namespace)::TopLevelOperationParser::parse(mlir::Block*, mlir::Location) /workdir/sources/llvm-project/mlir/lib/AsmParser/Parser.cpp:2876:20
#50 0x0000560249894538 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
#51 0x00005602497e746c 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
#52 0x000056024666b14a llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#53 0x000056024666b14a 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
#54 0x0000560246669980 mlir::OwningOpRef<mlir::ModuleOp>::operator mlir::OwningOpRef<mlir::Operation*>() && /workdir/sources/llvm-project/mlir/include/mlir/IR/OwningOpRef.h:64:42
#55 0x0000560246669980 mlir::parseSourceFileForTool(std::shared_ptr<llvm::SourceMgr> const&, mlir::ParserConfig const&, bool) /workdir/sources/llvm-project/mlir/include/mlir/Tools/ParseUtilities.h:31:12
#56 0x0000560246666d6d 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
#57 0x0000560246666493 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
#58 0x0000560246666493 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
#59 0x0000560246666493 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
#60 0x000056024b8d2981 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
#61 0x000056024b8d3063 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
#62 0x000056024b8d2375 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
#63 0x000056024b8d2375 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
#64 0x000056024b8d2375 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
#65 0x0000560246634cb3 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
#66 0x000056024663580f llvm::failed(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/include/llvm/Support/LogicalResult.h:71:42
#67 0x000056024663580f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:822:7
#68 0x0000560246635f81 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /workdir/sources/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:838:10
#69 0x000056024662d7e2 mlir::asMainReturnCode(llvm::LogicalResult) /workdir/sources/llvm-project/llvm/../mlir/include/mlir/Tools/mlir-opt/MlirOptMain.h:421:46
#70 0x000056024662d7e2 main /workdir/sources/torch-mlir/tools/torch-mlir-opt/torch-mlir-opt.cpp:49:10
#71 0x00007f33363a0d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#72 0x00007f33363a0e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#73 0x0000560246578105 _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 provided test.mlir using torch-mlir-opt, then inspect GlobalSlotModuleInitializerOp::verify in lib/Dialect/Torch/IR/TorchOps.cpp. Done means invalid integer entries in slotSymNames produce a verifier diagnostic instead of an assertion crash, with a regression test covering the input.

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
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.