diff options
author | Sven van Haastregt <sven.vanhaastregt@arm.com> | 2017-12-06 10:11:28 +0000 |
---|---|---|
committer | Sven van Haastregt <sven.vanhaastregt@arm.com> | 2017-12-06 10:11:28 +0000 |
commit | 3bb7eaf72eca331413a21743afa5b67cac50618b (patch) | |
tree | 0055f970c86016394883c95a7eb2c13c9b1dec07 /clang/lib/Basic/Targets/AMDGPU.h | |
parent | 898eb34b49e7507a3cc5d9e5e56a8601c289bb4b (diff) | |
download | bcm5719-llvm-3bb7eaf72eca331413a21743afa5b67cac50618b.tar.gz bcm5719-llvm-3bb7eaf72eca331413a21743afa5b67cac50618b.zip |
[OpenCL] Fix layering violation by getOpenCLTypeAddrSpace
Commit 7ac28eb0a5 / r310911 ("[OpenCL] Allow targets to select address
space per type", 2017-08-15) made Basic depend on AST, introducing a
circular dependency. Break this dependency by adding the
OpenCLTypeKind enum in Basic and map from AST types to this enum in
ASTContext.
Differential Revision: https://reviews.llvm.org/D40838
llvm-svn: 319883
Diffstat (limited to 'clang/lib/Basic/Targets/AMDGPU.h')
-rw-r--r-- | clang/lib/Basic/Targets/AMDGPU.h | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h index 4cbf0f202ec..a4e070f1cb1 100644 --- a/clang/lib/Basic/Targets/AMDGPU.h +++ b/clang/lib/Basic/Targets/AMDGPU.h @@ -14,7 +14,6 @@ #ifndef LLVM_CLANG_LIB_BASIC_TARGETS_AMDGPU_H #define LLVM_CLANG_LIB_BASIC_TARGETS_AMDGPU_H -#include "clang/AST/Type.h" #include "clang/Basic/TargetInfo.h" #include "clang/Basic/TargetOptions.h" #include "llvm/ADT/StringSet.h" @@ -258,24 +257,18 @@ public: } } - LangAS getOpenCLTypeAddrSpace(const Type *T) const override { - auto BT = dyn_cast<BuiltinType>(T); + LangAS getOpenCLTypeAddrSpace(OpenCLTypeKind TK) const override { + switch (TK) { + case OCLTK_Image: + return LangAS::opencl_constant; - if (!BT) - return TargetInfo::getOpenCLTypeAddrSpace(T); - - switch (BT->getKind()) { -#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \ - case BuiltinType::Id: \ - return LangAS::opencl_constant; -#include "clang/Basic/OpenCLImageTypes.def" - case BuiltinType::OCLClkEvent: - case BuiltinType::OCLQueue: - case BuiltinType::OCLReserveID: + case OCLTK_ClkEvent: + case OCLTK_Queue: + case OCLTK_ReserveID: return LangAS::opencl_global; default: - return TargetInfo::getOpenCLTypeAddrSpace(T); + return TargetInfo::getOpenCLTypeAddrSpace(TK); } } |