diff options
author | Arthur Eubanks <aeubanks@google.com> | 2025-02-21 09:13:11 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-21 09:13:11 -0800 |
commit | ab098a7ebf07227a371df95ce65bd4aa135dee9a (patch) | |
tree | 2d063072b3433b1d0416caed9f75f4d97f3b9714 /llvm/lib/Analysis/CGSCCPassManager.cpp | |
parent | 209252f3d5bf66c8bff0863ba7617e37ead4fff8 (diff) | |
download | llvm-ab098a7ebf07227a371df95ce65bd4aa135dee9a.zip llvm-ab098a7ebf07227a371df95ce65bd4aa135dee9a.tar.gz llvm-ab098a7ebf07227a371df95ce65bd4aa135dee9a.tar.bz2 |
[CGSCC] Add statistic on largest SCC visited (#128073)
To help debugging long compile times.
Diffstat (limited to 'llvm/lib/Analysis/CGSCCPassManager.cpp')
-rw-r--r-- | llvm/lib/Analysis/CGSCCPassManager.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/CGSCCPassManager.cpp b/llvm/lib/Analysis/CGSCCPassManager.cpp index 948bc24..ab3a721 100644 --- a/llvm/lib/Analysis/CGSCCPassManager.cpp +++ b/llvm/lib/Analysis/CGSCCPassManager.cpp @@ -13,6 +13,7 @@ #include "llvm/ADT/SetVector.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/Statistic.h" #include "llvm/ADT/iterator_range.h" #include "llvm/Analysis/LazyCallGraph.h" #include "llvm/IR/Constant.h" @@ -33,6 +34,8 @@ using namespace llvm; +STATISTIC(LargestCGSCC, "Number of functions in the largest SCC"); + // Explicit template instantiations and specialization definitions for core // template typedefs. namespace llvm { @@ -82,6 +85,8 @@ PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, if (!PI.runBeforePass(*Pass, *C)) continue; + LargestCGSCC.updateMax(C->size()); + PreservedAnalyses PassPA = Pass->run(*C, AM, G, UR); // Update the SCC if necessary. |