hliao marked 2 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();
----------------
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.
================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:7719
+ // Arrary types.
+ if (auto ATy = dyn_cast<llvm::ArrayType>(Ty)) {
+ auto T = ATy->getElementType();
----------------
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.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69826/new/
https://reviews.llvm.org/D69826
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits