[llvm] r236139 - New architecture name - 'sparcel' for Sparc little-endian.
Douglas Katzman
dougk at google.com
Wed Apr 29 12:15:08 PDT 2015
Author: dougk
Date: Wed Apr 29 14:15:08 2015
New Revision: 236139
URL: http://llvm.org/viewvc/llvm-project?rev=236139&view=rev
Log:
New architecture name - 'sparcel' for Sparc little-endian.
Differential Revision: http://reviews.llvm.org/D9263
Modified:
llvm/trunk/include/llvm/ADT/Triple.h
llvm/trunk/lib/Support/Triple.cpp
llvm/trunk/unittests/ADT/TripleTest.cpp
Modified: llvm/trunk/include/llvm/ADT/Triple.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/Triple.h?rev=236139&r1=236138&r2=236139&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/Triple.h (original)
+++ llvm/trunk/include/llvm/ADT/Triple.h Wed Apr 29 14:15:08 2015
@@ -64,6 +64,7 @@ public:
amdgcn, // AMDGCN: AMD GCN GPUs
sparc, // Sparc: sparc
sparcv9, // Sparcv9: Sparcv9
+ sparcel, // Sparc: (endianness = little). NB: 'Sparcle' is a CPU variant
systemz, // SystemZ: s390x
tce, // TCE (http://tce.cs.tut.fi/): tce
thumb, // Thumb (little endian): thumb, thumbv.*
Modified: llvm/trunk/lib/Support/Triple.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Triple.cpp?rev=236139&r1=236138&r2=236139&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Triple.cpp (original)
+++ llvm/trunk/lib/Support/Triple.cpp Wed Apr 29 14:15:08 2015
@@ -37,6 +37,7 @@ const char *Triple::getArchTypeName(Arch
case amdgcn: return "amdgcn";
case sparc: return "sparc";
case sparcv9: return "sparcv9";
+ case sparcel: return "sparcel";
case systemz: return "s390x";
case tce: return "tce";
case thumb: return "thumb";
@@ -90,6 +91,7 @@ const char *Triple::getArchTypePrefix(Ar
case bpf: return "bpf";
case sparcv9:
+ case sparcel:
case sparc: return "sparc";
case systemz: return "s390";
@@ -312,6 +314,7 @@ static Triple::ArchType parseArch(String
.Case("hexagon", Triple::hexagon)
.Case("s390x", Triple::systemz)
.Case("sparc", Triple::sparc)
+ .Case("sparcel", Triple::sparcel)
.Cases("sparcv9", "sparc64", Triple::sparcv9)
.Case("tce", Triple::tce)
.Case("xcore", Triple::xcore)
@@ -918,6 +921,7 @@ static unsigned getArchPointerBitWidth(l
case llvm::Triple::ppc:
case llvm::Triple::r600:
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
case llvm::Triple::tce:
case llvm::Triple::thumb:
case llvm::Triple::thumbeb:
@@ -990,6 +994,7 @@ Triple Triple::get32BitArchVariant() con
case Triple::ppc:
case Triple::r600:
case Triple::sparc:
+ case Triple::sparcel:
case Triple::tce:
case Triple::thumb:
case Triple::thumbeb:
@@ -1026,6 +1031,7 @@ Triple Triple::get64BitArchVariant() con
case Triple::thumb:
case Triple::thumbeb:
case Triple::xcore:
+ case Triple::sparcel:
T.setArch(UnknownArch);
break;
Modified: llvm/trunk/unittests/ADT/TripleTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/TripleTest.cpp?rev=236139&r1=236138&r2=236139&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/TripleTest.cpp (original)
+++ llvm/trunk/unittests/ADT/TripleTest.cpp Wed Apr 29 14:15:08 2015
@@ -149,6 +149,11 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
EXPECT_EQ(Triple::UnknownOS, T.getOS());
+ T = Triple("sparcel-unknown-unknown");
+ EXPECT_EQ(Triple::sparcel, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::UnknownOS, T.getOS());
+
T = Triple("spir-unknown-unknown");
EXPECT_EQ(Triple::spir, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
@@ -407,6 +412,21 @@ TEST(TripleTest, BitWidthPredicates) {
EXPECT_FALSE(T.isArch16Bit());
EXPECT_FALSE(T.isArch32Bit());
EXPECT_TRUE(T.isArch64Bit());
+
+ T.setArch(Triple::sparc);
+ EXPECT_FALSE(T.isArch16Bit());
+ EXPECT_TRUE(T.isArch32Bit());
+ EXPECT_FALSE(T.isArch64Bit());
+
+ T.setArch(Triple::sparcel);
+ EXPECT_FALSE(T.isArch16Bit());
+ EXPECT_TRUE(T.isArch32Bit());
+ EXPECT_FALSE(T.isArch64Bit());
+
+ T.setArch(Triple::sparcv9);
+ EXPECT_FALSE(T.isArch16Bit());
+ EXPECT_FALSE(T.isArch32Bit());
+ EXPECT_TRUE(T.isArch64Bit());
}
TEST(TripleTest, BitWidthArchVariants) {
More information about the llvm-commits
mailing list