Lines Matching refs:PHINode
50 isSafeToSpeculatePHIUsers(PHINode &PN, DominatorTree &DT, in isSafeToSpeculatePHIUsers()
111 if (isa<PHINode>(OpI)) { in isSafeToSpeculatePHIUsers()
196 PHINode &PN, SmallDenseMap<PHINode *, int, 16> &CostSavingsMap, in isSafeAndProfitableToSpeculateAroundPHI() argument
336 static void visitPHIUsersAndDepsInPostOrder(ArrayRef<PHINode *> PNs, in visitPHIUsersAndDepsInPostOrder()
413 static SmallVector<PHINode *, 16>
414 findProfitablePHIs(ArrayRef<PHINode *> PNs, in findProfitablePHIs()
415 const SmallDenseMap<PHINode *, int, 16> &CostSavingsMap, in findProfitablePHIs() argument
418 SmallVector<PHINode *, 16> SpecPNs; in findProfitablePHIs()
423 SmallDenseMap<Instruction *, TinyPtrVector<PHINode *>, 16> UserToPNMap; in findProfitablePHIs()
424 SmallDenseMap<PHINode *, int, 16> PNUserCountMap; in findProfitablePHIs()
473 UserPNs.begin(), UserPNs.end(), [&](PHINode *UserPN) { in findProfitablePHIs()
552 static void speculatePHIs(ArrayRef<PHINode *> SpecPNs, in speculatePHIs()
621 auto *OpPN = dyn_cast<PHINode>(OpV); in speculatePHIs()
726 static bool tryToSpeculatePHIs(SmallVectorImpl<PHINode *> &PNs, in tryToSpeculatePHIs()
731 SmallDenseMap<PHINode *, int, 16> CostSavingsMap; in tryToSpeculatePHIs()
749 [&](PHINode *PN) { in tryToSpeculatePHIs()
785 SmallVector<PHINode *, 16> SpecPNs = findProfitablePHIs( in tryToSpeculatePHIs()
802 SmallVector<PHINode *, 16> PNs; in run()
804 while (auto *PN = dyn_cast<PHINode>(&*BBI)) { in run()