Add amdopencl environment to triple
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Thu, 30 Jul 2015 08:16:51 +0000 (08:16 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Thu, 30 Jul 2015 08:16:51 +0000 (08:16 +0000)
This is used by the AMD x86 OpenCL implementation
to change some ABI details on Windows and Linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243627 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/Triple.h
lib/Support/Triple.cpp
unittests/ADT/TripleTest.cpp

index 947812d94ecbf31209b82ddae1fe20c5f8e3248c..4ad9396066ad5adc98e67e216f6d581cf2020998 100644 (file)
@@ -170,7 +170,8 @@ public:
     MSVC,
     Itanium,
     Cygnus,
-    LastEnvironmentType = Cygnus
+    AMDOpenCL,
+    LastEnvironmentType = AMDOpenCL
   };
   enum ObjectFormatType {
     UnknownObjectFormat,
index c6646fb101b7f32b1ea30aea452de7529e537096..f1b009e19e11fc531d91a7d9a8deabfa0bca8f0f 100644 (file)
@@ -196,6 +196,7 @@ const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) {
   case MSVC: return "msvc";
   case Itanium: return "itanium";
   case Cygnus: return "cygnus";
+  case AMDOpenCL: return "amdopencl";
   }
 
   llvm_unreachable("Invalid EnvironmentType!");
@@ -430,6 +431,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
     .StartsWith("msvc", Triple::MSVC)
     .StartsWith("itanium", Triple::Itanium)
     .StartsWith("cygnus", Triple::Cygnus)
+    .StartsWith("amdopencl", Triple::AMDOpenCL)
     .Default(Triple::UnknownEnvironment);
 }
 
index 2b1e871b94cb62419beee0d755e3a87b56b2f064..ead430bdc48d70b7bcabd98f06aa8e23bffe2bb2 100644 (file)
@@ -354,6 +354,8 @@ TEST(TripleTest, MutateName) {
   EXPECT_EQ(Triple::Darwin, T.getOS());
   EXPECT_EQ("i386-pc-darwin", T.getTriple());
 
+  T.setEnvironmentName("amdopencl");
+  EXPECT_EQ(Triple::AMDOpenCL, T.getEnvironment());
 }
 
 TEST(TripleTest, BitWidthPredicates) {