• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/

Lines Matching refs:ExitCount

162                                  const SCEV *ExitCount,
1744 // test. This is critical for when SCEV's cached ExitCount is less precise
1746 // actually dead and thus the BE count never reaches our ExitCount.)
1999 /// is taken ExitCount times.
2001 const SCEV *ExitCount, bool UsePostInc, Loop *L,
2007 // IVInit may be a pointer while ExitCount is an integer when FindLoopCounter
2008 // finds a valid pointer IV. Sign extend ExitCount in order to materialize a
2012 !ExitCount->getType()->isPointerTy()) {
2014 // signed value. ExitCount on the other hand represents the loop trip count,
2018 // extend ExitCount.
2020 const SCEV *IVOffset = SE->getTruncateOrZeroExtend(ExitCount, OfsTy);
2039 // In any other case, convert both IVInit and ExitCount to integers before
2047 // IVInit integer and ExitCount pointer would only occur if a canonical IV
2051 // For unit stride, IVCount = Start + ExitCount with 2's complement
2060 > SE->getTypeSizeInBits(ExitCount->getType())) {
2061 if (isa<SCEVConstant>(IVInit) && isa<SCEVConstant>(ExitCount))
2062 ExitCount = SE->getZeroExtendExpr(ExitCount, IVInit->getType());
2064 IVInit = SE->getTruncateExpr(IVInit, ExitCount->getType());
2067 const SCEV *IVLimit = SE->getAddExpr(IVInit, ExitCount);
2078 Type *LimitTy = ExitCount->getType()->isPointerTy() ?
2079 IndVar->getType() : ExitCount->getType();
2092 const SCEV *ExitCount,
2142 IndVar, ExitingBB, ExitCount, UsePostInc, L, Rewriter, SE);
2164 // emit a truncate to narrow the IV to the ExitCount type. This is safe
2211 << "ExitCount:\t" << *ExitCount << "\n"
2335 const SCEV *ExitCount = SE.getExitCount(L, ExitingBB);
2336 if (isa<SCEVCouldNotCompute>(ExitCount))
2337 ExitCount = SE.getExitCount(L, ExitingBB,
2339 if (!isa<SCEVCouldNotCompute>(ExitCount)) {
2343 ExitCounts.push_back(ExitCount);
2372 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB);
2373 if (isa<SCEVCouldNotCompute>(ExitCount))
2420 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB);
2421 assert(!isa<SCEVCouldNotCompute>(ExitCount) && "checked above");
2428 if (ExitCount->isZero()) {
2437 if (!ExitCount->getType()->isIntegerTy() ||
2442 SE->getWiderType(MaxExitCount->getType(), ExitCount->getType());
2443 ExitCount = SE->getNoopOrZeroExtend(ExitCount, WiderType);
2445 assert(MaxExitCount->getType() == ExitCount->getType());
2450 MaxExitCount, ExitCount)) {
2460 if (!DominatingExitCounts.insert(ExitCount).second) {
2532 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB);
2534 if (!SE->isLoopInvariant(ExitCount, L) ||
2535 !isSafeToExpand(ExitCount, *SE))
2539 if (!ExitCount->getType()->isIntegerTy())
2616 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB);
2620 if (ExitCount == ExactBTC) {
2624 Value *ECV = Rewriter.expandCodeFor(ExitCount);
2750 const SCEV *ExitCount = SE->getExitCount(L, ExitingBB);
2751 if (isa<SCEVCouldNotCompute>(ExitCount))
2758 if (ExitCount->isZero())
2761 PHINode *IndVar = FindLoopCounter(L, ExitingBB, ExitCount, SE, DT);
2767 if (Rewriter.isHighCostExpansion(ExitCount, L, SCEVCheapExpansionBudget,
2780 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ExitCount);
2783 ExitCount, IndVar,