Skip to content

[SCEV] llvm::ScalarEvolution::verify() expensive check failure #149377

Open
@sjoerdmeijer

Description

@sjoerdmeijer

For a build with extensive checks enabled, this input:

extern char a[];
void b() {
  for (long c = 0; c < 6; c += -2078836808675943215)
    for (long d; d < 6; d++)
      a[c + d] = 0;
}

compiled with clang++ -Ofast test.cpp runs into this error:

Trip Count for Loop at depth 1 containing: %for.cond1.preheader<header>,%for.cond.cleanup3<latch><exiting>,%for.body4.preheader,%for.cond.cleanup3.loopexit
 Changed!
Old: 1
New: 5
Delta: -4
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:

 #0 0x0000aaaaaf3af514 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/llvm-project/build_expensive_checks/bin/clang-21+0x490f514)
 #1 0x0000aaaaaf3acfac llvm::sys::RunSignalHandlers() (/llvm-project/build_expensive_checks/bin/clang-21+0x490cfac)
 #2 0x0000aaaaaf3b031c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x0000fffff7fb09d0 (linux-vdso.so.1+0x9d0)
 #4 0x0000fffff7a1f200 __pthread_kill_implementation ./nptl/./nptl/pthread_kill.c:44:76
 #5 0x0000fffff79da67c gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #6 0x0000fffff79c7130 abort ./stdlib/./stdlib/abort.c:81:7
 #7 0x0000aaaaae52727c llvm::ScalarEvolution::verify() const (/llvm-project/build_expensive_checks/bin/clang-21+0x3a8727c)
 #8 0x0000aaaab085cb70 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/llvm-project/build_expensive_checks/bin/clang-21+0x5dbcb70)
 #9 0x0000aaaaaee546b4 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/llvm-project/build_expensive_checks/bin/clang-21+0x43b46b4)
#10 0x0000aaaaaef22b20 llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/llvm-project/build_expensive_checks/bin/clang-21+0x4482b20)
#11 0x0000aaaaaef1ec7c llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/llvm-project/build_expensive_checks/bin/clang-21+0x447ec7c)
#12 0x0000aaaaaef213ec llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/llvm-project/build_expensive_checks/bin/clang-21+0x44813ec)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions