Lines Matching refs:Ptr
41 void enqueueUsers(Value *Ptr);
43 bool promotePointer(Value *Ptr);
65 void AMDGPUPromoteKernelArguments::enqueueUsers(Value *Ptr) { in enqueueUsers() argument
66 SmallVector<User *> PtrUsers(Ptr->users()); in enqueueUsers()
78 if (LD->getPointerOperand()->stripInBoundsOffsets() == Ptr && in enqueueUsers()
87 if (U->getOperand(0)->stripInBoundsOffsets() == Ptr) in enqueueUsers()
94 bool AMDGPUPromoteKernelArguments::promotePointer(Value *Ptr) { in promotePointer() argument
97 LoadInst *LI = dyn_cast<LoadInst>(Ptr); in promotePointer()
101 PointerType *PT = dyn_cast<PointerType>(Ptr->getType()); in promotePointer()
108 enqueueUsers(Ptr); in promotePointer()
113 IRBuilder<> B(LI ? &*std::next(cast<Instruction>(Ptr)->getIterator()) in promotePointer()
121 B.CreateAddrSpaceCast(Ptr, NewPT, Twine(Ptr->getName(), ".global")); in promotePointer()
123 B.CreateAddrSpaceCast(Cast, PT, Twine(Ptr->getName(), ".flat")); in promotePointer()
124 Ptr->replaceUsesWithIf(CastBack, in promotePointer()
181 Value *Ptr = Ptrs.pop_back_val(); in run() local
182 Changed |= promotePointer(Ptr); in run()