Lines Matching defs:LatchCheck
272 LoopICmp LatchCheck;
303 widenICmpRangeCheckIncrementingLoop(LoopICmp LatchCheck, LoopICmp RangeCheck,
307 widenICmpRangeCheckDecrementingLoop(LoopICmp LatchCheck, LoopICmp RangeCheck,
414 const LoopICmp LatchCheck,
418 assert(DL.getTypeSizeInBits(LatchCheck.IV->getType()).getFixedValue() >
424 auto *Limit = dyn_cast<SCEVConstant>(LatchCheck.Limit);
425 auto *Start = dyn_cast<SCEVConstant>(LatchCheck.IV->getStart());
433 if (!SE.getMonotonicPredicateType(LatchCheck.IV, LatchCheck.Pred))
445 // Return an LoopICmp describing a latch check equivlent to LatchCheck but with
449 const LoopICmp LatchCheck,
452 auto *LatchType = LatchCheck.IV->getType();
454 return LatchCheck;
459 if (!isSafeToTruncateWideIVType(DL, SE, LatchCheck, RangeCheckType))
464 NewLatchCheck.Pred = LatchCheck.Pred;
466 SE.getTruncateExpr(LatchCheck.IV, RangeCheckType));
469 NewLatchCheck.Limit = SE.getTruncateExpr(LatchCheck.Limit, RangeCheckType);
473 LLVM_DEBUG(dbgs() << "LatchCheck.IV: " << *NewLatchCheck.IV << "\n");
474 LLVM_DEBUG(dbgs() << "LatchCheck.Limit: " << *NewLatchCheck.Limit << "\n");
541 LoopICmp LatchCheck, LoopICmp RangeCheck, SCEVExpander &Expander,
552 const SCEV *LatchStart = LatchCheck.IV->getStart();
553 const SCEV *LatchLimit = LatchCheck.Limit;
575 ICmpInst::getFlippedStrictnessPredicate(LatchCheck.Pred);
591 LoopICmp LatchCheck, LoopICmp RangeCheck, SCEVExpander &Expander,
596 const SCEV *LatchStart = LatchCheck.IV->getStart();
597 const SCEV *LatchLimit = LatchCheck.Limit;
615 auto *PostDecLatchCheckIV = LatchCheck.IV->getPostIncExpr(*SE);
628 ICmpInst::getFlippedStrictnessPredicate(LatchCheck.Pred);
688 auto CurrLatchCheckOpt = generateLoopLatchCheck(*DL, *SE, LatchCheck, Ty);
1214 LatchCheck = *LatchCheckOpt;
1217 LLVM_DEBUG(LatchCheck.dump());