Lines Matching defs:LoopB
592 void promoteTo(Instruction *In, IntegerType *DestTy, BasicBlock *LoopB);
593 bool promoteTypes(BasicBlock *LoopB, BasicBlock *ExitB);
604 bool convertShiftsToLeft(BasicBlock *LoopB, BasicBlock *ExitB,
606 void cleanupLoopBody(BasicBlock *LoopB);
624 bool scanSelect(SelectInst *SI, BasicBlock *LoopB, BasicBlock *PrehB,
868 BasicBlock *LoopB, BasicBlock *PrehB, Value *CIV, ParsedValues &PV,
918 if (SelI != RPhi->getIncomingValueForBlock(LoopB))
939 if (!I1 || I1->getParent() != LoopB) {
942 } else if (!I2 || I2->getParent() != LoopB) {
1013 IntegerType *DestTy, BasicBlock *LoopB) {
1027 if (InB == LoopB)
1064 bool PolynomialMultiplyRecognize::promoteTypes(BasicBlock *LoopB,
1066 assert(LoopB);
1071 if (!ExitB || (ExitB->getSinglePredecessor() != LoopB))
1080 assert(P.getIncomingBlock(0) == LoopB);
1087 for (Instruction &In : *LoopB)
1093 std::transform(LoopB->begin(), LoopB->end(), std::back_inserter(LoopIns),
1097 promoteTo(In, DestTy, LoopB);
1303 bool PolynomialMultiplyRecognize::convertShiftsToLeft(BasicBlock *LoopB,
1305 Value *CIV = getCountIV(LoopB);
1316 for (Instruction &I : *LoopB) {
1350 if (T->getParent() != LoopB || RShifts.count(T) || isa<PHINode>(T))
1371 if (T && T->getParent() != LoopB)
1385 IRBuilder<> IRB(LoopB);
1402 for (auto I = LoopB->begin(), E = LoopB->end(); I != E; ++I) {
1411 replaceAllUsesOfWithIn(&*I, V, LoopB);
1464 Value *U = PN->getIncomingValueForBlock(LoopB);
1479 void PolynomialMultiplyRecognize::cleanupLoopBody(BasicBlock *LoopB) {
1480 for (auto &I : *LoopB)
1484 for (Instruction &I : llvm::make_early_inc_range(*LoopB))
1778 BasicBlock *LoopB = CurLoop->getHeader();
1779 LLVM_DEBUG(dbgs() << "Loop header:\n" << *LoopB);
1781 if (LoopB != CurLoop->getLoopLatch())
1797 Value *CIV = getCountIV(LoopB);
1813 auto FeedsPHI = [LoopB](const Value *V) -> bool {
1816 if (P->getParent() == LoopB)
1821 for (Instruction &In : *LoopB) {
1830 if (scanSelect(SelI, LoopB, EntryB, CIV, PV, true)) {
1833 Value *NewSel = C.materialize(LoopB, SI->getIterator());
1851 if (!promoteTypes(LoopB, ExitB))
1856 for (Instruction &In : *LoopB) {
1864 Value *NewSel = C.materialize(LoopB, SI->getIterator());
1871 if (!convertShiftsToLeft(LoopB, ExitB, IterCount))
1873 cleanupLoopBody(LoopB);
1878 for (Instruction &In : *LoopB) {
1883 FoundScan = scanSelect(SelI, LoopB, EntryB, CIV, PV, false);