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

References

lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  376     if (SE->hasLoopInvariantBackedgeTakenCount(L))
  383   const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop);
  501       dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
  560         dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand()));
  678         cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr));
  714           cast<SCEVAddRecExpr>(SE->getSCEV(SecondStorePtr));
  732       if (isConsecutiveAccess(SL[i], SL[k], *DL, *SE, false)) {
  784     const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
  821   const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer));
  960   SCEVExpander Expander(*SE, *DL, "loop-idiom");
  968     Start = getStartForNegStride(Start, BECount, IntPtr, StoreSize, SE);
  972   if (!isSafeToExpand(Start, *SE))
  996       getNumBytes(BECount, IntPtr, StoreSize, CurLoop, DL, SE);
 1000   if (!isSafeToExpand(NumBytesS, *SE))
 1060   const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
 1073       cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand()));
 1080   SCEVExpander Expander(*SE, *DL, "loop-idiom");
 1088     StrStart = getStartForNegStride(StrStart, BECount, IntPtrTy, StoreSize, SE);
 1114     LdStart = getStartForNegStride(LdStart, BECount, IntPtrTy, StoreSize, SE);
 1136       getNumBytes(BECount, IntPtrTy, StoreSize, CurLoop, DL, SE);
 1780   SE->forgetLoop(CurLoop);
 1886   SE->forgetLoop(CurLoop);
 2040       SE->getSCEVAtScope(CmpOfLoads.LoadSrcA, CurLoop));
 2042       SE->getSCEVAtScope(CmpOfLoads.LoadSrcB, CurLoop));
 2052   const SCEV *RecStepForA = ScevForSrcA->getStepRecurrence(*SE);
 2053   const SCEV *RecStepForB = ScevForSrcB->getStepRecurrence(*SE);
 2074   if (SrcA == SE->getCouldNotCompute() || SrcB == SE->getCouldNotCompute() ||
 2074   if (SrcA == SE->getCouldNotCompute() || SrcB == SE->getCouldNotCompute() ||
 2075       !SE->isAvailableAtLoopEntry(SrcA, CurLoop) ||
 2076       !SE->isAvailableAtLoopEntry(SrcB, CurLoop)) {
 2086   Type *CmpFuncSizeTy = DL->getIntPtrType(SE->getContext());
 2091       SE->getExitCount(CurLoop, CurLoop->getLoopLatch());
 2095   if (LoopExitCount == SE->getCouldNotCompute() ||
 2099       !SE->isAvailableAtLoopEntry(LoopExitCount, CurLoop)) {
 2106   Iterations = SE->getAddExpr(
 2107       LoopExitCount, SE->getOne(LoopExitCount->getType()), SCEV::FlagNUW);
 2108   assert(Iterations != SE->getCouldNotCompute() &&
 2183   Iterations = SE->getNoopOrZeroExtend(Iterations, CmpFuncSizeTy);
 2184   assert(Iterations != SE->getCouldNotCompute() && "Promotion failed.");
 2193   NBytes = SE->getMulExpr(
 2194       Iterations, SE->getConstant(CmpFuncSizeTy, BCmpTyBytes), SCEV::FlagNUW);
 2195   assert(NBytes != SE->getCouldNotCompute() &&
 2239   SE->forgetLoop(CurLoop);
 2407   deleteDeadLoop(CurLoop, DT, SE, LI);    // And actually delete the loop.
 2607     SCEVExpander SExp(*SE, *DL, "LoopToBCmp");
 2626     assert(SE->getTypeSizeInBits(Len->getType()) ==