For example, in
struct S { int *x; int *y; }; __global__ void foo(S s) { int *b = s.y; // use b }
"b" is guaranteed to point to global. NVPTX should emit ld.global/st.global for
accessing "b".
Paths
| Differential D11505
[NVPTX] convert pointers in byval kernel arguments to global ClosedPublic Authored by jingyue on Jul 25 2015, 4:50 PM.
Details Summary For example, in struct S { int *x; int *y; }; __global__ void foo(S s) { int *b = s.y; // use b } "b" is guaranteed to point to global. NVPTX should emit ld.global/st.global for
Diff Detail Event Timelinejholewinski edited edge metadata. Comment ActionsLooks reasonable to me, with the minor comment. Thanks!
This revision is now accepted and ready to land.Jul 31 2015, 1:03 PM jingyue edited edge metadata. Comment ActionsAs Justin pointed out, enable this optimization for CUDA only
Revision Contents
Diff 30639 lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp
test/CodeGen/NVPTX/lower-kernel-ptr-arg.ll
|
Can you enable this for CUDA only?