Author: Kazu Hirata Date: 2021-01-06T18:27:35-08:00 New Revision: 9b228f107d43341ef73af92865f73a9a076c5a76
URL: https://github.com/llvm/llvm-project/commit/9b228f107d43341ef73af92865f73a9a076c5a76 DIFF: https://github.com/llvm/llvm-project/commit/9b228f107d43341ef73af92865f73a9a076c5a76.diff LOG: [llvm] Use BasicBlock::phis() (NFC) Added: Modified: llvm/lib/IR/BasicBlock.cpp llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp llvm/lib/Transforms/Utils/InlineFunction.cpp llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp Removed: ################################################################################ diff --git a/llvm/lib/IR/BasicBlock.cpp b/llvm/lib/IR/BasicBlock.cpp index 7f34565f5cd8..688211877d18 100644 --- a/llvm/lib/IR/BasicBlock.cpp +++ b/llvm/lib/IR/BasicBlock.cpp @@ -440,12 +440,8 @@ BasicBlock *BasicBlock::splitBasicBlockBefore(iterator I, const Twine &BBName) { void BasicBlock::replacePhiUsesWith(BasicBlock *Old, BasicBlock *New) { // N.B. This might not be a complete BasicBlock, so don't assume // that it ends with a non-phi instruction. - for (iterator II = begin(), IE = end(); II != IE; ++II) { - PHINode *PN = dyn_cast<PHINode>(II); - if (!PN) - break; - PN->replaceIncomingBlockWith(Old, New); - } + for (PHINode &PN : phis()) + PN.replaceIncomingBlockWith(Old, New); } void BasicBlock::replaceSuccessorsPhiUsesWith(BasicBlock *Old, diff --git a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp index 68c79d2a113f..273d3ab97c7b 100644 --- a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp +++ b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp @@ -2199,13 +2199,10 @@ bool HexagonLoopIdiomRecognize::processCopyingStore(Loop *CurLoop, if (ParentL) ParentL->addBasicBlockToLoop(NewPreheader, *LF); IRBuilder<>(NewPreheader).CreateBr(Header); - for (auto &In : *Header) { - PHINode *PN = dyn_cast<PHINode>(&In); - if (!PN) - break; - int bx = PN->getBasicBlockIndex(Preheader); + for (PHINode &PN : Header->phis()) { + int bx = PN.getBasicBlockIndex(Preheader); if (bx >= 0) - PN->setIncomingBlock(bx, NewPreheader); + PN.setIncomingBlock(bx, NewPreheader); } DT->addNewBlock(NewPreheader, Preheader); DT->changeImmediateDominator(Header, NewPreheader); diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp index 4cce05d595a8..060ca4bcd8ee 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -483,24 +483,20 @@ static Optional<EstimatedUnrollCost> analyzeLoopUnrollCost( // Prepare for the iteration by collecting any simplified entry or backedge // inputs. - for (Instruction &I : *L->getHeader()) { - auto *PHI = dyn_cast<PHINode>(&I); - if (!PHI) - break; - + for (PHINode &PHI : L->getHeader()->phis()) { // The loop header PHI nodes must have exactly two input: one from the // loop preheader and one from the loop latch. assert( - PHI->getNumIncomingValues() == 2 && + PHI.getNumIncomingValues() == 2 && "Must have an incoming value only for the preheader and the latch."); - Value *V = PHI->getIncomingValueForBlock( + Value *V = PHI.getIncomingValueForBlock( Iteration == 0 ? L->getLoopPreheader() : L->getLoopLatch()); Constant *C = dyn_cast<Constant>(V); if (Iteration != 0 && !C) C = SimplifiedValues.lookup(V); if (C) - SimplifiedInputValues.push_back({PHI, C}); + SimplifiedInputValues.push_back({&PHI, C}); } // Now clear and re-populate the map for the next iteration. @@ -625,12 +621,8 @@ static Optional<EstimatedUnrollCost> analyzeLoopUnrollCost( BasicBlock *ExitingBB, *ExitBB; std::tie(ExitingBB, ExitBB) = ExitWorklist.pop_back_val(); - for (Instruction &I : *ExitBB) { - auto *PN = dyn_cast<PHINode>(&I); - if (!PN) - break; - - Value *Op = PN->getIncomingValueForBlock(ExitingBB); + for (PHINode &PN : ExitBB->phis()) { + Value *Op = PN.getIncomingValueForBlock(ExitingBB); if (auto *OpI = dyn_cast<Instruction>(Op)) if (L->contains(OpI)) AddCostRecursively(*OpI, TripCount - 1); diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index 68ddebf113d1..ed3f87a7d0e7 100644 --- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -2843,12 +2843,8 @@ static void computeLiveInValues(BasicBlock::reverse_iterator Begin, static void computeLiveOutSeed(BasicBlock *BB, SetVector<Value *> &LiveTmp) { for (BasicBlock *Succ : successors(BB)) { - for (auto &I : *Succ) { - PHINode *PN = dyn_cast<PHINode>(&I); - if (!PN) - break; - - Value *V = PN->getIncomingValueForBlock(BB); + for (PHINode &PN : Succ->phis()) { + Value *V = PN.getIncomingValueForBlock(BB); assert(!isUnhandledGCPointerType(V->getType()) && "support for FCA unimplemented"); if (isHandledGCPointerType(V->getType()) && !isa<Constant>(V)) diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp index e480d7b8d61f..521b2b2e5f49 100644 --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp @@ -657,13 +657,9 @@ static void HandleInlinedEHPad(InvokeInst *II, BasicBlock *FirstNewBlock, // edge from this block. SmallVector<Value *, 8> UnwindDestPHIValues; BasicBlock *InvokeBB = II->getParent(); - for (Instruction &I : *UnwindDest) { + for (PHINode &PHI : UnwindDest->phis()) // Save the value to use for this edge. - PHINode *PHI = dyn_cast<PHINode>(&I); - if (!PHI) - break; - UnwindDestPHIValues.push_back(PHI->getIncomingValueForBlock(InvokeBB)); - } + UnwindDestPHIValues.push_back(PHI.getIncomingValueForBlock(InvokeBB)); // Add incoming-PHI values to the unwind destination block for the given basic // block, using the values for the original invoke's source block. diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 7b77aef2a75c..c2d8117181b2 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -7531,14 +7531,9 @@ bool SLPVectorizerPass::vectorizeChainsInBlock(BasicBlock *BB, BoUpSLP &R) { // Collect the incoming values from the PHIs. Incoming.clear(); - for (Instruction &I : *BB) { - PHINode *P = dyn_cast<PHINode>(&I); - if (!P) - break; - - if (!VisitedInstrs.count(P) && !R.isDeleted(P)) - Incoming.push_back(P); - } + for (PHINode &P : BB->phis()) + if (!VisitedInstrs.count(&P) && !R.isDeleted(&P)) + Incoming.push_back(&P); // Sort by type. llvm::stable_sort(Incoming, PhiTypeSorterFunc); _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits