Lines Matching refs:Expander

278   Instruction *findInsertPt(const SCEVExpander &Expander, Instruction *User,
286 Value *expandCheck(SCEVExpander &Expander, Instruction *Guard,
290 Optional<Value *> widenICmpRangeCheck(ICmpInst *ICI, SCEVExpander &Expander,
294 SCEVExpander &Expander,
298 SCEVExpander &Expander,
301 SCEVExpander &Expander, Instruction *Guard);
302 bool widenGuardConditions(IntrinsicInst *II, SCEVExpander &Expander);
303 bool widenWidenableBranchGuardConditions(BranchInst *Guard, SCEVExpander &Expander);
406 Value *LoopPredication::expandCheck(SCEVExpander &Expander, in expandCheck() argument
423 Expander.expandCodeFor(LHS, Ty, findInsertPt(Expander, Guard, {LHS})); in expandCheck()
425 Expander.expandCodeFor(RHS, Ty, findInsertPt(Expander, Guard, {RHS})); in expandCheck()
521 Instruction *LoopPredication::findInsertPt(const SCEVExpander &Expander, in findInsertPt() argument
529 !Expander.isSafeToExpandAt(Op, Preheader->getTerminator())) in findInsertPt()
573 SCEVExpander &Expander, Instruction *Guard) { in widenICmpRangeCheckIncrementingLoop() argument
595 if (!Expander.isSafeToExpandAt(LatchStart, Guard) || in widenICmpRangeCheckIncrementingLoop()
596 !Expander.isSafeToExpandAt(LatchLimit, Guard)) { in widenICmpRangeCheckIncrementingLoop()
613 expandCheck(Expander, Guard, LimitCheckPred, LatchLimit, RHS); in widenICmpRangeCheckIncrementingLoop()
614 auto *FirstIterationCheck = expandCheck(Expander, Guard, RangeCheck.Pred, in widenICmpRangeCheckIncrementingLoop()
622 SCEVExpander &Expander, Instruction *Guard) { in widenICmpRangeCheckDecrementingLoop() argument
638 if (!Expander.isSafeToExpandAt(LatchStart, Guard) || in widenICmpRangeCheckDecrementingLoop()
639 !Expander.isSafeToExpandAt(LatchLimit, Guard)) { in widenICmpRangeCheckDecrementingLoop()
659 auto *FirstIterationCheck = expandCheck(Expander, Guard, in widenICmpRangeCheckDecrementingLoop()
662 auto *LimitCheck = expandCheck(Expander, Guard, LimitCheckPred, LatchLimit, in widenICmpRangeCheckDecrementingLoop()
684 SCEVExpander &Expander, in widenICmpRangeCheck() argument
739 Expander, Guard); in widenICmpRangeCheck()
743 Expander, Guard); in widenICmpRangeCheck()
749 SCEVExpander &Expander, in collectChecks() argument
781 if (auto NewRangeCheck = widenICmpRangeCheck(ICI, Expander, in collectChecks()
802 SCEVExpander &Expander) { in widenGuardConditions() argument
808 unsigned NumWidened = collectChecks(Checks, Guard->getOperand(0), Expander, in widenGuardConditions()
827 BranchInst *BI, SCEVExpander &Expander) { in widenWidenableBranchGuardConditions() argument
835 Expander, BI); in widenWidenableBranchGuardConditions()
1305 SCEVExpander Expander(*SE, *DL, "loop-predication"); in runOnLoop() local
1308 Changed |= widenGuardConditions(Guard, Expander); in runOnLoop()
1310 Changed |= widenWidenableBranchGuardConditions(Guard, Expander); in runOnLoop()
1311 Changed |= predicateLoopExits(L, Expander); in runOnLoop()