Lines Matching defs:IncV
674 bool SCEVExpander::isNormalAddRecExprPHI(PHINode *PN, Instruction *IncV,
676 if (IncV->getNumOperands() == 0 || isa<PHINode>(IncV) ||
677 (isa<CastInst>(IncV) && !isa<BitCastInst>(IncV)))
683 for (Use &Op : llvm::drop_begin(IncV->operands()))
689 IncV = dyn_cast<Instruction>(IncV->getOperand(0));
690 if (!IncV)
693 if (IncV->mayHaveSideEffects())
696 if (IncV == PN)
699 return isNormalAddRecExprPHI(PN, IncV, L);
711 Instruction *SCEVExpander::getIVIncOperand(Instruction *IncV,
714 if (IncV == InsertPos)
717 switch (IncV->getOpcode()) {
723 Instruction *OInst = dyn_cast<Instruction>(IncV->getOperand(1));
725 return dyn_cast<Instruction>(IncV->getOperand(0));
729 return dyn_cast<Instruction>(IncV->getOperand(0));
731 for (Use &U : llvm::drop_begin(IncV->operands())) {
743 if (!cast<GEPOperator>(IncV)->getSourceElementType()->isIntegerTy(8))
747 return dyn_cast<Instruction>(IncV->getOperand(0));
771 bool SCEVExpander::hoistIVInc(Instruction *IncV, Instruction *InsertPos,
788 if (SE.DT.dominates(IncV, InsertPos)) {
790 FixupPoisonFlags(IncV);
794 // InsertPos must itself dominate IncV so that IncV's new position satisfies
797 !SE.DT.dominates(InsertPos->getParent(), IncV->getParent()))
800 if (!SE.LI.movementPreservesLCSSAForm(IncV, InsertPos))
806 Instruction *Oper = getIVIncOperand(IncV, InsertPos, /*allowScale*/true);
809 // IncV is safe to hoist.
810 IVIncs.push_back(IncV);
811 IncV = Oper;
812 if (SE.DT.dominates(IncV, InsertPos))
838 bool SCEVExpander::isExpandedAddRecExprPHI(PHINode *PN, Instruction *IncV,
840 for(Instruction *IVOper = IncV;
854 Value *IncV;
858 IncV = Builder.CreatePtrAdd(PN, StepV, "scevgep");
860 IncV = useSubtract ?
864 return IncV;
944 Instruction *IncV = nullptr;
994 IncV = TempIncV;
1008 IncV = TempIncV;
1018 rememberInstruction(IncV);
1021 ReusedValues.insert(IncV);
1090 Value *IncV = expandIVInc(PN, StepV, L, useSubtract);
1092 if (isa<OverflowingBinaryOperator>(IncV)) {
1094 cast<BinaryOperator>(IncV)->setHasNoUnsignedWrap();
1096 cast<BinaryOperator>(IncV)->setHasNoSignedWrap();
1098 PN->addIncoming(IncV, Pred);