tra added inline comments.

================
Comment at: llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp:856-860
     // If any updates are made, grabs its users to the worklist because
     // their address spaces can also be possibly updated.
     LLVM_DEBUG(dbgs() << "  to " << NewAS.getValue() << '\n');
     (*InferredAddrSpace)[V] = NewAS.getValue();
 
----------------
I.e. I'd move these lines into `updateAddressSpace` and change its return type 
to bool, as we no longer would need NewAS' value.



================
Comment at: llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp:903-905
 Optional<unsigned> InferAddressSpacesImpl::updateAddressSpace(
-    const Value &V, const ValueToAddrSpaceMapTy &InferredAddrSpace) const {
+    const Value &V, const ValueToAddrSpaceMapTy &InferredAddrSpace,
+    PredicatedAddrSpaceMapTy &PredicatedAS) const {
----------------
hliao wrote:
> tra wrote:
> > I can't say I'm happy about the way updateAddressSpace updates PredicateAS 
> > here, but delegates updates to InferredAddrSpace to the caller. I think 
> > both should be updated in one place -- either here, or in the callee.
> the difference is that, here, we assume a use of pointer could be inferred 
> with a new addrspace. The original is on a def of value.
I'm not sure how it explains why the function returns values to update 
InferredAddrSpace outside of it, but updates PredicatedAS inside.

For consistency sake, I'd update InferredAddrSpace here as well and, possibly, 
combine both maps into a single structure as I've suggested above.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112041/new/

https://reviews.llvm.org/D112041

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to