[llvm] [SLP] Make getSameOpcode support interchangeable instructions. (PR #127450)
Mike Hommey via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 25 02:12:31 PDT 2025
glandium wrote:
I'm also getting crashes when building libjpeg-turbo or libavcodec:
1. <eof> parser at end of file
2. Optimizer
3. Running pass "function<eager-inv>(float2int,lower-constant-intrinsics,loop(loop-rotate<header-duplication;no-prepare-for-lto>,loop-deletion),loop-distribute,inject-tli-mappings,loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>,infer-alignment,loop-load-elim,instcombine<max-iterations=1;no-verify-fixpoint>,simplifycfg<bonus-inst-threshold=1;forward-switch-cond;switch-range-to-icmp;switch-to-lookup;no-keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,slp-vectorizer,vector-combine,instcombine<max-iterations=1;no-verify-fixpoint>,loop-unroll<O2>,transform-warning,sroa<preserve-cfg>,infer-alignment,instcombine<max-iterations=1;no-verify-fixpoint>,loop-mssa(licm<allowspeculation>),alignment-from-assumptions,loop-sink,instsimplify,div-rem-pairs,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;speculate-unpredictables>)" on module "jidctint-151379.c"
4. Running pass "slp-vectorizer" on function "jpeg_idct_12x12"
#0 0x00007fbe6e0f1058 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0xea0058)
#1 0x00007fbe6e0eeaae llvm::sys::RunSignalHandlers() (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0xe9daae)
#2 0x00007fbe6e0f1701 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007fbe6cd5c050 (/lib/x86_64-linux-gnu/libc.so.6+0x3c050)
#4 0x00007fbe6fbb2393 (anonymous namespace)::BinOpSameOpcodeHelper::InterchangeableInfo::getOperand(llvm::Instruction*) const SLPVectorizer.cpp:0:0
#5 0x00007fbe6fb4604b llvm::slpvectorizer::BoUpSLP::VLOperands::VLOperands(llvm::ArrayRef<llvm::Value*>, (anonymous namespace)::InstructionsState const&, llvm::slpvectorizer::BoUpSLP const&) SLPVectorizer.cpp:0:0
#6 0x00007fbe6fb43630 llvm::slpvectorizer::BoUpSLP::TreeEntry::setOperand(llvm::slpvectorizer::BoUpSLP const&, bool) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0x28f2630)
#7 0x00007fbe6fb346a8 llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::slpvectorizer::BoUpSLP::EdgeInfo const&, unsigned int) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0x28e36a8)
#8 0x00007fbe6fb347e9 llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::slpvectorizer::BoUpSLP::EdgeInfo const&, unsigned int) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0x28e37e9)
#9 0x00007fbe6fb3470d llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::slpvectorizer::BoUpSLP::EdgeInfo const&, unsigned int) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0x28e370d)
#10 0x00007fbe6fb347e9 llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::slpvectorizer::BoUpSLP::EdgeInfo const&, unsigned int) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0x28e37e9)
#11 0x00007fbe6fb347e9 llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>, unsigned int, llvm::slpvectorizer::BoUpSLP::EdgeInfo const&, unsigned int) (/tmp/llvm/obj/bin/../lib/libLLVM.so.21.0git+0x28e37e9)
https://github.com/llvm/llvm-project/pull/127450
More information about the llvm-commits
mailing list