Lines Matching defs:IVInc
2087 struct IVInc {
2092 IVInc(Instruction *U, Value *O, const SCEV *E)
2099 SmallVector<IVInc, 1> Incs;
2103 IVChain(const IVInc &Head, const SCEV *Base)
2106 using const_iterator = SmallVectorImpl<IVInc>::const_iterator;
2120 // Add an IVInc to the end of this chain.
2121 void add(const IVInc &X) { Incs.push_back(X); }
2994 /// IVInc==b-a.
3064 /// TODO: Consider IVInc free if it's already used in another chains.
3101 for (const IVInc &Inc : Chain) {
3201 IVChainVec.push_back(IVChain(IVInc(UserInst, IVOper, LastIncExpr),
3210 IVChainVec[ChainIdx].add(IVInc(UserInst, IVOper, LastIncExpr));
3349 for (const IVInc &Inc : Chain) {
3357 /// Return true if the IVInc can be folded into an addressing mode.
3389 /// Generate an add or subtract for each IVInc in a chain to materialize the IV
3395 const IVInc &Head = Chain.Incs[0];
3433 for (const IVInc &Inc : Chain) {
6034 // Trying to hoist the IVInc to loop header if all IVInc users are in
6044 // the header block. Later we can hoist the IVInc to the block post