Lines Matching defs:ChainToBase
221 SmallVector<Instruction *, 3> ChainToBase;
1370 // Utility function which clones all instructions from "ChainToBase"
1373 static Instruction *rematerializeChain(ArrayRef<Instruction *> ChainToBase,
1381 make_range(ChainToBase.rbegin(), ChainToBase.rend())) {
1401 assert(!is_contained(ChainToBase, OpValue) &&
1412 // that the *only* use of the RootOfChain in the ChainToBase list is
2268 // callers of findRematerializableChainToBasePointer. Fills "ChainToBase" array
2271 SmallVectorImpl<Instruction*> &ChainToBase,
2274 ChainToBase.push_back(GEP);
2275 return findRematerializableChainToBasePointer(ChainToBase,
2283 ChainToBase.push_back(CI);
2284 return findRematerializableChainToBasePointer(ChainToBase,
2371 SmallVector<Instruction *, 3> ChainToBase;
2373 findRematerializableChainToBasePointer(ChainToBase, Derived);
2376 if ( ChainToBase.size() == 0 ||
2377 ChainToBase.size() > ChainLengthThreshold)
2400 InstructionCost Cost = chainToBasePointerCost(ChainToBase, TTI);
2408 Record.ChainToBase = ChainToBase;
2481 // ChainToBase may contain another remat candidate (as a sub chain) which
2486 if (Record.ChainToBase.size() > 1) {
2487 Record.ChainToBase.clear();
2488 findRematerializableChainToBasePointer(Record.ChainToBase, Cand);
2503 rematerializeChain(Record.ChainToBase, UserI->getIterator(),
2528 if (R.ChainToBase.size() > 1) {
2529 R.ChainToBase.clear();
2530 findRematerializableChainToBasePointer(R.ChainToBase, P.first);
2577 rematerializeChain(Record.ChainToBase, InsertBefore->getIterator(),
2589 rematerializeChain(Record.ChainToBase, NormalInsertBefore,
2592 rematerializeChain(Record.ChainToBase, UnwindInsertBefore,