[opt] -passes=inline causes Broken Module (Stride must be greater or equal than the number of rows!)
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
Reproducer: https://godbolt.org/z/aKWv161cz
```
Stride must be greater or equal than the number of rows!
ptr @llvm.matrix.column.major.store.v6f64.i32
LLVM ERROR: Broken module found after pass "InlinerPass", compilation aborted!
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: /opt/compiler-explorer/clang-trunk/bin/opt -o /app/output.s -S -verify-each -passes=inline
1. Running pass "cgscc(inline)" on module ""
#0 0x0000000005371bd8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/opt+0x5371bd8)
#1 0x000000000536ed14 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007c208fe42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00007c208fe969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#4 0x00007c208fe42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#5 0x00007c208fe287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#6 0x0000000000826c9d llvm::json::operator==(llvm::json::Value const&, llvm::json::Value const&) (.cold) JSON.cpp:0:0
#7 0x0000000002df4cd7 llvm::VerifyInstrumentation::registerCallbacks(llvm::PassInstrumentationCallbacks&, llvm::AnalysisManager*)::'lambda'(llvm::StringRef, llvm::Any, llvm::PreservedAnalyses const&)::operator()(llvm::StringRef, llvm::Any, llvm::PreservedAnalyses const&) const (.isra.0) StandardInstrumentations.cpp:0:0
#8 0x0000000002df4f8d void llvm::detail::UniqueFunctionBase::CallImpl*)::'lambda'(llvm::StringRef, llvm::Any, llvm::PreservedAnalyses const&)>(void*, llvm::StringRef, llvm::Any&, llvm::PreservedAnalyses const&) StandardInstrumentations.cpp:0:0
#9 0x00000000047c0005 void llvm::PassInstrumentation::runAfterPass, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>>(llvm::detail::PassConcept, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&> const&, llvm::LazyCallGraph::SCC const&, llvm::PreservedAnalyses const&) const (/opt/compiler-explorer/clang-trunk/bin/opt+0x47c0005)
#10 0x00000000047c4185 llvm::PassManager, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/opt/compiler-explorer/clang-trunk/bin/opt+0x47c4185)
#11 0x0000000002d3cc3e llvm::detail::PassModel, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::AnalysisManager, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/opt/compiler-explorer/clang-trunk/bin/opt+0x2d3cc3e)
#12 0x00000000047c65fb llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager&) (/opt/compiler-explorer/clang-trunk/bin/opt+0x47c65fb)
#13 0x0000000000e7f7ee llvm::detail::PassModel>::run(llvm::Module&, llvm::AnalysisManager&) (/opt/compiler-explorer/clang-trunk/bin/opt+0xe7f7ee)
#14 0x00000000050ded17 llvm::PassManager>::run(llvm::Module&, llvm::AnalysisManager&) (/opt/compiler-explorer/clang-trunk/bin/opt+0x50ded17)
#15 0x0000000000979cfa llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef, llvm::ArrayRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-trunk/bin/opt+0x979cfa)
#16 0x000000000096db91 optMain (/opt/compiler-explorer/clang-trunk/bin/opt+0x96db91)
#17 0x00007c208fe29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#18 0x00007c208fe29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#19 0x0000000000964bb5 _start (/opt/compiler-explorer/clang-trunk/bin/opt+0x964bb5)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
Generated by fuzzer.
Contributor guide
Assessment
This issue has not been assessed yet.