[llvm] [SLP]Remove Alternate early profitability checks in favor of throttling (PR #182760)
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 11 06:05:45 PDT 2026
alexey-bataev wrote:
> Hello @alexey-bataev
>
> This crashes with this patch: `opt -passes=slp-vectorizer bbi-115847.ll -o /dev/null` We get
>
> ```
> opt: /repo/llvm/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)
Must be fixed in aa90add98925997d488c0d466c5ca8a56bcf2da6
https://github.com/llvm/llvm-project/pull/182760
More information about the llvm-commits
mailing list