[PATCH] D34987: [AMDGPU] Fix regressions on mesa/clover with libclc due to address space
Yaxun Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 4 12:57:48 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL307105: [AMDGPU] Fix regressions on mesa/clover with libclc due to address space (authored by yaxunl).
Changed prior to commit:
https://reviews.llvm.org/D34987?vs=105189&id=105196#toc
Repository:
rL LLVM
https://reviews.llvm.org/D34987
Files:
cfe/trunk/lib/Basic/Targets.cpp
cfe/trunk/test/CodeGenOpenCL/address-spaces.cl
Index: cfe/trunk/lib/Basic/Targets.cpp
===================================================================
--- cfe/trunk/lib/Basic/Targets.cpp
+++ cfe/trunk/lib/Basic/Targets.cpp
@@ -2049,7 +2049,7 @@
return llvm::makeArrayRef(GCCRegNames);
}
-static const LangAS::Map AMDGPUNonOpenCLPrivateIsZeroMap = {
+static const LangAS::Map AMDGPUPrivIsZeroDefIsGenMap = {
4, // Default
1, // opencl_global
3, // opencl_local
@@ -2059,7 +2059,7 @@
2, // cuda_constant
3 // cuda_shared
};
-static const LangAS::Map AMDGPUNonOpenCLGenericIsZeroMap = {
+static const LangAS::Map AMDGPUGenIsZeroDefIsGenMap = {
0, // Default
1, // opencl_global
3, // opencl_local
@@ -2069,7 +2069,7 @@
2, // cuda_constant
3 // cuda_shared
};
-static const LangAS::Map AMDGPUOpenCLPrivateIsZeroMap = {
+static const LangAS::Map AMDGPUPrivIsZeroDefIsPrivMap = {
0, // Default
1, // opencl_global
3, // opencl_local
@@ -2079,7 +2079,7 @@
2, // cuda_constant
3 // cuda_shared
};
-static const LangAS::Map AMDGPUOpenCLGenericIsZeroMap = {
+static const LangAS::Map AMDGPUGenIsZeroDefIsPrivMap = {
5, // Default
1, // opencl_global
3, // opencl_local
@@ -2184,20 +2184,28 @@
: DataLayoutStringR600);
assert(DataLayout->getAllocaAddrSpace() == AS.Private);
+ setAddressSpaceMap(Triple.getOS() == llvm::Triple::Mesa3D ||
+ Triple.getEnvironment() == llvm::Triple::OpenCL ||
+ Triple.getEnvironmentName() == "amdgizcl" ||
+ !isAMDGCN(Triple));
UseAddrSpaceMapMangling = true;
}
- void adjust(LangOptions &Opts) override {
- TargetInfo::adjust(Opts);
+ void setAddressSpaceMap(bool DefaultIsPrivate) {
if (isGenericZero(getTriple())) {
- AddrSpaceMap = Opts.OpenCL ? &AMDGPUOpenCLGenericIsZeroMap
- : &AMDGPUNonOpenCLGenericIsZeroMap;
+ AddrSpaceMap = DefaultIsPrivate ? &AMDGPUGenIsZeroDefIsPrivMap
+ : &AMDGPUGenIsZeroDefIsGenMap;
} else {
- AddrSpaceMap = Opts.OpenCL ? &AMDGPUOpenCLPrivateIsZeroMap
- : &AMDGPUNonOpenCLPrivateIsZeroMap;
+ AddrSpaceMap = DefaultIsPrivate ? &AMDGPUPrivIsZeroDefIsPrivMap
+ : &AMDGPUPrivIsZeroDefIsGenMap;
}
}
+ void adjust(LangOptions &Opts) override {
+ TargetInfo::adjust(Opts);
+ setAddressSpaceMap(Opts.OpenCL || !isAMDGCN(getTriple()));
+ }
+
uint64_t getPointerWidthV(unsigned AddrSpace) const override {
if (GPU <= GK_CAYMAN)
return 32;
Index: cfe/trunk/test/CodeGenOpenCL/address-spaces.cl
===================================================================
--- cfe/trunk/test/CodeGenOpenCL/address-spaces.cl
+++ cfe/trunk/test/CodeGenOpenCL/address-spaces.cl
@@ -4,6 +4,8 @@
// RUN: %clang_cc1 %s -O0 -triple amdgcn-amd-amdhsa-opencl -DCL20 -cl-std=CL2.0 -emit-llvm -o - | FileCheck %s --check-prefixes=CL20,CL20SPIR
// RUN: %clang_cc1 %s -O0 -triple amdgcn-amd-amdhsa-amdgizcl -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK,GIZ
// RUN: %clang_cc1 %s -O0 -triple amdgcn-amd-amdhsa-amdgizcl -DCL20 -cl-std=CL2.0 -emit-llvm -o - | FileCheck %s --check-prefixes=CL20,CL20GIZ
+// RUN: %clang_cc1 %s -O0 -triple amdgcn-mesa-mesa3d -emit-llvm -o - | FileCheck --check-prefixes=CHECK,SPIR %s
+// RUN: %clang_cc1 %s -O0 -triple r600-- -emit-llvm -o - | FileCheck --check-prefixes=CHECK,SPIR %s
// SPIR: i32* %arg
// GIZ: i32 addrspace(5)* %arg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34987.105196.patch
Type: text/x-patch
Size: 3569 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170704/818a346b/attachment-0001.bin>
More information about the cfe-commits
mailing list