r325203 - Reapply r325193

Jan Vesely via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 15 10:25:42 PST 2018


On Thu, 2018-02-15 at 02:37 +0000, 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&view=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&r1=325202&r2=325203&view=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 &Kind) { return Kind.Name == Name; });
> +      R600Names, [Name](const GPUInfo &GPU) { 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 &Kind) {
> -        return Kind.Name == Name;
> +      llvm::find_if(AMDGCNNames, [Name](const GPUInfo &GPU) {
> +        return GPU.Name == Name;
>        });
>  
>    if (Result == std::end(AMDGCNNames))
> -    return GK_NONE;
> -  return Result->Kind;
> +    return InvalidGPU;
> +  return *Result;
>  }
>  
>  void AMDGPUTargetInfo::fillValidCPUList(
>      SmallVectorImpl<StringRef> &Values) const {
>    if (getTriple().getArch() == llvm::Triple::amdgcn)
> -    llvm::for_each(AMDGCNNames, [&Values](const NameGPUKind &Kind) {
> -                   Values.emplace_back(Kind.Name);});
> +    llvm::for_each(AMDGCNNames, [&Values](const GPUInfo &GPU) {
> +                   Values.emplace_back(GPU.Name);});
>    else
> -    llvm::for_each(R600Names, [&Values](const NameGPUKind &Kind) {
> -                   Values.emplace_back(Kind.Name);});
> +    llvm::for_each(R600Names, [&Values](const GPUInfo &GPU) {
> +                   Values.emplace_back(GPU.Name);});
>  }
>  
>  void AMDGPUTargetInfo::setAddressSpaceMap(bool DefaultIsPrivate) {
> @@ -273,17 +273,17 @@ void AMDGPUTargetInfo::setAddressSpaceMa
>  
>  AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple &Triple,
>                                     const TargetOptions &Opts)
> -    : 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<Builtin::Info> AMDGPUTargetInfo
>  
>  void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts,
>                                          MacroBuilder &Builder) const {
> +  Builder.defineMacro("__AMD__");
> +  Builder.defineMacro("__AMDGPU__");
> +
>    if (getTriple().getArch() == llvm::Triple::amdgcn)
>      Builder.defineMacro("__AMDGCN__");
>    else
>      Builder.defineMacro("__R600__");
>  
> +  if (GPU.Kind != GK_NONE)
> +    Builder.defineMacro(Twine("__") + Twine(GPU.CanonicalName) + Twine("__"));
> +
>    if (hasFMAF)
>      Builder.defineMacro("__HAS_FMAF__");
>    if (hasLDEXPF)
> 
> Modified: cfe/trunk/lib/Basic/Targets/AMDGPU.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/AMDGPU.h?rev=325203&r1=325202&r2=325203&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/Targets/AMDGPU.h (original)
> +++ cfe/trunk/lib/Basic/Targets/AMDGPU.h Wed Feb 14 18:37:04 2018
> @@ -62,72 +62,76 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTarg
>      GK_GFX7,
>      GK_GFX8,
>      GK_GFX9
> -  } GPU;
> +  };
>  
> -  struct NameGPUKind {
> +  struct GPUInfo {
>      llvm::StringLiteral Name;
> +    llvm::StringLiteral CanonicalName;
>      AMDGPUTargetInfo::GPUKind Kind;
>    };
>  
> -  static constexpr NameGPUKind R600Names[26] = {
> -      {{"r600"}, GK_R600},
> -      {{"rv630"}, GK_R600},
> -      {{"rv635"}, GK_R600},
> -      {{"r630"}, GK_R600},
> -      {{"rs780"}, GK_R600},
> -      {{"rs880"}, GK_R600},
> -      {{"rv610"}, GK_R600},
> -      {{"rv620"}, GK_R600},
> -      {{"rv670"}, GK_R600_DOUBLE_OPS},
> -      {{"rv710"}, GK_R700},
> -      {{"rv730"}, GK_R700},
> -      {{"rv740"}, GK_R700_DOUBLE_OPS},
> -      {{"rv770"}, GK_R700_DOUBLE_OPS},
> -      {{"cedar"}, GK_EVERGREEN},
> -      {{"palm"}, GK_EVERGREEN},
> -      {{"cypress"}, GK_EVERGREEN_DOUBLE_OPS},
> -      {{"hemlock"}, GK_EVERGREEN_DOUBLE_OPS},
> -      {{"juniper"}, GK_EVERGREEN},
> -      {{"redwood"}, GK_EVERGREEN},
> -      {{"sumo"}, GK_EVERGREEN},
> -      {{"sumo2"}, GK_EVERGREEN},
> -      {{"barts"}, GK_NORTHERN_ISLANDS},
> -      {{"caicos"}, GK_NORTHERN_ISLANDS},
> -      {{"turks"}, GK_NORTHERN_ISLANDS},
> -      {{"aruba"}, GK_CAYMAN},
> -      {{"cayman"}, GK_CAYMAN},
> +  GPUInfo GPU;
> +
> +  static constexpr GPUInfo InvalidGPU = {{""}, {""}, GK_NONE};
> +  static constexpr GPUInfo R600Names[26] = {
> +      {{"r600"},    {"r600"},    GK_R600},
> +      {{"rv630"},   {"r600"},    GK_R600},
> +      {{"rv635"},   {"r600"},    GK_R600},
> +      {{"r630"},    {"r630"},    GK_R600},
> +      {{"rs780"},   {"rs880"},   GK_R600},
> +      {{"rs880"},   {"rs880"},   GK_R600},
> +      {{"rv610"},   {"rs880"},   GK_R600},
> +      {{"rv620"},   {"rs880"},   GK_R600},
> +      {{"rv670"},   {"rv670"},   GK_R600_DOUBLE_OPS},
> +      {{"rv710"},   {"rv710"},   GK_R700},
> +      {{"rv730"},   {"rv730"},   GK_R700},
> +      {{"rv740"},   {"rv770"},   GK_R700_DOUBLE_OPS},
> +      {{"rv770"},   {"rv770"},   GK_R700_DOUBLE_OPS},
> +      {{"cedar"},   {"cedar"},   GK_EVERGREEN},
> +      {{"palm"},    {"cedar"},   GK_EVERGREEN},
> +      {{"cypress"}, {"cypress"}, GK_EVERGREEN_DOUBLE_OPS},
> +      {{"hemlock"}, {"cypress"}, GK_EVERGREEN_DOUBLE_OPS},
> +      {{"juniper"}, {"juniper"}, GK_EVERGREEN},
> +      {{"redwood"}, {"redwood"}, GK_EVERGREEN},
> +      {{"sumo"},    {"sumo"},    GK_EVERGREEN},
> +      {{"sumo2"},   {"sumo"},    GK_EVERGREEN},
> +      {{"barts"},   {"barts"},   GK_NORTHERN_ISLANDS},
> +      {{"caicos"},  {"caicos"},  GK_NORTHERN_ISLANDS},
> +      {{"turks"},   {"turks"},   GK_NORTHERN_ISLANDS},
> +      {{"aruba"},   {"cayman"},  GK_CAYMAN},
> +      {{"cayman"},  {"cayman"},  GK_CAYMAN},
>    };
> -  static constexpr NameGPUKind AMDGCNNames[30] = {
> -      {{"gfx600"}, GK_GFX6},
> -      {{"tahiti"}, GK_GFX6},
> -      {{"gfx601"}, GK_GFX6},
> -      {{"hainan"}, GK_GFX6},
> -      {{"oland"}, GK_GFX6},
> -      {{"pitcairn"}, GK_GFX6},
> -      {{"verde"}, GK_GFX6},
> -      {{"gfx700"}, GK_GFX7},
> -      {{"kaveri"}, GK_GFX7},
> -      {{"gfx701"}, GK_GFX7},
> -      {{"hawaii"}, GK_GFX7},
> -      {{"gfx702"}, GK_GFX7},
> -      {{"gfx703"}, GK_GFX7},
> -      {{"kabini"}, GK_GFX7},
> -      {{"mullins"}, GK_GFX7},
> -      {{"gfx704"}, GK_GFX7},
> -      {{"bonaire"}, GK_GFX7},
> -      {{"gfx801"}, GK_GFX8},
> -      {{"carrizo"}, GK_GFX8},
> -      {{"gfx802"}, GK_GFX8},
> -      {{"iceland"}, GK_GFX8},
> -      {{"tonga"}, GK_GFX8},
> -      {{"gfx803"}, GK_GFX8},
> -      {{"fiji"}, GK_GFX8},
> -      {{"polaris10"}, GK_GFX8},
> -      {{"polaris11"}, GK_GFX8},
> -      {{"gfx810"}, GK_GFX8},
> -      {{"stoney"}, GK_GFX8},
> -      {{"gfx900"}, GK_GFX9},
> -      {{"gfx902"}, GK_GFX9},
> +  static constexpr GPUInfo AMDGCNNames[30] = {
> +      {{"gfx600"},    {"gfx600"}, GK_GFX6},
> +      {{"tahiti"},    {"gfx600"}, GK_GFX6},
> +      {{"gfx601"},    {"gfx601"}, GK_GFX6},
> +      {{"hainan"},    {"gfx601"}, GK_GFX6},
> +      {{"oland"},     {"gfx601"}, GK_GFX6},
> +      {{"pitcairn"},  {"gfx601"}, GK_GFX6},
> +      {{"verde"},     {"gfx601"}, GK_GFX6},
> +      {{"gfx700"},    {"gfx700"}, GK_GFX7},
> +      {{"kaveri"},    {"gfx700"}, GK_GFX7},
> +      {{"gfx701"},    {"gfx701"}, GK_GFX7},
> +      {{"hawaii"},    {"gfx701"}, GK_GFX7},
> +      {{"gfx702"},    {"gfx702"}, GK_GFX7},
> +      {{"gfx703"},    {"gfx703"}, GK_GFX7},
> +      {{"kabini"},    {"gfx703"}, GK_GFX7},
> +      {{"mullins"},   {"gfx703"}, GK_GFX7},
> +      {{"gfx704"},    {"gfx704"}, GK_GFX7},
> +      {{"bonaire"},   {"gfx704"}, GK_GFX7},
> +      {{"gfx801"},    {"gfx801"}, GK_GFX8},
> +      {{"carrizo"},   {"gfx801"}, GK_GFX8},
> +      {{"gfx802"},    {"gfx802"}, GK_GFX8},
> +      {{"iceland"},   {"gfx802"}, GK_GFX8},
> +      {{"tonga"},     {"gfx802"}, GK_GFX8},
> +      {{"gfx803"},    {"gfx803"}, GK_GFX8},
> +      {{"fiji"},      {"gfx803"}, GK_GFX8},
> +      {{"polaris10"}, {"gfx803"}, GK_GFX8},
> +      {{"polaris11"}, {"gfx803"}, GK_GFX8},
> +      {{"gfx810"},    {"gfx810"}, GK_GFX8},
> +      {{"stoney"},    {"gfx810"}, GK_GFX8},
> +      {{"gfx900"},    {"gfx900"}, GK_GFX9},
> +      {{"gfx902"},    {"gfx902"}, GK_GFX9},
>    };
>  
>    bool hasFP64 : 1;
> @@ -136,7 +140,7 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTarg
>    const AddrSpace AS;
>  
>    static bool hasFullSpeedFMAF32(StringRef GPUName) {
> -    return parseAMDGCNName(GPUName) >= GK_GFX9;
> +    return parseAMDGCNName(GPUName).Kind >= GK_GFX9;
>    }
>  
>    static bool isAMDGCN(const llvm::Triple &TT) {
> @@ -153,7 +157,7 @@ public:
>    void adjust(LangOptions &Opts) override;
>  
>    uint64_t getPointerWidthV(unsigned AddrSpace) const override {
> -    if (GPU <= GK_CAYMAN)
> +    if (GPU.Kind <= GK_CAYMAN)
>        return 32;
>  
>      if (AddrSpace == AS.Private || AddrSpace == AS.Local) {
> @@ -274,15 +278,15 @@ public:
>      return TargetInfo::CharPtrBuiltinVaList;
>    }
>  
> -  static GPUKind parseR600Name(StringRef Name);
> +  static GPUInfo parseR600Name(StringRef Name);
>  
> -  static GPUKind parseAMDGCNName(StringRef Name);
> +  static GPUInfo parseAMDGCNName(StringRef Name);
>  
>    bool isValidCPUName(StringRef Name) const override {
>      if (getTriple().getArch() == llvm::Triple::amdgcn)
> -      return GK_NONE != parseAMDGCNName(Name);
> +      return GK_NONE != parseAMDGCNName(Name).Kind;
>      else
> -      return GK_NONE != parseR600Name(Name);
> +      return GK_NONE != parseR600Name(Name).Kind;
>    }
>  
>    void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
> @@ -293,7 +297,7 @@ public:
>      else
>        GPU = parseR600Name(Name);
>  
> -    return GPU != GK_NONE;
> +    return GPU.Kind != GK_NONE;
>    }
>  
>    void setSupportedOpenCLOpts() override {
> @@ -303,14 +307,14 @@ public:
>  
>      if (hasFP64)
>        Opts.support("cl_khr_fp64");
> -    if (GPU >= GK_EVERGREEN) {
> +    if (GPU.Kind >= GK_EVERGREEN) {
>        Opts.support("cl_khr_byte_addressable_store");
>        Opts.support("cl_khr_global_int32_base_atomics");
>        Opts.support("cl_khr_global_int32_extended_atomics");
>        Opts.support("cl_khr_local_int32_base_atomics");
>        Opts.support("cl_khr_local_int32_extended_atomics");
>      }
> -    if (GPU >= GK_GFX6) {
> +    if (GPU.Kind >= GK_GFX6) {
>        Opts.support("cl_khr_fp16");
>        Opts.support("cl_khr_int64_base_atomics");
>        Opts.support("cl_khr_int64_extended_atomics");
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180215/408af8a0/attachment.sig>


More information about the cfe-commits mailing list