[llvm] [SLP]Remove Alternate early profitability checks in favor of throttling (PR #182760)

Mikael Holmen via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 10 22:58:02 PDT 2026


mikaelholmen wrote:

Hello @alexey-bataev 

This crashes with this patch: ```opt -passes=slp-vectorizer bbi-115847.ll -o /dev/null```
We get
```
opt: /repo/uabelho/main-github/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:6345: llvm::slpvectorizer::BoUpSLP::~BoUpSLP(): Assertion `I->use_empty() && "trying to erase instruction with users."' 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: build-all/bin/opt -passes=slp-vectorizer bbi-115847.ll -o /dev/null
1.	Running pass "function(slp-vectorizer)" on module "bbi-115847.ll"
2.	Running pass "slp-vectorizer" on function "d"
 #0 0x000055eb48c9a166 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x5133166)
 #1 0x000055eb48c96e15 llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x512fe15)
 #2 0x000055eb48c9b379 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007f0062559990 __restore_rt (/lib64/libpthread.so.0+0x12990)
 #4 0x00007f005fef852f raise (/lib64/libc.so.6+0x4e52f)
 #5 0x00007f005fecbe65 abort (/lib64/libc.so.6+0x21e65)
 #6 0x00007f005fecbd39 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21d39)
 #7 0x00007f005fef0e86 (/lib64/libc.so.6+0x46e86)
 #8 0x000055eb4a8364d4 llvm::slpvectorizer::BoUpSLP::~BoUpSLP() (build-all/bin/opt+0x6ccf4d4)
 #9 0x000055eb4a8c033f llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (build-all/bin/opt+0x6d5933f)
#10 0x000055eb4a8bf5a7 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x6d585a7)
#11 0x000055eb4a20a74d llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
#12 0x000055eb48ec6845 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x535f845)
#13 0x000055eb4a20664d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
#14 0x000055eb48ecb15e llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x536415e)
#15 0x000055eb4a193eed llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) NewPMDriver.cpp:0:0
#16 0x000055eb48ec5535 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x535e535)
#17 0x000055eb4a18c3f1 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool, bool) (build-all/bin/opt+0x66253f1)
#18 0x000055eb48c39767 optMain (build-all/bin/opt+0x50d2767)
#19 0x00007f005fee47e5 __libc_start_main (/lib64/libc.so.6+0x3a7e5)
#20 0x000055eb48c369ae _start (build-all/bin/opt+0x50cf9ae)
Abort (core dumped)
```
[bbi-115847.ll.gz](https://github.com/user-attachments/files/25892154/bbi-115847.ll.gz)


https://github.com/llvm/llvm-project/pull/182760


More information about the llvm-commits mailing list