• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/

Lines Matching refs:UserChain

235   /// \p UserChainTail Outputs the tail of UserChain so that we can
236 /// garbage-collect unused instructions in UserChain.
253 /// successful, returns C and update UserChain as a def-use chain from C to V;
254 /// otherwise, UserChain is empty.
273 /// index I' according to UserChain produced by function "find".
289 /// offset, distribute s/zext to the operands of all operators in UserChain.
293 /// The function also updates UserChain to point to new subexpressions after
294 /// distributing s/zext. e.g., the old UserChain of the above example is
296 /// and the new UserChain is
300 /// \p ChainIndex The index to UserChain. ChainIndex is initially
301 /// UserChain.size() - 1, and is decremented during
324 /// index is "a * b + (c + 5)". After running function find, UserChain[0] will
325 /// be the constant 5, UserChain[1] will be the subexpression "c + 5", and
326 /// UserChain[2] will be the entire expression "a * b + (c + 5)".
329 SmallVector<User *, 8> UserChain;
332 /// sext/zext instructions along UserChain.
611 UserChain.push_back(U);
635 distributeExtsAndCloneChain(UserChain.size() - 1);
636 // Remove all nullptrs (used to be s/zext) from UserChain.
638 for (User *I : UserChain) {
640 UserChain[NewSize] = I;
644 UserChain.resize(NewSize);
645 return removeConstOffset(UserChain.size() - 1);
650 User *U = UserChain[ChainIndex];
654 return UserChain[ChainIndex] = cast<ConstantInt>(applyExts(U));
662 UserChain[ChainIndex] = nullptr;
668 // OpNo = which operand of BO is UserChain[ChainIndex - 1]
669 unsigned OpNo = (BO->getOperand(0) == UserChain[ChainIndex - 1] ? 0 : 1);
681 return UserChain[ChainIndex] = NewBO;
686 assert(isa<ConstantInt>(UserChain[ChainIndex]));
687 return ConstantInt::getNullValue(UserChain[ChainIndex]->getType());
690 BinaryOperator *BO = cast<BinaryOperator>(UserChain[ChainIndex]);
693 "UserChain, so no one should be used more than "
696 unsigned OpNo = (BO->getOperand(0) == UserChain[ChainIndex - 1] ? 0 : 1);
697 assert(BO->getOperand(OpNo) == UserChain[ChainIndex - 1]);
750 UserChainTail = Extractor.UserChain.back();
988 // After switching to the new index, we can garbage-collect UserChain