Lines Matching refs:LoopB

594     void promoteTo(Instruction *In, IntegerType *DestTy, BasicBlock *LoopB);
595 bool promoteTypes(BasicBlock *LoopB, BasicBlock *ExitB);
606 bool convertShiftsToLeft(BasicBlock *LoopB, BasicBlock *ExitB,
608 void cleanupLoopBody(BasicBlock *LoopB);
626 bool scanSelect(SelectInst *SI, BasicBlock *LoopB, BasicBlock *PrehB,
876 BasicBlock *LoopB, BasicBlock *PrehB, Value *CIV, ParsedValues &PV, in scanSelect() argument
926 if (SelI != RPhi->getIncomingValueForBlock(LoopB)) in scanSelect()
947 if (!I1 || I1->getParent() != LoopB) { in scanSelect()
950 } else if (!I2 || I2->getParent() != LoopB) { in scanSelect()
1021 IntegerType *DestTy, BasicBlock *LoopB) { in promoteTo() argument
1035 if (InB == LoopB) in promoteTo()
1072 bool PolynomialMultiplyRecognize::promoteTypes(BasicBlock *LoopB, in promoteTypes() argument
1074 assert(LoopB); in promoteTypes()
1079 if (!ExitB || (ExitB->getSinglePredecessor() != LoopB)) in promoteTypes()
1088 assert(P.getIncomingBlock(0) == LoopB); in promoteTypes()
1095 for (Instruction &In : *LoopB) in promoteTypes()
1101 std::transform(LoopB->begin(), LoopB->end(), std::back_inserter(LoopIns), in promoteTypes()
1105 promoteTo(In, DestTy, LoopB); in promoteTypes()
1312 bool PolynomialMultiplyRecognize::convertShiftsToLeft(BasicBlock *LoopB, in convertShiftsToLeft() argument
1314 Value *CIV = getCountIV(LoopB); in convertShiftsToLeft()
1325 for (Instruction &I : *LoopB) { in convertShiftsToLeft()
1359 if (T->getParent() != LoopB || RShifts.count(T) || isa<PHINode>(T)) in convertShiftsToLeft()
1380 if (T && T->getParent() != LoopB) in convertShiftsToLeft()
1394 IRBuilder<> IRB(LoopB); in convertShiftsToLeft()
1411 for (auto I = LoopB->begin(), E = LoopB->end(); I != E; ++I) { in convertShiftsToLeft()
1420 replaceAllUsesOfWithIn(&*I, V, LoopB); in convertShiftsToLeft()
1473 Value *U = PN->getIncomingValueForBlock(LoopB); in convertShiftsToLeft()
1488 void PolynomialMultiplyRecognize::cleanupLoopBody(BasicBlock *LoopB) { in cleanupLoopBody() argument
1489 for (auto &I : *LoopB) in cleanupLoopBody()
1493 for (auto I = LoopB->begin(), N = I; I != LoopB->end(); I = N) { in cleanupLoopBody()
1789 BasicBlock *LoopB = CurLoop->getHeader(); in recognize() local
1790 LLVM_DEBUG(dbgs() << "Loop header:\n" << *LoopB); in recognize()
1792 if (LoopB != CurLoop->getLoopLatch()) in recognize()
1808 Value *CIV = getCountIV(LoopB); in recognize()
1824 auto FeedsPHI = [LoopB](const Value *V) -> bool { in recognize()
1827 if (P->getParent() == LoopB) in recognize()
1832 for (Instruction &In : *LoopB) { in recognize()
1841 if (scanSelect(SelI, LoopB, EntryB, CIV, PV, true)) { in recognize()
1844 Value *NewSel = C.materialize(LoopB, SI->getIterator()); in recognize()
1862 if (!promoteTypes(LoopB, ExitB)) in recognize()
1867 for (Instruction &In : *LoopB) { in recognize()
1875 Value *NewSel = C.materialize(LoopB, SI->getIterator()); in recognize()
1882 if (!convertShiftsToLeft(LoopB, ExitB, IterCount)) in recognize()
1884 cleanupLoopBody(LoopB); in recognize()
1889 for (Instruction &In : *LoopB) { in recognize()
1894 FoundScan = scanSelect(SelI, LoopB, EntryB, CIV, PV, false); in recognize()