Lines Matching refs:user
67 auto updateBlockUsersInfo = [&](Operation *user) { in optimizeReferenceCounting() argument
68 BlockUsersInfo &info = blockUsers[user->getBlock()]; in optimizeReferenceCounting()
69 info.users.push_back(user); in optimizeReferenceCounting()
71 if (auto addRef = dyn_cast<RuntimeAddRefOp>(user)) in optimizeReferenceCounting()
73 if (auto dropRef = dyn_cast<RuntimeDropRefOp>(user)) in optimizeReferenceCounting()
77 for (Operation *user : value.getUsers()) { in optimizeReferenceCounting()
78 while (user->getParentRegion() != definingRegion) { in optimizeReferenceCounting()
79 updateBlockUsersInfo(user); in optimizeReferenceCounting()
80 user = user->getParentOp(); in optimizeReferenceCounting()
81 assert(user != nullptr && "value user lies outside of the value region"); in optimizeReferenceCounting()
84 updateBlockUsersInfo(user); in optimizeReferenceCounting()
133 for (Operation *user : info.users) { in optimizeReferenceCounting()
135 if (user == addRef || user->isBeforeInBlock(addRef)) in optimizeReferenceCounting()
138 if (user == dropRef || dropRef->isBeforeInBlock(user)) in optimizeReferenceCounting()
142 Operation *functionCall = dyn_cast<func::CallOp>(user); in optimizeReferenceCounting()
153 lastNonFunctionCallUser->isBeforeInBlock(user))) { in optimizeReferenceCounting()
154 lastNonFunctionCallUser = user; in optimizeReferenceCounting()