diff options
author | Yaxun Liu <Yaxun.Liu@amd.com> | 2019-01-30 12:26:54 +0000 |
---|---|---|
committer | Yaxun Liu <Yaxun.Liu@amd.com> | 2019-01-30 12:26:54 +0000 |
commit | 95f2ca541f2840ae78a1d5723e53505adb2b0197 (patch) | |
tree | 30e6c487550c02266305d835e87767d3f93b720b /clang/lib/Basic | |
parent | 34eeeec3ae343d6999d6556c2d1e6f73813e3163 (diff) | |
download | bcm5719-llvm-95f2ca541f2840ae78a1d5723e53505adb2b0197.tar.gz bcm5719-llvm-95f2ca541f2840ae78a1d5723e53505adb2b0197.zip |
[HIP] Fix size_t for MSVC environment
In 64 bit MSVC environment size_t is defined as unsigned long long.
In single source language like HIP, data layout should be consistent
in device and host compilation, therefore copy data layout controlling
fields from Aux target for AMDGPU target.
Differential Revision: https://reviews.llvm.org/D56318
llvm-svn: 352620
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/TargetInfo.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/AMDGPU.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/AMDGPU.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp index 7ab3f5808d0..79678ac6edc 100644 --- a/clang/lib/Basic/TargetInfo.cpp +++ b/clang/lib/Basic/TargetInfo.cpp @@ -796,3 +796,9 @@ void TargetInfo::CheckFixedPointBits() const { assert(getAccumIBits() >= getUnsignedAccumIBits()); assert(getLongAccumIBits() >= getUnsignedLongAccumIBits()); } + +void TargetInfo::copyAuxTarget(const TargetInfo *Aux) { + auto *Target = static_cast<TransferrableTargetInfo*>(this); + auto *Src = static_cast<const TransferrableTargetInfo*>(Aux); + *Target = *Src; +} diff --git a/clang/lib/Basic/Targets/AMDGPU.cpp b/clang/lib/Basic/Targets/AMDGPU.cpp index 98cf36da78e..19dc05f5b0a 100644 --- a/clang/lib/Basic/Targets/AMDGPU.cpp +++ b/clang/lib/Basic/Targets/AMDGPU.cpp @@ -305,3 +305,7 @@ void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts, if (hasFastFMA()) Builder.defineMacro("FP_FAST_FMA"); } + +void AMDGPUTargetInfo::setAuxTarget(const TargetInfo *Aux) { + copyAuxTarget(Aux); +} diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h index 530034ebb6d..e78e7666720 100644 --- a/clang/lib/Basic/Targets/AMDGPU.h +++ b/clang/lib/Basic/Targets/AMDGPU.h @@ -351,6 +351,8 @@ public: uint64_t getNullPointerValue(LangAS AS) const override { return AS == LangAS::opencl_local ? ~0 : 0; } + + void setAuxTarget(const TargetInfo *Aux) override; }; } // namespace targets |