[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