Lines Matching defs:LatchCheck
271 LoopICmp LatchCheck;
302 widenICmpRangeCheckIncrementingLoop(LoopICmp LatchCheck, LoopICmp RangeCheck,
306 widenICmpRangeCheckDecrementingLoop(LoopICmp LatchCheck, LoopICmp RangeCheck,
413 const LoopICmp LatchCheck,
417 assert(DL.getTypeSizeInBits(LatchCheck.IV->getType()).getFixedValue() >
423 auto *Limit = dyn_cast<SCEVConstant>(LatchCheck.Limit);
424 auto *Start = dyn_cast<SCEVConstant>(LatchCheck.IV->getStart());
432 if (!SE.getMonotonicPredicateType(LatchCheck.IV, LatchCheck.Pred))
444 // Return an LoopICmp describing a latch check equivlent to LatchCheck but with
448 const LoopICmp LatchCheck,
451 auto *LatchType = LatchCheck.IV->getType();
453 return LatchCheck;
458 if (!isSafeToTruncateWideIVType(DL, SE, LatchCheck, RangeCheckType))
463 NewLatchCheck.Pred = LatchCheck.Pred;
465 SE.getTruncateExpr(LatchCheck.IV, RangeCheckType));
468 NewLatchCheck.Limit = SE.getTruncateExpr(LatchCheck.Limit, RangeCheckType);
472 LLVM_DEBUG(dbgs() << "LatchCheck.IV: " << *NewLatchCheck.IV << "\n");
473 LLVM_DEBUG(dbgs() << "LatchCheck.Limit: " << *NewLatchCheck.Limit << "\n");
540 LoopICmp LatchCheck, LoopICmp RangeCheck, SCEVExpander &Expander,
551 const SCEV *LatchStart = LatchCheck.IV->getStart();
552 const SCEV *LatchLimit = LatchCheck.Limit;
574 ICmpInst::getFlippedStrictnessPredicate(LatchCheck.Pred);
590 LoopICmp LatchCheck, LoopICmp RangeCheck, SCEVExpander &Expander,
595 const SCEV *LatchStart = LatchCheck.IV->getStart();
596 const SCEV *LatchLimit = LatchCheck.Limit;
614 auto *PostDecLatchCheckIV = LatchCheck.IV->getPostIncExpr(*SE);
627 ICmpInst::getFlippedStrictnessPredicate(LatchCheck.Pred);
687 auto CurrLatchCheckOpt = generateLoopLatchCheck(*DL, *SE, LatchCheck, Ty);
1213 LatchCheck = *LatchCheckOpt;
1216 LLVM_DEBUG(LatchCheck.dump());