From 2c2f49059ff2999e06eb5ecb76af5b1ebd3e5477 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Mon, 17 Jun 2024 18:51:45 -0700 Subject: [Analysis] Clean up getPromotionCandidatesForInstruction (NFC) (#95624) Callers of getPromotionCandidatesForInstruction pass NumVals as an out parameter for the number of value-count pairs of the value profiling data, but nobody uses the out parameter. This patch removes the parameter and updates the callers. Note that the number of value-count pairs is still available via getPromotionCandidatesForInstruction(...).size(). --- llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp') diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp index a9913773fd13..c6934f55ee11 100644 --- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp +++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp @@ -483,11 +483,11 @@ static void computeFunctionSummary( } } - uint32_t NumVals, NumCandidates; + uint32_t NumCandidates; uint64_t TotalCount; auto CandidateProfileData = - ICallAnalysis.getPromotionCandidatesForInstruction( - &I, NumVals, TotalCount, NumCandidates); + ICallAnalysis.getPromotionCandidatesForInstruction(&I, TotalCount, + NumCandidates); for (const auto &Candidate : CandidateProfileData) CallGraphEdges[Index.getOrInsertValueInfo(Candidate.Value)] .updateHotness(getHotness(Candidate.Count, PSI)); -- cgit v1.2.3 From b0ae923ada836fa2c9114ac2c5afb39466f49fe0 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 22 Jun 2024 00:40:36 -0700 Subject: [ProfileData] Add a variant of getValueProfDataFromInst (#95993) This patch adds a variant of getValueProfDataFromInst that returns std::vector instead of std::unique. The new return type carries the length with it, so we can drop out parameter ActualNumValueData. Also, the caller can directly feed the return value into a range-based for loop as shown in the patch. I'm planning to migrate other callers of getValueProfDataFromInst to the new variant in follow-up patches. --- llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp') diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp index c6934f55ee11..94ac0484f5ec 100644 --- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp +++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp @@ -143,20 +143,15 @@ static bool findRefEdges(ModuleSummaryIndex &Index, const User *CurUser, const Instruction *I = dyn_cast(CurUser); if (I) { - uint32_t ActualNumValueData = 0; uint64_t TotalCount = 0; // MaxNumVTableAnnotations is the maximum number of vtables annotated on // the instruction. - auto ValueDataArray = - getValueProfDataFromInst(*I, IPVK_VTableTarget, MaxNumVTableAnnotations, - ActualNumValueData, TotalCount); - - if (ValueDataArray.get()) { - for (uint32_t j = 0; j < ActualNumValueData; j++) { - RefEdges.insert(Index.getOrInsertValueInfo(/* VTableGUID = */ - ValueDataArray[j].Value)); - } - } + auto ValueDataArray = getValueProfDataFromInst( + *I, IPVK_VTableTarget, MaxNumVTableAnnotations, TotalCount); + + for (const auto &V : ValueDataArray) + RefEdges.insert(Index.getOrInsertValueInfo(/* VTableGUID = */ + V.Value)); } return HasBlockAddress; } -- cgit v1.2.3