[PATCH] D50984: AMDGPU: Move target code into TargetParser

2018-08-21 Thread Matt Arsenault via Phabricator via cfe-commits
arsenm closed this revision.
arsenm added a comment.

r340292


https://reviews.llvm.org/D50984



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D50984: AMDGPU: Move target code into TargetParser

2018-08-21 Thread Stanislav Mekhanoshin via Phabricator via cfe-commits
rampitec accepted this revision.
rampitec added a comment.
This revision is now accepted and ready to land.

LGTM


https://reviews.llvm.org/D50984



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D50984: AMDGPU: Move target code into TargetParser

2018-08-20 Thread Matt Arsenault via Phabricator via cfe-commits
arsenm created this revision.
arsenm added reviewers: rampitec, kzhuravl, yaxunl.
Herald added subscribers: t-tye, tpr, dstuttard, nhaehnle, wdng, jvesely.
arsenm added a dependency: D50983: AMDGPU: Partially move target handling code 
from clang to TargetParser.

https://reviews.llvm.org/D50984

Files:
  lib/Basic/Targets/AMDGPU.cpp
  lib/Basic/Targets/AMDGPU.h

Index: lib/Basic/Targets/AMDGPU.h
===
--- lib/Basic/Targets/AMDGPU.h
+++ lib/Basic/Targets/AMDGPU.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringSet.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/Support/Compiler.h"
+#include "llvm/Support/TargetParser.h"
 
 namespace clang {
 namespace targets {
@@ -38,160 +39,61 @@
   static const LangASMap AMDGPUDefIsGenMap;
   static const LangASMap AMDGPUDefIsPrivMap;
 
-  /// GPU kinds supported by the AMDGPU target.
-  enum GPUKind : uint32_t {
-// Not specified processor.
-GK_NONE = 0,
-
-// R600-based processors.
-GK_R600,
-GK_R630,
-GK_RS880,
-GK_RV670,
-GK_RV710,
-GK_RV730,
-GK_RV770,
-GK_CEDAR,
-GK_CYPRESS,
-GK_JUNIPER,
-GK_REDWOOD,
-GK_SUMO,
-GK_BARTS,
-GK_CAICOS,
-GK_CAYMAN,
-GK_TURKS,
-
-GK_R600_FIRST = GK_R600,
-GK_R600_LAST = GK_TURKS,
-
-// AMDGCN-based processors.
-GK_GFX600,
-GK_GFX601,
-GK_GFX700,
-GK_GFX701,
-GK_GFX702,
-GK_GFX703,
-GK_GFX704,
-GK_GFX801,
-GK_GFX802,
-GK_GFX803,
-GK_GFX810,
-GK_GFX900,
-GK_GFX902,
-GK_GFX904,
-GK_GFX906,
-
-GK_AMDGCN_FIRST = GK_GFX600,
-GK_AMDGCN_LAST = GK_GFX906,
-  };
+  llvm::AMDGPU::GPUKind GPUKind;
+  unsigned GPUFeatures;
 
-  struct GPUInfo {
-llvm::StringLiteral Name;
-llvm::StringLiteral CanonicalName;
-AMDGPUTargetInfo::GPUKind Kind;
-bool HasFMAF;
-bool HasFastFMAF;
-bool HasLDEXPF;
-bool HasFP64;
-bool HasFastFMA;
-bool HasFullRateF32Denorms;
-  };
 
-  static constexpr GPUInfo InvalidGPU =
-{{""}, {""}, GK_NONE, false, false, false, false, false, false};
-  static constexpr GPUInfo R600GPUs[26] = {
-  // Name CanonicalKindHasHasHasHasHasHas
-  //  Name FMAF   Fast   LDEXPF FP64   Fast   Fast
-  //  FMAF FMADenorm
-{{"r600"},{"r600"},GK_R600,false, false, false, false, false, false},
-{{"rv630"},   {"r600"},GK_R600,false, false, false, false, false, false},
-{{"rv635"},   {"r600"},GK_R600,false, false, false, false, false, false},
-{{"r630"},{"r630"},GK_R630,false, false, false, false, false, false},
-{{"rs780"},   {"rs880"},   GK_RS880,   false, false, false, false, false, false},
-{{"rs880"},   {"rs880"},   GK_RS880,   false, false, false, false, false, false},
-{{"rv610"},   {"rs880"},   GK_RS880,   false, false, false, false, false, false},
-{{"rv620"},   {"rs880"},   GK_RS880,   false, false, false, false, false, false},
-{{"rv670"},   {"rv670"},   GK_RV670,   false, false, false, false, false, false},
-{{"rv710"},   {"rv710"},   GK_RV710,   false, false, false, false, false, false},
-{{"rv730"},   {"rv730"},   GK_RV730,   false, false, false, false, false, false},
-{{"rv740"},   {"rv770"},   GK_RV770,   false, false, false, false, false, false},
-{{"rv770"},   {"rv770"},   GK_RV770,   false, false, false, false, false, false},
-{{"cedar"},   {"cedar"},   GK_CEDAR,   false, false, false, false, false, false},
-{{"palm"},{"cedar"},   GK_CEDAR,   false, false, false, false, false, false},
-{{"cypress"}, {"cypress"}, GK_CYPRESS, true,  false, false, false, false, false},
-{{"hemlock"}, {"cypress"}, GK_CYPRESS, true,  false, false, false, false, false},
-{{"juniper"}, {"juniper"}, GK_JUNIPER, false, false, false, false, false, false},
-{{"redwood"}, {"redwood"}, GK_REDWOOD, false, false, false, false, false, false},
-{{"sumo"},{"sumo"},GK_SUMO,false, false, false, false, false, false},
-{{"sumo2"},   {"sumo"},GK_SUMO,false, false, false, false, false, false},
-{{"barts"},   {"barts"},   GK_BARTS,   false, false, false, false, false, false},
-{{"caicos"},  {"caicos"},  GK_CAICOS,  false, false, false, false, false, false},
-{{"aruba"},   {"cayman"},  GK_CAYMAN,  true,  false, false, false, false, false},
-{{"cayman"},  {"cayman"},  GK_CAYMAN,  true,  false, false, false, false, false},
-{{"turks"},   {"turks"},   GK_TURKS,   false, false, false, false, false, false},
-  };
-  static constexpr GPUInfo AMDGCNGPUs[32] = {
-  // Name   CanonicalKindHas   HasHasHas   Has   Has
-  //Name FMAF  Fast   LDEXPF FP64  Fast  Fast
-  //   FMAFFMA   Denorm
-{{"gfx600"},