diff options
author | Jon Chesterfield <jonathanchesterfield@gmail.com> | 2023-07-13 11:32:02 +0100 |
---|---|---|
committer | Jon Chesterfield <jonathanchesterfield@gmail.com> | 2023-07-13 11:32:03 +0100 |
commit | 9418c40af7ec6913112b82d6f1d6e8a8c43af6c0 (patch) | |
tree | 8f40188d559b156250b0ed489f52fe4b40aab6e5 /llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp | |
parent | 8cc440b3e7bfc248a31ffad0a7b32dceb6c24470 (diff) | |
download | llvm-9418c40af7ec6913112b82d6f1d6e8a8c43af6c0.zip llvm-9418c40af7ec6913112b82d6f1d6e8a8c43af6c0.tar.gz llvm-9418c40af7ec6913112b82d6f1d6e8a8c43af6c0.tar.bz2 |
[amdgpu][lds] Raise an explicit unimplemented error on absolute address LDS variables
These aren't implemented. They could be at moderate implementation
complexity. Raising an error is better than silently miscompiling.
Patching now because the patch at D155125 is a step towards using this metadata
more extensively as part of the lowering path and that will interact badly with
input variables with this annotation.
Lowering user defined variables at specific addresses would drop this error,
put them at the requested position in the frame during this pass, and then
use the same codegen that will be used for the kernel specific struct shortly.
Reviewed By: jmmartinez
Differential Revision: https://reviews.llvm.org/D155132
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp index 4cd138e..0c9a44b 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp @@ -354,6 +354,11 @@ public: continue; } + if (GV.isAbsoluteSymbolRef()) { + report_fatal_error( + "LDS variables with absolute addresses are unimplemented."); + } + for (User *V : GV.users()) { if (auto *I = dyn_cast<Instruction>(V)) { Function *F = I->getFunction(); |