diff options
author | Cong Hou <congh@google.com> | 2015-07-15 22:48:29 +0000 |
---|---|---|
committer | Cong Hou <congh@google.com> | 2015-07-15 22:48:29 +0000 |
commit | ab23bfbc0e12c77ab41daa392981e8bcb367930f (patch) | |
tree | b440893c4c3f1856735bbe406847b79effbedf76 /llvm/lib/Analysis/BlockFrequencyInfo.cpp | |
parent | 3f6994b3c7d7996c88a158fb229b3ac07e53c938 (diff) | |
download | llvm-ab23bfbc0e12c77ab41daa392981e8bcb367930f.zip llvm-ab23bfbc0e12c77ab41daa392981e8bcb367930f.tar.gz llvm-ab23bfbc0e12c77ab41daa392981e8bcb367930f.tar.bz2 |
Create a wrapper pass for BranchProbabilityInfo.
This new wrapper pass is useful when we want to do branch probability analysis conditionally (e.g. only in PGO mode) but don't want to add one more pass dependence.
http://reviews.llvm.org/D11241
llvm-svn: 242349
Diffstat (limited to 'llvm/lib/Analysis/BlockFrequencyInfo.cpp')
-rw-r--r-- | llvm/lib/Analysis/BlockFrequencyInfo.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/BlockFrequencyInfo.cpp b/llvm/lib/Analysis/BlockFrequencyInfo.cpp index be82f8c..46095ff 100644 --- a/llvm/lib/Analysis/BlockFrequencyInfo.cpp +++ b/llvm/lib/Analysis/BlockFrequencyInfo.cpp @@ -162,7 +162,7 @@ void BlockFrequencyInfo::print(raw_ostream &OS) const { INITIALIZE_PASS_BEGIN(BlockFrequencyInfoWrapperPass, "block-freq", "Block Frequency Analysis", true, true) -INITIALIZE_PASS_DEPENDENCY(BranchProbabilityInfo) +INITIALIZE_PASS_DEPENDENCY(BranchProbabilityInfoWrapperPass) INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass) INITIALIZE_PASS_END(BlockFrequencyInfoWrapperPass, "block-freq", "Block Frequency Analysis", true, true) @@ -183,7 +183,7 @@ void BlockFrequencyInfoWrapperPass::print(raw_ostream &OS, } void BlockFrequencyInfoWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired<BranchProbabilityInfo>(); + AU.addRequired<BranchProbabilityInfoWrapperPass>(); AU.addRequired<LoopInfoWrapperPass>(); AU.setPreservesAll(); } @@ -191,7 +191,8 @@ void BlockFrequencyInfoWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const { void BlockFrequencyInfoWrapperPass::releaseMemory() { BFI.releaseMemory(); } bool BlockFrequencyInfoWrapperPass::runOnFunction(Function &F) { - BranchProbabilityInfo &BPI = getAnalysis<BranchProbabilityInfo>(); + BranchProbabilityInfo &BPI = + getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI(); LoopInfo &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); BFI.calculate(F, BPI, LI); return false; |