[AMDGPU] Promote generic pointer kernel arguments into global
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>
Fri, 8 Oct 2021 20:04:32 +0000 (13:04 -0700)
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>
Tue, 12 Oct 2021 17:07:33 +0000 (10:07 -0700)
commit9cf995be6bb7096747710876f2f2239b4d8367a8
tree3c1b2298725fcb11825c093e1edecea4e63d4ac1
parent7a2949647a3c6bbeebe439a078d66b986e12fce2
[AMDGPU] Promote generic pointer kernel arguments into global

The new pass walks kernel's pointer arguments, then loads from them.
If a loaded value is a pointer and loaded pointer is unmodified in
the kernel before the load, then promote loaded pointer to global.
Then recursively continue.

Differential Revision: https://reviews.llvm.org/D111464
llvm/lib/Target/AMDGPU/AMDGPU.h
llvm/lib/Target/AMDGPU/AMDGPUPromoteKernelArguments.cpp [new file with mode: 0644]
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
llvm/lib/Target/AMDGPU/CMakeLists.txt
llvm/test/CodeGen/AMDGPU/opt-pipeline.ll
llvm/test/CodeGen/AMDGPU/promote-kernel-arguments.ll [new file with mode: 0644]