Add amdopencl environment to triple

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
This commit is contained in:
Matt Arsenault 2015-07-30 08:16:51 +00:00
parent 77907c7555
commit d8c145fd49
3 changed files with 6 additions and 1 deletions

View File

@ -170,7 +170,8 @@ public:
MSVC,
Itanium,
Cygnus,
LastEnvironmentType = Cygnus
AMDOpenCL,
LastEnvironmentType = AMDOpenCL
};
enum ObjectFormatType {
UnknownObjectFormat,

View 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);
}

View 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) {