reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/Analysis/ScalarEvolutionExpander.h
  277       Builder.SetInsertPoint(IP);
  282     void clearInsertPoint() { Builder.ClearInsertionPoint(); }
  286       Builder.SetCurrentDebugLocation(std::move(L));
  291       return Builder.getCurrentDebugLocation();
lib/Analysis/ScalarEvolutionExpander.cpp
   49   BasicBlock::iterator BIP = Builder.GetInsertPoint();
  162   BasicBlock::iterator IP = findInsertPointAfter(I, Builder.GetInsertBlock());
  179   BasicBlock::iterator BlockBegin = Builder.GetInsertBlock()->begin();
  181   BasicBlock::iterator IP = Builder.GetInsertPoint();
  212   DebugLoc Loc = Builder.GetInsertPoint()->getDebugLoc();
  213   SCEVInsertPointGuard Guard(Builder, this);
  217     while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) {
  223       Builder.SetInsertPoint(Preheader->getTerminator());
  228   Instruction *BO = cast<Instruction>(Builder.CreateBinOp(Opcode, LHS, RHS));
  512            SE.DT.dominates(cast<Instruction>(V), &*Builder.GetInsertPoint()));
  525     BasicBlock::iterator BlockBegin = Builder.GetInsertBlock()->begin();
  527     BasicBlock::iterator IP = Builder.GetInsertPoint();
  543     SCEVInsertPointGuard Guard(Builder, this);
  546     while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) {
  552       Builder.SetInsertPoint(Preheader->getTerminator());
  556     Value *GEP = Builder.CreateGEP(Builder.getInt8Ty(), V, Idx, "uglygep");
  556     Value *GEP = Builder.CreateGEP(Builder.getInt8Ty(), V, Idx, "uglygep");
  563     SCEVInsertPointGuard Guard(Builder, this);
  566     while (const Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock())) {
  579       Builder.SetInsertPoint(Preheader->getTerminator());
  588     Value *GEP = Builder.CreateGEP(OriginalElTy, Casted, GepIndices, "scevgep");
  991   if (Builder.GetInsertPoint() == It)
  992     Builder.SetInsertPoint(&*NewInsertPt);
 1066       IncV = Builder.CreateBitCast(IncV, PN->getType());
 1071       Builder.CreateSub(PN, StepV, Twine(IVName) + ".iv.next") :
 1072       Builder.CreateAdd(PN, StepV, Twine(IVName) + ".iv.next");
 1250   SCEVInsertPointGuard Guard(Builder, this);
 1294   Builder.SetInsertPoint(Header, Header->begin());
 1296   PHINode *PN = Builder.CreatePHI(ExpandTy, std::distance(HPB, HPE),
 1315     Builder.SetInsertPoint(InsertPos);
 1412                          &*Builder.GetInsertPoint())) {
 1429         SCEVInsertPointGuard Guard(Builder, this);
 1445       Result = Builder.CreateTrunc(Result, TruncTy);
 1450       Result = Builder.CreateSub(expandCodeFor(Normalized->getStart(), TruncTy),
 1460     Result = Builder.CreateMul(Result,
 1476       Result = Builder.CreateAdd(Result,
 1519         findInsertPointAfter(cast<Instruction>(V), Builder.GetInsertBlock());
 1638   Value *I = Builder.CreateTrunc(V, Ty);
 1647   Value *I = Builder.CreateZExt(V, Ty);
 1656   Value *I = Builder.CreateSExt(V, Ty);
 1673     Value *ICmp = Builder.CreateICmpSGT(LHS, RHS);
 1675     Value *Sel = Builder.CreateSelect(ICmp, LHS, RHS, "smax");
 1698     Value *ICmp = Builder.CreateICmpUGT(LHS, RHS);
 1700     Value *Sel = Builder.CreateSelect(ICmp, LHS, RHS, "umax");
 1723     Value *ICmp = Builder.CreateICmpSLT(LHS, RHS);
 1725     Value *Sel = Builder.CreateSelect(ICmp, LHS, RHS, "smin");
 1748     Value *ICmp = Builder.CreateICmpULT(LHS, RHS);
 1750     Value *Sel = Builder.CreateSelect(ICmp, LHS, RHS, "umin");
 1816   Instruction *InsertPt = &*Builder.GetInsertPoint();
 1836     for (Loop *L = SE.LI.getLoopFor(Builder.GetInsertBlock());;
 1853         while (InsertPt->getIterator() != Builder.GetInsertPoint() &&
 1872   SCEVInsertPointGuard Guard(Builder, this);
 1873   Builder.SetInsertPoint(InsertPt);
 1889         V = Builder.CreateGEP(Ety, V, Idx, "scevgep");
 1894         V = Builder.CreateBitCast(V, Type::getInt8PtrTy(SE.getContext(), AS));
 1895         V = Builder.CreateGEP(Type::getInt8Ty(SE.getContext()), V, Idx,
 1897         V = Builder.CreateBitCast(V, Vty);
 1900       V = Builder.CreateSub(V, VO.second);
 1935   SCEVInsertPointGuard Guard(Builder, this);
 2233   Builder.SetInsertPoint(IP);
 2234   auto *I = Builder.CreateICmpNE(Expr0, Expr1, "ident.check");
 2262   Builder.SetInsertPoint(Loc);
 2276   Builder.SetInsertPoint(Loc);
 2278   Value *StepCompare = Builder.CreateICmp(ICmpInst::ICMP_SLT, StepValue, Zero);
 2279   Value *AbsStep = Builder.CreateSelect(StepCompare, NegStepValue, StepValue);
 2282   Value *TruncTripCount = Builder.CreateZExtOrTrunc(TripCountVal, Ty);
 2287   CallInst *Mul = Builder.CreateCall(MulF, {AbsStep, TruncTripCount}, "mul");
 2288   Value *MulV = Builder.CreateExtractValue(Mul, 0, "mul.result");
 2289   Value *OfMul = Builder.CreateExtractValue(Mul, 1, "mul.overflow");
 2298     Add = Builder.CreateBitCast(expandAddToGEP(MulS, ARPtrTy, Ty, StartValue),
 2300     Sub = Builder.CreateBitCast(
 2303     Add = Builder.CreateAdd(StartValue, MulV);
 2304     Sub = Builder.CreateSub(StartValue, MulV);
 2307   Value *EndCompareGT = Builder.CreateICmp(
 2310   Value *EndCompareLT = Builder.CreateICmp(
 2315       Builder.CreateSelect(StepCompare, EndCompareGT, EndCompareLT);
 2323         Builder.CreateICmp(ICmpInst::ICMP_UGT, TripCountVal,
 2325     BackedgeCheck = Builder.CreateAnd(
 2326         BackedgeCheck, Builder.CreateICmp(ICmpInst::ICMP_NE, StepValue, Zero));
 2328     EndCheck = Builder.CreateOr(EndCheck, BackedgeCheck);
 2331   EndCheck = Builder.CreateOr(EndCheck, OfMul);
 2349     return Builder.CreateOr(NUSWCheck, NSSWCheck);
 2368     Builder.SetInsertPoint(IP);
 2369     Check = Builder.CreateOr(Check, NextCheck);