[llvm] r271751 - Replace hard coded probability threshold with parameter /NFC
Xinliang David Li via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 3 16:48:37 PDT 2016
Author: davidxl
Date: Fri Jun 3 18:48:36 2016
New Revision: 271751
URL: http://llvm.org/viewvc/llvm-project?rev=271751&view=rev
Log:
Replace hard coded probability threshold with parameter /NFC
Modified:
llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
llvm/trunk/lib/CodeGen/MachineBranchProbabilityInfo.cpp
Modified: llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp?rev=271751&r1=271750&r2=271751&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp Fri Jun 3 18:48:36 2016
@@ -116,6 +116,8 @@ static cl::opt<unsigned> JumpInstCost("j
cl::desc("Cost of jump instructions."),
cl::init(1), cl::Hidden);
+extern cl::opt<unsigned> StaticLikelyProb;
+
namespace {
class BlockChain;
/// \brief Type for our function-wide basic block -> block chain mapping.
@@ -405,7 +407,7 @@ MachineBasicBlock *
MachineBlockPlacement::selectBestSuccessor(MachineBasicBlock *BB,
BlockChain &Chain,
const BlockFilterSet *BlockFilter) {
- const BranchProbability HotProb(4, 5); // 80%
+ const BranchProbability HotProb(StaticLikelyProb, 100);
MachineBasicBlock *BestSucc = nullptr;
auto BestProb = BranchProbability::getZero();
Modified: llvm/trunk/lib/CodeGen/MachineBranchProbabilityInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineBranchProbabilityInfo.cpp?rev=271751&r1=271750&r2=271751&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineBranchProbabilityInfo.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineBranchProbabilityInfo.cpp Fri Jun 3 18:48:36 2016
@@ -24,9 +24,14 @@ INITIALIZE_PASS_BEGIN(MachineBranchProba
INITIALIZE_PASS_END(MachineBranchProbabilityInfo, "machine-branch-prob",
"Machine Branch Probability Analysis", false, true)
+cl::opt<unsigned> StaticLikelyProb(
+ "static-likely-prob",
+ cl::desc("branch probability threshold to be considered very likely"),
+ cl::init(80), cl::Hidden);
+
char MachineBranchProbabilityInfo::ID = 0;
-void MachineBranchProbabilityInfo::anchor() { }
+void MachineBranchProbabilityInfo::anchor() {}
BranchProbability MachineBranchProbabilityInfo::getEdgeProbability(
const MachineBasicBlock *Src,
@@ -42,11 +47,9 @@ BranchProbability MachineBranchProbabili
std::find(Src->succ_begin(), Src->succ_end(), Dst));
}
-bool
-MachineBranchProbabilityInfo::isEdgeHot(const MachineBasicBlock *Src,
- const MachineBasicBlock *Dst) const {
- // Hot probability is at least 4/5 = 80%
- static BranchProbability HotProb(4, 5);
+bool MachineBranchProbabilityInfo::isEdgeHot(
+ const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const {
+ BranchProbability HotProb(StaticLikelyProb, 100);
return getEdgeProbability(Src, Dst) > HotProb;
}
@@ -63,7 +66,7 @@ MachineBranchProbabilityInfo::getHotSucc
}
}
- static BranchProbability HotProb(4, 5);
+ BranchProbability HotProb(StaticLikelyProb, 100);
if (getEdgeProbability(MBB, MaxSucc) >= HotProb)
return MaxSucc;
More information about the llvm-commits
mailing list