aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorKazu Hirata <kazu@google.com>2024-09-07 11:21:20 -0700
committerGitHub <noreply@github.com>2024-09-07 11:21:20 -0700
commit51d3829d8fc5beba269629903365af75174de7f6 (patch)
tree6124ee8620c87d5d5a4d11a48c26bd3bd069a5b9 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parenta1e06f767440010f605b82d97950433f687e4b45 (diff)
downloadllvm-51d3829d8fc5beba269629903365af75174de7f6.zip
llvm-51d3829d8fc5beba269629903365af75174de7f6.tar.gz
llvm-51d3829d8fc5beba269629903365af75174de7f6.tar.bz2
[ThinLTO] Shrink FunctionSummary by 8 bytes (#107706)
During the ThinLTO indexing step for one of our large applications, we create 4 million instances of FunctionSummary. Changing: std::vector<EdgeTy> CallGraphEdgeList; to: SmallVector<EdgeTy, 0> CallGraphEdgeList; in FunctionSummary reduces the size of each instance by 8 bytes. The rest of the patch makes the same change to other places so that the types stay compatible across function boundaries.
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/ModuleSummaryAnalysis.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
index 95ef97a..2d4961d 100644
--- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
+++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
@@ -309,7 +309,7 @@ static void computeFunctionSummary(
// Map from callee ValueId to profile count. Used to accumulate profile
// counts for all static calls to a given callee.
MapVector<ValueInfo, CalleeInfo, DenseMap<ValueInfo, unsigned>,
- std::vector<std::pair<ValueInfo, CalleeInfo>>>
+ SmallVector<FunctionSummary::EdgeTy, 0>>
CallGraphEdges;
SetVector<ValueInfo, SmallVector<ValueInfo, 0>> RefEdges, LoadRefEdges,
StoreRefEdges;
@@ -964,7 +964,7 @@ ModuleSummaryIndex llvm::buildModuleSummaryIndex(
/* HasUnknownCall */ true,
/* MustBeUnreachable */ false},
SmallVector<ValueInfo, 0>{},
- ArrayRef<FunctionSummary::EdgeTy>{},
+ SmallVector<FunctionSummary::EdgeTy, 0>{},
ArrayRef<GlobalValue::GUID>{},
ArrayRef<FunctionSummary::VFuncId>{},
ArrayRef<FunctionSummary::VFuncId>{},