[llvm] [CGSCC] Fix compile time blowup with large RefSCCs (PR #94815)
Lei Wang via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 2 13:03:22 PDT 2024
wlei-llvm wrote:
Hi @aeubanks , some of our services is broken with below assertion and we bisected to this commit, could you take a look? I think you probably needs a reduced repro from me, I can work on that, but just post here first in case you find some thing obvious to fix. Thanks in advance!
```
clang++: /home/wlei/local/upstream/llvm-project/llvm/lib/Analysis/CGSCCPassManager.cpp:1175: LazyCallGraph::SCC &updateCGAndAnalysisManagerForPass(llvm::LazyCallGraph &, LazyCallGraph::SCC &, LazyCallGraph::Node &, llvm::CGSCCAnalysisManager &, llvm::CGSCCUpdateResult &, llvm::FunctionAnalysisManager &, bool): Assertion `!UR.InvalidatedRefSCCs.count(RC) && "Invalidated the current RefSCC!"' failed.
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. Program arguments: /home/wlei/local/upstream/llvm-build/bin/clang++ @/tmp/fbcc.89nih15w/compiler.argsfile
1. <eof> parser at end of file
2. Optimizer
#0 0x00007f650c9fe948 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/wlei/local/upstream/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x00007f650c9fca20 llvm::sys::RunSignalHandlers() /home/wlei/local/upstream/llvm-project/llvm/lib/Support/Signals.cpp:106:18
#2 0x00007f650c943dd8 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/wlei/local/upstream/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:73:5
#3 0x00007f650c943dd8 CrashRecoverySignalHandler(int) /home/wlei/local/upstream/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:390:51
#4 0x00007f650c03e6f0 __restore_rt (/lib64/libc.so.6+0x3e6f0)
#5 0x00007f650c08b94c __pthread_kill_implementation (/lib64/libc.so.6+0x8b94c)
#6 0x00007f650c03e646 gsignal (/lib64/libc.so.6+0x3e646)
#7 0x00007f650c0287f3 abort (/lib64/libc.so.6+0x287f3)
#8 0x00007f650c02871b _nl_load_domain.cold (/lib64/libc.so.6+0x2871b)
#9 0x00007f650c037386 (/lib64/libc.so.6+0x37386)
#10 0x00007f650d50202e updateCGAndAnalysisManagerForPass(llvm::LazyCallGraph&, llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&, bool) /home/wlei/local/upstream/llvm-project/llvm/lib/Analysis/CGSCCPassManager.cpp:1176:3
#11 0x00007f650d4fdef4 llvm::updateCGAndAnalysisManagerForFunctionPass(llvm::LazyCallGraph&, llvm::LazyCallGraph::SCC&, llvm::LazyCallGraph::Node&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::CGSCCUpdateResult&, llvm::AnalysisManager<llvm::Function>&) /home/wlei/local/upstream/llvm-project/llvm/lib/Analysis/CGSCCPassManager.cpp:1190:10
#12 0x00007f650d4fdef4 llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) /home/wlei/local/upstream/llvm-project/llvm/lib/Analysis/CGSCCPassManager.cpp:568:19
#13 0x00007f650c37bc4d llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CGSCCToFunctionPassAdaptor, 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&) /home/wlei/local/upstream/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:90:5
#14 0x00007f650d4f970b 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&) /home/wlei/local/upstream/llvm-project/llvm/lib/Analysis/CGSCCPassManager.cpp:90:12
...
```
https://github.com/llvm/llvm-project/pull/94815
More information about the llvm-commits
mailing list