Lines Matching refs: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,
874 BasicBlock *LoopB, BasicBlock *PrehB, Value *CIV, ParsedValues &PV, in scanSelect() argument
924 if (SelI != RPhi->getIncomingValueForBlock(LoopB)) in scanSelect()
945 if (!I1 || I1->getParent() != LoopB) { in scanSelect()
948 } else if (!I2 || I2->getParent() != LoopB) { in scanSelect()
1019 IntegerType *DestTy, BasicBlock *LoopB) { in promoteTo() argument
1033 if (InB == LoopB) in promoteTo()
1070 bool PolynomialMultiplyRecognize::promoteTypes(BasicBlock *LoopB, in promoteTypes() argument
1072 assert(LoopB); in promoteTypes()
1077 if (!ExitB || (ExitB->getSinglePredecessor() != LoopB)) in promoteTypes()
1086 assert(P.getIncomingBlock(0) == LoopB); in promoteTypes()
1093 for (Instruction &In : *LoopB) in promoteTypes()
1099 std::transform(LoopB->begin(), LoopB->end(), std::back_inserter(LoopIns), in promoteTypes()
1103 promoteTo(In, DestTy, LoopB); in promoteTypes()
1309 bool PolynomialMultiplyRecognize::convertShiftsToLeft(BasicBlock *LoopB, in convertShiftsToLeft() argument
1311 Value *CIV = getCountIV(LoopB); in convertShiftsToLeft()
1322 for (Instruction &I : *LoopB) { in convertShiftsToLeft()
1356 if (T->getParent() != LoopB || RShifts.count(T) || isa<PHINode>(T)) in convertShiftsToLeft()
1377 if (T && T->getParent() != LoopB) in convertShiftsToLeft()
1391 IRBuilder<> IRB(LoopB); in convertShiftsToLeft()
1408 for (auto I = LoopB->begin(), E = LoopB->end(); I != E; ++I) { in convertShiftsToLeft()
1417 replaceAllUsesOfWithIn(&*I, V, LoopB); in convertShiftsToLeft()
1470 Value *U = PN->getIncomingValueForBlock(LoopB); in convertShiftsToLeft()
1485 void PolynomialMultiplyRecognize::cleanupLoopBody(BasicBlock *LoopB) { in cleanupLoopBody() argument
1486 for (auto &I : *LoopB) in cleanupLoopBody()
1490 for (Instruction &I : llvm::make_early_inc_range(*LoopB)) in cleanupLoopBody()
1784 BasicBlock *LoopB = CurLoop->getHeader(); in recognize() local
1785 LLVM_DEBUG(dbgs() << "Loop header:\n" << *LoopB); in recognize()
1787 if (LoopB != CurLoop->getLoopLatch()) in recognize()
1803 Value *CIV = getCountIV(LoopB); in recognize()
1819 auto FeedsPHI = [LoopB](const Value *V) -> bool { in recognize()
1822 if (P->getParent() == LoopB) in recognize()
1827 for (Instruction &In : *LoopB) { in recognize()
1836 if (scanSelect(SelI, LoopB, EntryB, CIV, PV, true)) { in recognize()
1839 Value *NewSel = C.materialize(LoopB, SI->getIterator()); in recognize()
1857 if (!promoteTypes(LoopB, ExitB)) in recognize()
1862 for (Instruction &In : *LoopB) { in recognize()
1870 Value *NewSel = C.materialize(LoopB, SI->getIterator()); in recognize()
1877 if (!convertShiftsToLeft(LoopB, ExitB, IterCount)) in recognize()
1879 cleanupLoopBody(LoopB); in recognize()
1884 for (Instruction &In : *LoopB) { in recognize()
1889 FoundScan = scanSelect(SelI, LoopB, EntryB, CIV, PV, false); in recognize()