[llvm] r347182 - [ProfileSummary] Standardize methods and fix comment
Vedant Kumar via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 18 21:23:16 PST 2018
Author: vedantk
Date: Sun Nov 18 21:23:16 2018
New Revision: 347182
URL: http://llvm.org/viewvc/llvm-project?rev=347182&view=rev
Log:
[ProfileSummary] Standardize methods and fix comment
Every Analysis pass has a get method that returns a reference of the Result of
the Analysis, for example, BlockFrequencyInfo
&BlockFrequencyInfoWrapperPass::getBFI(). I believe that
ProfileSummaryInfo::getPSI() is the only exception to that, as it was returning
a pointer.
Another change is renaming isHotBB and isColdBB to isHotBlock and isColdBlock,
respectively. Most methods use BB as the argument of variable names while
methods usually refer to Basic Blocks as Blocks, instead of BB. For example,
Function::getEntryBlock, Loop:getExitBlock, etc.
I also fixed one of the comments.
Patch by Rodrigo Caetano Rocha!
Differential Revision: https://reviews.llvm.org/D54669
Modified:
llvm/trunk/include/llvm/Analysis/ProfileSummaryInfo.h
llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpp
llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp
llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cpp
llvm/trunk/lib/Transforms/IPO/Inliner.cpp
llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp
llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp
llvm/trunk/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
llvm/trunk/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
llvm/trunk/unittests/Analysis/ProfileSummaryInfoTest.cpp
Modified: llvm/trunk/include/llvm/Analysis/ProfileSummaryInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ProfileSummaryInfo.h?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Analysis/ProfileSummaryInfo.h (original)
+++ llvm/trunk/include/llvm/Analysis/ProfileSummaryInfo.h Sun Nov 18 21:23:16 2018
@@ -98,14 +98,14 @@ public:
bool isFunctionEntryCold(const Function *F);
/// Returns true if \p F contains only cold code.
bool isFunctionColdInCallGraph(const Function *F, BlockFrequencyInfo &BFI);
- /// Returns true if \p F is a hot function.
+ /// Returns true if count \p C is considered hot.
bool isHotCount(uint64_t C);
/// Returns true if count \p C is considered cold.
bool isColdCount(uint64_t C);
- /// Returns true if BasicBlock \p B is considered hot.
- bool isHotBB(const BasicBlock *B, BlockFrequencyInfo *BFI);
- /// Returns true if BasicBlock \p B is considered cold.
- bool isColdBB(const BasicBlock *B, BlockFrequencyInfo *BFI);
+ /// Returns true if BasicBlock \p BB is considered hot.
+ bool isHotBlock(const BasicBlock *BB, BlockFrequencyInfo *BFI);
+ /// Returns true if BasicBlock \p BB is considered cold.
+ bool isColdBlock(const BasicBlock *BB, BlockFrequencyInfo *BFI);
/// Returns true if CallSite \p CS is considered hot.
bool isHotCallSite(const CallSite &CS, BlockFrequencyInfo *BFI);
/// Returns true if Callsite \p CS is considered cold.
@@ -134,9 +134,8 @@ public:
static char ID;
ProfileSummaryInfoWrapperPass();
- ProfileSummaryInfo *getPSI() {
- return &*PSI;
- }
+ ProfileSummaryInfo &getPSI() { return *PSI; }
+ const ProfileSummaryInfo &getPSI() const { return *PSI; }
bool doInitialization(Module &M) override;
bool doFinalization(Module &M) override;
Modified: llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpp (original)
+++ llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpp Sun Nov 18 21:23:16 2018
@@ -665,7 +665,7 @@ ModuleSummaryIndexWrapperPass::ModuleSum
}
bool ModuleSummaryIndexWrapperPass::runOnModule(Module &M) {
- auto &PSI = *getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ auto *PSI = &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
Index.emplace(buildModuleSummaryIndex(
M,
[this](const Function &F) {
@@ -673,7 +673,7 @@ bool ModuleSummaryIndexWrapperPass::runO
*const_cast<Function *>(&F))
.getBFI());
},
- &PSI));
+ PSI));
return false;
}
Modified: llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp (original)
+++ llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp Sun Nov 18 21:23:16 2018
@@ -151,7 +151,7 @@ bool ProfileSummaryInfo::isFunctionHotIn
return true;
}
for (const auto &BB : *F)
- if (isHotBB(&BB, &BFI))
+ if (isHotBlock(&BB, &BFI))
return true;
return false;
}
@@ -180,7 +180,7 @@ bool ProfileSummaryInfo::isFunctionColdI
return false;
}
for (const auto &BB : *F)
- if (!isColdBB(&BB, &BFI))
+ if (!isColdBlock(&BB, &BFI))
return false;
return true;
}
@@ -253,14 +253,14 @@ uint64_t ProfileSummaryInfo::getOrCompCo
return ColdCountThreshold ? ColdCountThreshold.getValue() : 0;
}
-bool ProfileSummaryInfo::isHotBB(const BasicBlock *B, BlockFrequencyInfo *BFI) {
- auto Count = BFI->getBlockProfileCount(B);
+bool ProfileSummaryInfo::isHotBlock(const BasicBlock *BB, BlockFrequencyInfo *BFI) {
+ auto Count = BFI->getBlockProfileCount(BB);
return Count && isHotCount(*Count);
}
-bool ProfileSummaryInfo::isColdBB(const BasicBlock *B,
+bool ProfileSummaryInfo::isColdBlock(const BasicBlock *BB,
BlockFrequencyInfo *BFI) {
- auto Count = BFI->getBlockProfileCount(B);
+ auto Count = BFI->getBlockProfileCount(BB);
return Count && isColdCount(*Count);
}
Modified: llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (original)
+++ llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp Sun Nov 18 21:23:16 2018
@@ -416,7 +416,7 @@ bool CodeGenPrepare::runOnFunction(Funct
OptSize = F.optForSize();
ProfileSummaryInfo *PSI =
- getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
if (ProfileGuidedSectionPrefix) {
if (PSI->isFunctionHotInCallGraph(&F, *BFI))
F.setSectionPrefix(".hot");
Modified: llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cpp Sun Nov 18 21:23:16 2018
@@ -266,7 +266,7 @@ static BlockSequence getLargestColdRegio
if (!mayExtractBlock(BB))
continue;
bool Cold =
- PSI.isColdBB(&BB, BFI) || (EnableStaticAnalyis && unlikelyExecuted(BB));
+ PSI.isColdBlock(&BB, BFI) || (EnableStaticAnalyis && unlikelyExecuted(BB));
if (!Cold)
continue;
@@ -465,7 +465,7 @@ bool HotColdSplittingLegacyPass::runOnMo
if (skipModule(M))
return false;
ProfileSummaryInfo *PSI =
- getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
auto GTTI = [this](Function &F) -> TargetTransformInfo & {
return this->getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
};
Modified: llvm/trunk/lib/Transforms/IPO/Inliner.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Inliner.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/Inliner.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/Inliner.cpp Sun Nov 18 21:23:16 2018
@@ -746,7 +746,7 @@ inlineCallsImpl(CallGraphSCC &SCC, CallG
bool LegacyInlinerBase::inlineCalls(CallGraphSCC &SCC) {
CallGraph &CG = getAnalysis<CallGraphWrapperPass>().getCallGraph();
ACT = &getAnalysis<AssumptionCacheTracker>();
- PSI = getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ PSI = &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
auto &TLI = getAnalysis<TargetLibraryInfoWrapperPass>().getTLI();
auto GetAssumptionCache = [&](Function &F) -> AssumptionCache & {
return ACT->getAssumptionCache(F);
Modified: llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/PartialInlining.cpp Sun Nov 18 21:23:16 2018
@@ -359,7 +359,7 @@ struct PartialInlinerLegacyPass : public
TargetTransformInfoWrapperPass *TTIWP =
&getAnalysis<TargetTransformInfoWrapperPass>();
ProfileSummaryInfo *PSI =
- getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
std::function<AssumptionCache &(Function &)> GetAssumptionCache =
[&ACT](Function &F) -> AssumptionCache & {
@@ -468,7 +468,7 @@ PartialInlinerImpl::computeOutliningCold
// Only consider regions with predecessor blocks that are considered
// not-cold (default: part of the top 99.99% of all block counters)
// AND greater than our minimum block execution count (default: 100).
- if (PSI->isColdBB(thisBB, BFI) ||
+ if (PSI->isColdBlock(thisBB, BFI) ||
BBProfileCount(thisBB) < MinBlockCounterExecution)
continue;
for (auto SI = succ_begin(thisBB); SI != succ_end(thisBB); ++SI) {
Modified: llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/SampleProfile.cpp Sun Nov 18 21:23:16 2018
@@ -1599,7 +1599,7 @@ bool SampleProfileLoaderLegacyPass::runO
ACT = &getAnalysis<AssumptionCacheTracker>();
TTIWP = &getAnalysis<TargetTransformInfoWrapperPass>();
ProfileSummaryInfo *PSI =
- getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
return SampleLoader.runOnModule(M, nullptr, PSI);
}
Modified: llvm/trunk/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ControlHeightReduction.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Instrumentation/ControlHeightReduction.cpp (original)
+++ llvm/trunk/lib/Transforms/Instrumentation/ControlHeightReduction.cpp Sun Nov 18 21:23:16 2018
@@ -2040,7 +2040,7 @@ bool ControlHeightReductionLegacyPass::r
getAnalysis<BlockFrequencyInfoWrapperPass>().getBFI();
DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
ProfileSummaryInfo &PSI =
- *getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
RegionInfo &RI = getAnalysis<RegionInfoPass>().getRegionInfo();
std::unique_ptr<OptimizationRemarkEmitter> OwnedORE =
llvm::make_unique<OptimizationRemarkEmitter>(&F);
Modified: llvm/trunk/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp (original)
+++ llvm/trunk/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp Sun Nov 18 21:23:16 2018
@@ -427,7 +427,7 @@ static bool promoteIndirectCalls(Module
bool PGOIndirectCallPromotionLegacyPass::runOnModule(Module &M) {
ProfileSummaryInfo *PSI =
- getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
+ &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
// Command-line option has the priority for InLTO.
return promoteIndirectCalls(M, PSI, InLTO | ICPLTOMode,
Modified: llvm/trunk/unittests/Analysis/ProfileSummaryInfoTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Analysis/ProfileSummaryInfoTest.cpp?rev=347182&r1=347181&r2=347182&view=diff
==============================================================================
--- llvm/trunk/unittests/Analysis/ProfileSummaryInfoTest.cpp (original)
+++ llvm/trunk/unittests/Analysis/ProfileSummaryInfoTest.cpp Sun Nov 18 21:23:16 2018
@@ -118,8 +118,8 @@ TEST_F(ProfileSummaryInfoTest, TestNoPro
BasicBlock *BB1 = BB0.getTerminator()->getSuccessor(0);
BlockFrequencyInfo BFI = buildBFI(*F);
- EXPECT_FALSE(PSI.isHotBB(&BB0, &BFI));
- EXPECT_FALSE(PSI.isColdBB(&BB0, &BFI));
+ EXPECT_FALSE(PSI.isHotBlock(&BB0, &BFI));
+ EXPECT_FALSE(PSI.isColdBlock(&BB0, &BFI));
CallSite CS1(BB1->getFirstNonPHI());
EXPECT_FALSE(PSI.isHotCallSite(CS1, &BFI));
@@ -156,10 +156,10 @@ TEST_F(ProfileSummaryInfoTest, InstrProf
BasicBlock *BB3 = BB1->getSingleSuccessor();
BlockFrequencyInfo BFI = buildBFI(*F);
- EXPECT_TRUE(PSI.isHotBB(&BB0, &BFI));
- EXPECT_TRUE(PSI.isHotBB(BB1, &BFI));
- EXPECT_FALSE(PSI.isHotBB(BB2, &BFI));
- EXPECT_TRUE(PSI.isHotBB(BB3, &BFI));
+ EXPECT_TRUE(PSI.isHotBlock(&BB0, &BFI));
+ EXPECT_TRUE(PSI.isHotBlock(BB1, &BFI));
+ EXPECT_FALSE(PSI.isHotBlock(BB2, &BFI));
+ EXPECT_TRUE(PSI.isHotBlock(BB3, &BFI));
CallSite CS1(BB1->getFirstNonPHI());
auto *CI2 = BB2->getFirstNonPHI();
@@ -188,10 +188,10 @@ TEST_F(ProfileSummaryInfoTest, SamplePro
BasicBlock *BB3 = BB1->getSingleSuccessor();
BlockFrequencyInfo BFI = buildBFI(*F);
- EXPECT_TRUE(PSI.isHotBB(&BB0, &BFI));
- EXPECT_TRUE(PSI.isHotBB(BB1, &BFI));
- EXPECT_FALSE(PSI.isHotBB(BB2, &BFI));
- EXPECT_TRUE(PSI.isHotBB(BB3, &BFI));
+ EXPECT_TRUE(PSI.isHotBlock(&BB0, &BFI));
+ EXPECT_TRUE(PSI.isHotBlock(BB1, &BFI));
+ EXPECT_FALSE(PSI.isHotBlock(BB2, &BFI));
+ EXPECT_TRUE(PSI.isHotBlock(BB3, &BFI));
CallSite CS1(BB1->getFirstNonPHI());
auto *CI2 = BB2->getFirstNonPHI();
More information about the llvm-commits
mailing list