From: Chandler Carruth Date: Sat, 24 Jan 2015 10:39:24 +0000 (+0000) Subject: [PM] Pull the two helpers for this pass into static functions. There are X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=d491dadacd51e425e1fc41a908a86a91722a53fc;p=oota-llvm.git [PM] Pull the two helpers for this pass into static functions. There are 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 --- diff --git a/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp b/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp index 2a11f9a4f54..ac3c9f4ac68 100644 --- a/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp +++ b/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp @@ -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 { - - bool HandleSwitchExpect(SwitchInst *SI); - - bool HandleIfExpect(BranchInst *BI); - public: static char ID; LowerExpectIntrinsic() : FunctionPass(ID) { @@ -62,8 +57,8 @@ public: }; } -bool LowerExpectIntrinsic::HandleSwitchExpect(SwitchInst *SI) { - CallInst *CI = dyn_cast(SI->getCondition()); +static bool handleSwitchExpect(SwitchInst &SI) { + CallInst *CI = dyn_cast(SI.getCondition()); if (!CI) return false; @@ -76,25 +71,25 @@ bool LowerExpectIntrinsic::HandleSwitchExpect(SwitchInst *SI) { 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 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; - 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; } -bool LowerExpectIntrinsic::HandleIfExpect(BranchInst *BI) { - if (BI->isUnconditional()) +static bool handleBranchExpect(BranchInst &BI) { + if (BI.isUnconditional()) return false; // Handle non-optimized IR code like: @@ -108,9 +103,9 @@ bool LowerExpectIntrinsic::HandleIfExpect(BranchInst *BI) { CallInst *CI; - ICmpInst *CmpI = dyn_cast(BI->getCondition()); + ICmpInst *CmpI = dyn_cast(BI.getCondition()); if (!CmpI) { - CI = dyn_cast(BI->getCondition()); + CI = dyn_cast(BI.getCondition()); } else { if (CmpI->getPredicate() != CmpInst::ICMP_NE) return false; @@ -139,12 +134,12 @@ bool LowerExpectIntrinsic::HandleIfExpect(BranchInst *BI) { 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 - BI->setCondition(ArgValue); + BI.setCondition(ArgValue); return true; } @@ -154,10 +149,10 @@ bool LowerExpectIntrinsic::runOnFunction(Function &F) { // Create "block_weights" metadata. if (BranchInst *BI = dyn_cast(BB->getTerminator())) { - if (HandleIfExpect(BI)) + if (handleBranchExpect(*BI)) IfHandled++; } else if (SwitchInst *SI = dyn_cast(BB->getTerminator())) { - if (HandleSwitchExpect(SI)) + if (handleSwitchExpect(*SI)) IfHandled++; }