-
Couldn't load subscription status.
- Fork 15k
Closed
Closed
Copy link
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]llvm:SLPVectorizerregression
Description
After PR #152787 I'm experiencing the following segfault when trying to compile WRF:
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llvm/bin/flang -fc1 -triple aarch64-unknown-linux-gnu -emit-llvm-bc -I . -I ./netcdf/include -I ./inc -flto=full -mrelocation-model pic -pic-level 2 -pic-is-pie -ffast-math -target-cpu neoverse-v2 -target-feature +outli
ne-atomics -target-feature +sha2 -target-feature +sve-sha3 -target-feature +sve-aes -target-feature +sha3 -target-feature +aes -target-feature +v9a -target-feature +bf16 -target-feature +ccidx -target-feature +complxnum -target-feature +crc -target-feature +dotprod -tar
get-feature +ete -target-feature +fp-armv8 -target-feature +fp16fml -target-feature +fpac -target-feature +fullfp16 -target-feature +i8mm -target-feature +jsconv -target-feature +lse -target-feature +mte -target-feature +neon -target-feature +pauth -target-feature +perf
mon -target-feature +rand -target-feature +ras -target-feature +rcpc -target-feature +rdm -target-feature +spe -target-feature +ssbs -target-feature +sve -target-feature +sve-bitperm -target-feature +sve2 -target-feature +trbe -fveclib=ArmPL -fstack-arrays -vectorize-lo
ops -vectorize-slp -fversion-loops-for-stride -fconvert=swap -resource-dir llvm/lib/clang/22 -mframe-pointer=non-leaf -O3 -o module_mp_fast_sbm.fppized.o -x f95 module_mp_fast_sbm.fppized.f90
1. Running pass "function<eager-inv>(float2int,lower-constant-intrinsics,chr,loop(loop-rotate<header-duplication;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<O3>,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 "FIRModule"
2. Running pass "slp-vectorizer" on function "_QMmodule_mp_fast_sbmPcoal_bott_new"
#0 0x0000509e7509b948 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (llvm/bin/../lib/libLLVMSupport.so.22.0git+0x21b948)
#1 0x0000509e75098f8c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x0000509e7398a8f8 (linux-vdso.so.1+0x8f8)
#3 0x0000509e7c03f2dc (anonymous namespace)::InstructionsCompatibilityAnalysis::buildOperands((anonymous namespace)::InstructionsState const&, llvm::ArrayRef<llvm::Value*>) SLPVectorizer.cpp:0:0
#4 0x0000509e7c040d7c canConvertToFMA(llvm::ArrayRef<llvm::Value*>, (anonymous namespace)::InstructionsState const&, llvm::DominatorTree&, llvm::DataLayout const&, llvm::TargetTransformInfo&, llvm::TargetLibraryInfo const&) SLPVectorizer.cpp:0:0
#5 0x0000509e7c042850 (anonymous namespace)::HorizontalReduction::getReductionCost(llvm::TargetTransformInfo*, llvm::ArrayRef<llvm::Value*>, bool, llvm::FastMathFlags, llvm::slpvectorizer::BoUpSLP const&, llvm::DominatorTree&, llvm::DataLayout const&, llvm::TargetLibraryInfo const&) SLPVectorizer.cpp:0:0
#6 0x0000509e7c0787c4 (anonymous namespace)::HorizontalReduction::tryToReduce(llvm::slpvectorizer::BoUpSLP&, llvm::DataLayout const&, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo const&, llvm::AssumptionCache*, llvm::DominatorTree&) SLPVectorizer.cpp:0:0
#7 0x0000509e7c07b530 llvm::SLPVectorizerPass::vectorizeHorReduction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::SmallVectorImpl<llvm::WeakTrackingVH>&) (llvm/bin/../lib/../lib/libLLVMVectorize.so.22.0git+0x21b530)
#8 0x0000509e7c07d3e0 bool llvm::SLPVectorizerPass::vectorizeCmpInsts<std::reverse_iterator<llvm::CmpInst* const*>>(llvm::iterator_range<std::reverse_iterator<llvm::CmpInst* const*>>, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (llvm/bin/../lib/../lib/libLLVMVectorize.so.22.0git+0x21d3e0)
#9 0x0000509e7c07fe4c llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (llvm/bin/../lib/../lib/libLLVMVectorize.so.22.0git+0x21fe4c)
#10 0x0000509e7c0851f4 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (.part.0) SLPVectorizer.cpp:0:0
#11 0x0000509e7c085a1c llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (llvm/bin/../lib/../lib/libLLVMVectorize.so.22.0git+0x225a1c)
#12 0x0000509e78738ef0 llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilder.cpp:0:0
#13 0x0000509e7b60fd60 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (llvm/bin/../lib/../lib/libLLVMCore.so.22.0git+0x3efd60)
#14 0x0000509e7873ba40 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilder.cpp:0:0
#15 0x0000509e7b613594 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (llvm/bin/../lib/../lib/libLLVMCore.so.22.0git+0x3f3594)
#16 0x0000509e78735700 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilder.cpp:0:0
#17 0x0000509e7b60b030 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (llvm/bin/../lib/../lib/libLLVMCore.so.22.0git+0x3eb030)
#18 0x0000509e73b33804 Fortran::frontend::CodeGenAction::runOptimizationPipeline(llvm::raw_pwrite_stream&) (llvm/bin/../lib/libflangFrontend.so.22.0git+0x153804)
#19 0x0000509e73b363bc Fortran::frontend::CodeGenAction::executeAction() (llvm/bin/../lib/libflangFrontend.so.22.0git+0x1563bc)
#20 0x0000509e73b2270c Fortran::frontend::FrontendAction::execute() (llvm/bin/../lib/libflangFrontend.so.22.0git+0x14270c)
#21 0x0000509e73a2c288 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (llvm/bin/../lib/libflangFrontend.so.22.0git+0x4c288)
#22 0x0000509e739b3fbc Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (llvm/bin/../lib/libflangFrontendTool.so.22.0git+0x13fbc)
#23 0x0000badef85d5114 fc1_main(llvm::ArrayRef<char const*>, char const*) (llvm/bin/flang+0x15114)
#24 0x0000badef85d44a0 main (llvm/bin/flang+0x144a0)
#25 0x0000509e753673fc __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#26 0x0000509e753674cc call_init ./csu/../csu/libc-start.c:128:20
#27 0x0000509e753674cc __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x0000badef85d2bf0 _start (llvm/bin/flang+0x12bf0)
flang-22: error: unable to execute command: Segmentation fault (core dumped)
flang-22: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 22.0.0git (https://github.com/llvm/llvm-project.git 3219fb098995385d5e97449a898a8aadfc8d6be3)
Reverting 74230ff on top of the current main makes the segfault go away.
Metadata
Metadata
Assignees
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]llvm:SLPVectorizerregression