jdoerfert added inline comments.
================ Comment at: llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp:581-584 + if (ArgUsedToRetrieveHostcallPtr(I)) { + return false; + } + return true; ---------------- I'd suggest to switch the return value of ArgUsed... so it matches this functions (and other callbacks). ================ Comment at: llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp:566 + return false; + }; + ---------------- sameerds wrote: > jdoerfert wrote: > > You can use AAPointerInfo for the call site return IRPosition. It will > > (through the iterations) gather all accesses and put them into "bins" based > > on offset and size. It deals with uses in calls, etc. and if there is stuff > > missing it is better to add it in one place so we benefit throughout. > I am not following what you have in mind. "implicitarg_ptr" is a pointer > returned by an intrinsic that reads an ABI-defined register. I need to check > that for a given call-graph, a particular range of bytes relative to that > base pointer are never accessed. The above DFS on the uses conservatively > assumes that such a load exists unless it can conclusively trace every use of > the base pointer. This may include the pointer being passed to an extern > function or being stored into a different memory location (although we don't > expect ABI registers being capture this way). I am not seeing how to > construct this around AAPointerInfo. As far as I can see, the public > interface only talks about uses that are recognized as loads and stores. Not actually tested, replaces the function body. Depends on D119249. ``` const auto PointerInfoAA = A.getAAFor<AAPointerInfo>(*this, IRPosition::callback_returned(cast<CallBase>(Ptr)), DepClassTy::Required); if (!PointerInfoAA.getState().isValidState()) return true; // Abort (which is weird as false is abort in the other CB). AAPointerInfo::OffsetAndSize OAS(*Position, /* probably look pointer width up in DL */ 8); return !forallInterferingAccesses(OAS, [](const AAPointerInfo::Access &Acc, bool IsExact) { return Acc.getRemoteInst()->isDroppable(); }); ``` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119216/new/ https://reviews.llvm.org/D119216 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits