Lines Matching refs:LoopB
575 void promoteTo(Instruction *In, IntegerType *DestTy, BasicBlock *LoopB);
576 bool promoteTypes(BasicBlock *LoopB, BasicBlock *ExitB);
587 bool convertShiftsToLeft(BasicBlock *LoopB, BasicBlock *ExitB,
589 void cleanupLoopBody(BasicBlock *LoopB);
607 bool scanSelect(SelectInst *SI, BasicBlock *LoopB, BasicBlock *PrehB,
857 BasicBlock *LoopB, BasicBlock *PrehB, Value *CIV, ParsedValues &PV, in scanSelect() argument
907 if (SelI != RPhi->getIncomingValueForBlock(LoopB)) in scanSelect()
928 if (!I1 || I1->getParent() != LoopB) { in scanSelect()
931 } else if (!I2 || I2->getParent() != LoopB) { in scanSelect()
1002 IntegerType *DestTy, BasicBlock *LoopB) { in promoteTo() argument
1015 if (InB == LoopB) in promoteTo()
1052 bool PolynomialMultiplyRecognize::promoteTypes(BasicBlock *LoopB, in promoteTypes() argument
1054 assert(LoopB); in promoteTypes()
1059 if (!ExitB || (ExitB->getSinglePredecessor() != LoopB)) in promoteTypes()
1068 assert(P.getIncomingBlock(0) == LoopB); in promoteTypes()
1075 for (Instruction &In : *LoopB) in promoteTypes()
1081 std::transform(LoopB->begin(), LoopB->end(), std::back_inserter(LoopIns), in promoteTypes()
1084 promoteTo(In, DestTy, LoopB); in promoteTypes()
1291 bool PolynomialMultiplyRecognize::convertShiftsToLeft(BasicBlock *LoopB, in convertShiftsToLeft() argument
1293 Value *CIV = getCountIV(LoopB); in convertShiftsToLeft()
1304 for (Instruction &I : *LoopB) { in convertShiftsToLeft()
1338 if (T->getParent() != LoopB || RShifts.count(T) || isa<PHINode>(T)) in convertShiftsToLeft()
1359 if (T && T->getParent() != LoopB) in convertShiftsToLeft()
1373 IRBuilder<> IRB(LoopB); in convertShiftsToLeft()
1390 for (auto I = LoopB->begin(), E = LoopB->end(); I != E; ++I) { in convertShiftsToLeft()
1399 replaceAllUsesOfWithIn(&*I, V, LoopB); in convertShiftsToLeft()
1452 Value *U = PN->getIncomingValueForBlock(LoopB); in convertShiftsToLeft()
1467 void PolynomialMultiplyRecognize::cleanupLoopBody(BasicBlock *LoopB) { in cleanupLoopBody() argument
1468 for (auto &I : *LoopB) in cleanupLoopBody()
1472 for (auto I = LoopB->begin(), N = I; I != LoopB->end(); I = N) { in cleanupLoopBody()
1768 BasicBlock *LoopB = CurLoop->getHeader(); in recognize() local
1769 LLVM_DEBUG(dbgs() << "Loop header:\n" << *LoopB); in recognize()
1771 if (LoopB != CurLoop->getLoopLatch()) in recognize()
1787 Value *CIV = getCountIV(LoopB); in recognize()
1803 auto FeedsPHI = [LoopB](const Value *V) -> bool { in recognize()
1806 if (P->getParent() == LoopB) in recognize()
1811 for (Instruction &In : *LoopB) { in recognize()
1820 if (scanSelect(SelI, LoopB, EntryB, CIV, PV, true)) { in recognize()
1823 Value *NewSel = C.materialize(LoopB, SI->getIterator()); in recognize()
1841 if (!promoteTypes(LoopB, ExitB)) in recognize()
1846 for (Instruction &In : *LoopB) { in recognize()
1854 Value *NewSel = C.materialize(LoopB, SI->getIterator()); in recognize()
1861 if (!convertShiftsToLeft(LoopB, ExitB, IterCount)) in recognize()
1863 cleanupLoopBody(LoopB); in recognize()
1868 for (Instruction &In : *LoopB) { in recognize()
1873 FoundScan = scanSelect(SelI, LoopB, EntryB, CIV, PV, false); in recognize()