hliao marked 3 inline comments as done.
hliao added inline comments.

================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:7719
+      // Arrary types.
+      if (auto ATy = dyn_cast<llvm::ArrayType>(Ty)) {
+        auto T = ATy->getElementType();
----------------
hliao wrote:
> hliao wrote:
> > arsenm wrote:
> > > No tests with arrays or structs?
> > > 
> > > It's also not immediately obvious to me that this optimization is still 
> > > valid if the pointer is buried in a struct
> > the original generic kernel pointer promotion to a global one only handles 
> > the pointer directly passed. From a critical workload, I found quite a few 
> > cases where the global pointers are passed through a by-val struct. We 
> > didn't handle that yet. With this case, we could start to handle that.
> struct tests are added. From test cases, it seems to me that arry is not 
> passed by value. I need to double-confirm.
a test case for arrary types is added.


================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:7689
+  // Coerce HIP pointer arguments from generic pointers to global ones.
+  llvm::Type *coerce(llvm::Type *Ty, unsigned DefaultAS,
+                     unsigned GlobalAS) const {
----------------
tra wrote:
> Now it could use a more descriptive name, too. :-)
> 
> You can now also make DefaultAS/GlobalAS into local variables as you have 
> access to `getContext()` here.
name is changed but I want to leave `DefaultAS` and `GlobalAS` as parameters as 
they may vary from HIP to OpenCL and different targets. Even though it may be 
rare case, I want to avoid careless errors.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D69826



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

Reply via email to