Lines Matching defs:IP
95 /// ReuseOrCreateCast - Arrange for there to be a cast of V to Ty at IP,
96 /// reusing an existing cast if a suitable one (= dominating IP) exists, or
100 BasicBlock::iterator IP) {
102 // point. It doesn't need to be the actual IP where the uses of the returned
103 // cast will be added, but it must dominate such IP.
122 // Found a suitable cast that is at IP or comes before IP. Use it. Note that
124 if (IP->getParent() == CI->getParent() && &*BIP != CI &&
125 (&*IP == CI || CI->comesBefore(&*IP))) {
134 Builder.SetInsertPoint(&*IP);
138 // We assert at the end of the function since IP might point to an
150 BasicBlock::iterator IP = ++I->getIterator();
152 IP = II->getNormalDest()->begin();
154 while (isa<PHINode>(IP))
155 ++IP;
157 if (isa<FuncletPadInst>(IP) || isa<LandingPadInst>(IP)) {
158 ++IP;
159 } else if (isa<CatchSwitchInst>(IP)) {
160 IP = MustDominate->getParent()->getFirstInsertionPt();
162 assert(!IP->isEHPad() && "unexpected eh pad!");
168 while (isInsertedInstruction(&*IP) && &*IP != MustDominate)
169 ++IP;
171 return IP;
179 BasicBlock::iterator IP = A->getParent()->getEntryBlock().begin();
180 while ((isa<BitCastInst>(IP) &&
181 isa<Argument>(cast<BitCastInst>(IP)->getOperand(0)) &&
182 cast<BitCastInst>(IP)->getOperand(0) != A) ||
183 isa<DbgInfoIntrinsic>(IP))
184 ++IP;
185 return IP;
274 BasicBlock::iterator IP = Builder.GetInsertPoint();
275 if (IP != BlockBegin) {
276 --IP;
277 for (; ScanLimit; --IP, --ScanLimit) {
280 if (isa<DbgInfoIntrinsic>(IP))
297 if (IP->getOpcode() == (unsigned)Opcode && IP->getOperand(0) == LHS &&
298 IP->getOperand(1) == RHS && !canGenerateIncompatiblePoison(&*IP))
299 return &*IP;
300 if (IP == BlockBegin) break;
378 BasicBlock::iterator IP = Builder.GetInsertPoint();
379 if (IP != BlockBegin) {
380 --IP;
381 for (; ScanLimit; --IP, --ScanLimit) {
384 if (isa<DbgInfoIntrinsic>(IP))
386 if (auto *GEP = dyn_cast<GetElementPtrInst>(IP)) {
392 return &*IP;
395 if (IP == BlockBegin) break;
1444 BasicBlock::iterator IP) {
1445 setInsertPoint(IP);
1689 BasicBlock::iterator IP;
1691 IP = PN->getParent()->getFirstInsertionPt();
1693 IP = OrigInc->getNextNonDebugInstruction()->getIterator();
1695 IRBuilder<> Builder(IP->getParent(), IP);
2068 Instruction *IP) {
2069 assert(IP);
2072 return expandUnionPredicate(cast<SCEVUnionPredicate>(Pred), IP);
2074 return expandComparePredicate(cast<SCEVComparePredicate>(Pred), IP);
2077 return expandWrapPredicate(AddRecPred, IP);
2084 Instruction *IP) {
2085 Value *Expr0 = expand(Pred->getLHS(), IP);
2086 Value *Expr1 = expand(Pred->getRHS(), IP);
2088 Builder.SetInsertPoint(IP);
2219 Instruction *IP) {
2225 NUSWCheck = generateOverflowCheck(A, IP, false);
2229 NSSWCheck = generateOverflowCheck(A, IP, true);
2240 return ConstantInt::getFalse(IP->getContext());
2244 Instruction *IP) {
2248 Checks.push_back(expandCodeForPredicate(Pred, IP));
2249 Builder.SetInsertPoint(IP);
2253 return ConstantInt::getFalse(IP->getContext());