[PM] Pull the two helpers for this pass into static functions. There are
authorChandler Carruth <chandlerc@gmail.com>
Sat, 24 Jan 2015 10:39:24 +0000 (10:39 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 24 Jan 2015 10:39:24 +0000 (10:39 +0000)
no members for them to use.

Also, make them accept references as there is no possibility of a null
pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226994 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

index 2a11f9a4f5433c63707d6f7a83985379b4ccb2a9..ac3c9f4ac6828885e68aab8bf44f5d7f4bfa92ed 100644 (file)
@@ -47,11 +47,6 @@ namespace {
 /// terminators. It then removes the expect intrinsics from the IR so the rest
 /// of the optimizer can ignore them.
 class LowerExpectIntrinsic : public FunctionPass {
 /// terminators. It then removes the expect intrinsics from the IR so the rest
 /// of the optimizer can ignore them.
 class LowerExpectIntrinsic : public FunctionPass {
-
-  bool HandleSwitchExpect(SwitchInst *SI);
-
-  bool HandleIfExpect(BranchInst *BI);
-
 public:
   static char ID;
   LowerExpectIntrinsic() : FunctionPass(ID) {
 public:
   static char ID;
   LowerExpectIntrinsic() : FunctionPass(ID) {
@@ -62,8 +57,8 @@ public:
 };
 }
 
 };
 }
 
-bool LowerExpectIntrinsic::HandleSwitchExpect(SwitchInst *SI) {
-  CallInst *CI = dyn_cast<CallInst>(SI->getCondition());
+static bool handleSwitchExpect(SwitchInst &SI) {
+  CallInst *CI = dyn_cast<CallInst>(SI.getCondition());
   if (!CI)
     return false;
 
   if (!CI)
     return false;
 
@@ -76,25 +71,25 @@ bool LowerExpectIntrinsic::HandleSwitchExpect(SwitchInst *SI) {
   if (!ExpectedValue)
     return false;
 
   if (!ExpectedValue)
     return false;
 
-  SwitchInst::CaseIt Case = SI->findCaseValue(ExpectedValue);
-  unsigned n = SI->getNumCases(); // +1 for default case.
+  SwitchInst::CaseIt Case = SI.findCaseValue(ExpectedValue);
+  unsigned n = SI.getNumCases(); // +1 for default case.
   std::vector<uint32_t> Weights(n + 1);
 
   Weights[0] =
   std::vector<uint32_t> Weights(n + 1);
 
   Weights[0] =
-      Case == SI->case_default() ? LikelyBranchWeight : UnlikelyBranchWeight;
+      Case == SI.case_default() ? LikelyBranchWeight : UnlikelyBranchWeight;
   for (unsigned i = 0; i != n; ++i)
     Weights[i + 1] =
         i == Case.getCaseIndex() ? LikelyBranchWeight : UnlikelyBranchWeight;
 
   for (unsigned i = 0; i != n; ++i)
     Weights[i + 1] =
         i == Case.getCaseIndex() ? LikelyBranchWeight : UnlikelyBranchWeight;
 
-  SI->setMetadata(LLVMContext::MD_prof,
-                  MDBuilder(CI->getContext()).createBranchWeights(Weights));
+  SI.setMetadata(LLVMContext::MD_prof,
+                 MDBuilder(CI->getContext()).createBranchWeights(Weights));
 
 
-  SI->setCondition(ArgValue);
+  SI.setCondition(ArgValue);
   return true;
 }
 
   return true;
 }
 
-bool LowerExpectIntrinsic::HandleIfExpect(BranchInst *BI) {
-  if (BI->isUnconditional())
+static bool handleBranchExpect(BranchInst &BI) {
+  if (BI.isUnconditional())
     return false;
 
   // Handle non-optimized IR code like:
     return false;
 
   // Handle non-optimized IR code like:
@@ -108,9 +103,9 @@ bool LowerExpectIntrinsic::HandleIfExpect(BranchInst *BI) {
 
   CallInst *CI;
 
 
   CallInst *CI;
 
-  ICmpInst *CmpI = dyn_cast<ICmpInst>(BI->getCondition());
+  ICmpInst *CmpI = dyn_cast<ICmpInst>(BI.getCondition());
   if (!CmpI) {
   if (!CmpI) {
-    CI = dyn_cast<CallInst>(BI->getCondition());
+    CI = dyn_cast<CallInst>(BI.getCondition());
   } else {
     if (CmpI->getPredicate() != CmpInst::ICMP_NE)
       return false;
   } else {
     if (CmpI->getPredicate() != CmpInst::ICMP_NE)
       return false;
@@ -139,12 +134,12 @@ bool LowerExpectIntrinsic::HandleIfExpect(BranchInst *BI) {
   else
     Node = MDB.createBranchWeights(UnlikelyBranchWeight, LikelyBranchWeight);
 
   else
     Node = MDB.createBranchWeights(UnlikelyBranchWeight, LikelyBranchWeight);
 
-  BI->setMetadata(LLVMContext::MD_prof, Node);
+  BI.setMetadata(LLVMContext::MD_prof, Node);
 
   if (CmpI)
     CmpI->setOperand(0, ArgValue);
   else
 
   if (CmpI)
     CmpI->setOperand(0, ArgValue);
   else
-    BI->setCondition(ArgValue);
+    BI.setCondition(ArgValue);
   return true;
 }
 
   return true;
 }
 
@@ -154,10 +149,10 @@ bool LowerExpectIntrinsic::runOnFunction(Function &F) {
 
     // Create "block_weights" metadata.
     if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {
 
     // Create "block_weights" metadata.
     if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {
-      if (HandleIfExpect(BI))
+      if (handleBranchExpect(*BI))
         IfHandled++;
     } else if (SwitchInst *SI = dyn_cast<SwitchInst>(BB->getTerminator())) {
         IfHandled++;
     } else if (SwitchInst *SI = dyn_cast<SwitchInst>(BB->getTerminator())) {
-      if (HandleSwitchExpect(SI))
+      if (handleSwitchExpect(*SI))
         IfHandled++;
     }
 
         IfHandled++;
     }