Lines Matching defs:ChainToBase
222 SmallVector<Instruction *, 3> ChainToBase;
1364 // Utility function which clones all instructions from "ChainToBase"
1367 static Instruction *rematerializeChain(ArrayRef<Instruction *> ChainToBase,
1375 make_range(ChainToBase.rbegin(), ChainToBase.rend())) {
1395 assert(!is_contained(ChainToBase, OpValue) &&
1406 // that the *only* use of the RootOfChain in the ChainToBase list is
2262 // callers of findRematerializableChainToBasePointer. Fills "ChainToBase" array
2265 SmallVectorImpl<Instruction*> &ChainToBase,
2268 ChainToBase.push_back(GEP);
2269 return findRematerializableChainToBasePointer(ChainToBase,
2277 ChainToBase.push_back(CI);
2278 return findRematerializableChainToBasePointer(ChainToBase,
2365 SmallVector<Instruction *, 3> ChainToBase;
2367 findRematerializableChainToBasePointer(ChainToBase, Derived);
2370 if ( ChainToBase.size() == 0 ||
2371 ChainToBase.size() > ChainLengthThreshold)
2394 InstructionCost Cost = chainToBasePointerCost(ChainToBase, TTI);
2402 Record.ChainToBase = ChainToBase;
2475 // ChainToBase may contain another remat candidate (as a sub chain) which
2480 if (Record.ChainToBase.size() > 1) {
2481 Record.ChainToBase.clear();
2482 findRematerializableChainToBasePointer(Record.ChainToBase, Cand);
2497 Record.ChainToBase, UserI, Record.RootOfChain, PointerToBase[Cand]);
2521 if (R.ChainToBase.size() > 1) {
2522 R.ChainToBase.clear();
2523 findRematerializableChainToBasePointer(R.ChainToBase, P.first);
2570 rematerializeChain(Record.ChainToBase, InsertBefore,
2582 rematerializeChain(Record.ChainToBase, NormalInsertBefore,
2585 rematerializeChain(Record.ChainToBase, UnwindInsertBefore,