diff options
author | Kazu Hirata <kazu@google.com> | 2024-09-07 11:21:20 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-07 11:21:20 -0700 |
commit | 51d3829d8fc5beba269629903365af75174de7f6 (patch) | |
tree | 6124ee8620c87d5d5a4d11a48c26bd3bd069a5b9 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | a1e06f767440010f605b82d97950433f687e4b45 (diff) | |
download | llvm-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.cpp | 4 |
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>{}, |