diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-10-23 11:19:14 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-10-23 11:19:14 +0000 |
commit | 929f53f65c3de118248c1103bfb1fad1baa3468a (patch) | |
tree | b6c62a1cd46d306522f1d3fa338d1d999b9c7a9e /llvm/lib | |
parent | 2ff8723d5d586208f0248b1a152aa2d964573fc1 (diff) | |
download | bcm5719-llvm-929f53f65c3de118248c1103bfb1fad1baa3468a.tar.gz bcm5719-llvm-929f53f65c3de118248c1103bfb1fad1baa3468a.zip |
Add compare operators to BranchProbability and use it to determine if an edge is hot.
llvm-svn: 142751
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Analysis/BranchProbabilityInfo.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Support/BranchProbability.cpp | 7 |
2 files changed, 4 insertions, 15 deletions
diff --git a/llvm/lib/Analysis/BranchProbabilityInfo.cpp b/llvm/lib/Analysis/BranchProbabilityInfo.cpp index fc69da9e672..4f15858aa34 100644 --- a/llvm/lib/Analysis/BranchProbabilityInfo.cpp +++ b/llvm/lib/Analysis/BranchProbabilityInfo.cpp @@ -476,12 +476,8 @@ uint32_t BranchProbabilityInfo::getSumForBlock(const BasicBlock *BB) const { bool BranchProbabilityInfo:: isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const { // Hot probability is at least 4/5 = 80% - uint32_t Weight = getEdgeWeight(Src, Dst); - uint32_t Sum = getSumForBlock(Src); - - // FIXME: Implement BranchProbability::compare then change this code to - // compare this BranchProbability against a static "hot" BranchProbability. - return (uint64_t)Weight * 5 > (uint64_t)Sum * 4; + // FIXME: Compare against a static "hot" BranchProbability. + return getEdgeProbability(Src, Dst) > BranchProbability(4, 5); } BasicBlock *BranchProbabilityInfo::getHotSucc(BasicBlock *BB) const { @@ -503,8 +499,8 @@ BasicBlock *BranchProbabilityInfo::getHotSucc(BasicBlock *BB) const { } } - // FIXME: Use BranchProbability::compare. - if ((uint64_t)MaxWeight * 5 > (uint64_t)Sum * 4) + // Hot probability is at least 4/5 = 80% + if (BranchProbability(MaxWeight, Sum) > BranchProbability(4, 5)) return MaxSucc; return 0; diff --git a/llvm/lib/Support/BranchProbability.cpp b/llvm/lib/Support/BranchProbability.cpp index 49d04ed8365..5a5e07583d9 100644 --- a/llvm/lib/Support/BranchProbability.cpp +++ b/llvm/lib/Support/BranchProbability.cpp @@ -17,13 +17,6 @@ using namespace llvm; -BranchProbability::BranchProbability(uint32_t n, uint32_t d) { - assert(d > 0 && "Denomiator cannot be 0!"); - assert(n <= d && "Probability cannot be bigger than 1!"); - N = n; - D = d; -} - void BranchProbability::print(raw_ostream &OS) const { OS << N << " / " << D << " = " << ((double)N / D); } |