On Thu, 2018-02-15 at 02:37 +, Konstantin Zhuravlyov via cfe-
commits wrote:
> Author: kzhuravl
> Date: Wed Feb 14 18:37:04 2018
> New Revision: 325203
>
> URL: http://llvm.org/viewvc/llvm-project?rev=325203=rev
> Log:
> Reapply r325193
Ca you please not do that ? Is it that difficult to have an actual
readable commit message? maybe describing the change and explaining
what has changed to fix the problems that got it reverted the first
time?
thanks,
Jan
>
> Added:
> cfe/trunk/test/Driver/amdgpu-macros.cl
> - copied unchanged from r325199, cfe/trunk/test/Driver/amdgpu-macros.cl
> Modified:
> cfe/trunk/lib/Basic/Targets/AMDGPU.cpp
> cfe/trunk/lib/Basic/Targets/AMDGPU.h
>
> Modified: cfe/trunk/lib/Basic/Targets/AMDGPU.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/AMDGPU.cpp?rev=325203=325202=325203=diff
> ==
> --- cfe/trunk/lib/Basic/Targets/AMDGPU.cpp (original)
> +++ cfe/trunk/lib/Basic/Targets/AMDGPU.cpp Wed Feb 14 18:37:04 2018
> @@ -161,7 +161,7 @@ bool AMDGPUTargetInfo::initFeatureMap(
> if (CPU.empty())
>CPU = "tahiti";
>
> -switch (parseAMDGCNName(CPU)) {
> +switch (parseAMDGCNName(CPU).Kind) {
> case GK_GFX6:
> case GK_GFX7:
>break;
> @@ -184,7 +184,7 @@ bool AMDGPUTargetInfo::initFeatureMap(
> if (CPU.empty())
>CPU = "r600";
>
> -switch (parseR600Name(CPU)) {
> +switch (parseR600Name(CPU).Kind) {
> case GK_R600:
> case GK_R700:
> case GK_EVERGREEN:
> @@ -229,36 +229,36 @@ void AMDGPUTargetInfo::adjustTargetOptio
> }
>
> constexpr AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::InvalidGPU;
> -constexpr AMDGPUTargetInfo::NameGPUKind AMDGPUTargetInfo::R600Names[];
> -constexpr AMDGPUTargetInfo::NameGPUKind AMDGPUTargetInfo::AMDGCNNames[];
> -AMDGPUTargetInfo::GPUKind AMDGPUTargetInfo::parseR600Name(StringRef Name) {
> +constexpr AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::R600Names[];
> +constexpr AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::AMDGCNNames[];
> +AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::parseR600Name(StringRef Name) {
>const auto *Result = llvm::find_if(
> - R600Names, [Name](const NameGPUKind ) { return Kind.Name == Name;
> });
> + R600Names, [Name](const GPUInfo ) { return GPU.Name == Name; });
>
>if (Result == std::end(R600Names))
> -return GK_NONE;
> - return Result->Kind;
> +return InvalidGPU;
> + return *Result;
> }
>
> -AMDGPUTargetInfo::GPUKind AMDGPUTargetInfo::parseAMDGCNName(StringRef Name) {
> +AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::parseAMDGCNName(StringRef Name) {
>const auto *Result =
> - llvm::find_if(AMDGCNNames, [Name](const NameGPUKind ) {
> -return Kind.Name == Name;
> + llvm::find_if(AMDGCNNames, [Name](const GPUInfo ) {
> +return GPU.Name == Name;
>});
>
>if (Result == std::end(AMDGCNNames))
> -return GK_NONE;
> - return Result->Kind;
> +return InvalidGPU;
> + return *Result;
> }
>
> void AMDGPUTargetInfo::fillValidCPUList(
> SmallVectorImpl ) const {
>if (getTriple().getArch() == llvm::Triple::amdgcn)
> -llvm::for_each(AMDGCNNames, [](const NameGPUKind ) {
> - Values.emplace_back(Kind.Name);});
> +llvm::for_each(AMDGCNNames, [](const GPUInfo ) {
> + Values.emplace_back(GPU.Name);});
>else
> -llvm::for_each(R600Names, [](const NameGPUKind ) {
> - Values.emplace_back(Kind.Name);});
> +llvm::for_each(R600Names, [](const GPUInfo ) {
> + Values.emplace_back(GPU.Name);});
> }
>
> void AMDGPUTargetInfo::setAddressSpaceMap(bool DefaultIsPrivate) {
> @@ -273,17 +273,17 @@ void AMDGPUTargetInfo::setAddressSpaceMa
>
> AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple ,
> const TargetOptions )
> -: TargetInfo(Triple),
> - GPU(isAMDGCN(Triple) ? GK_GFX6 : parseR600Name(Opts.CPU)),
> - hasFP64(false), hasFMAF(false), hasLDEXPF(false),
> - AS(isGenericZero(Triple)) {
> + : TargetInfo(Triple),
> +GPU(isAMDGCN(Triple) ? AMDGCNNames[0] : parseR600Name(Opts.CPU)),
> +hasFP64(false), hasFMAF(false), hasLDEXPF(false),
> +AS(isGenericZero(Triple)) {
>if (getTriple().getArch() == llvm::Triple::amdgcn) {
> hasFP64 = true;
> hasFMAF = true;
> hasLDEXPF = true;
>}
>if (getTriple().getArch() == llvm::Triple::r600) {
> -if (GPU == GK_EVERGREEN_DOUBLE_OPS || GPU == GK_CAYMAN) {
> +if (GPU.Kind == GK_EVERGREEN_DOUBLE_OPS || GPU.Kind == GK_CAYMAN) {
>hasFMAF = true;
> }
>}
> @@ -324,11 +324,17 @@ ArrayRef AMDGPUTargetInfo
>
> void AMDGPUTargetInfo::getTargetDefines(const LangOptions ,
> MacroBuilder ) const {
> + Builder.defineMacro("__AMD__");
> + Builder.defineMacro("__AMDGPU__");
> +
>if