[llvm] r260545 - [lanai] Add Lanai triple.
Jacques Pienaar via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 11 09:16:21 PST 2016
Author: jpienaar
Date: Thu Feb 11 11:16:20 2016
New Revision: 260545
URL: http://llvm.org/viewvc/llvm-project?rev=260545&view=rev
Log:
[lanai] Add Lanai triple.
Add triple for the Lanai backend.
General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend".
Differential Revision: http://reviews.llvm.org/D17003
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=260545&r1=260544&r2=260545&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/Triple.h (original)
+++ llvm/trunk/include/llvm/ADT/Triple.h Thu Feb 11 11:16:20 2016
@@ -86,6 +86,7 @@ public:
spir64, // SPIR: standard portable IR for OpenCL 64-bit version
kalimba, // Kalimba: generic kalimba
shave, // SHAVE: Movidius vector VLIW processors
+ lanai, // Lanai: Lanai 32-bit
wasm32, // WebAssembly with 32-bit pointers
wasm64, // WebAssembly with 64-bit pointers
LastArchType = wasm64
Modified: llvm/trunk/lib/Support/Triple.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Triple.cpp?rev=260545&r1=260544&r2=260545&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Triple.cpp (original)
+++ llvm/trunk/lib/Support/Triple.cpp Thu Feb 11 11:16:20 2016
@@ -60,6 +60,7 @@ const char *Triple::getArchTypeName(Arch
case spir: return "spir";
case spir64: return "spir64";
case kalimba: return "kalimba";
+ case lanai: return "lanai";
case shave: return "shave";
case wasm32: return "wasm32";
case wasm64: return "wasm64";
@@ -126,6 +127,7 @@ const char *Triple::getArchTypePrefix(Ar
case spir:
case spir64: return "spir";
case kalimba: return "kalimba";
+ case lanai: return "lanai";
case shave: return "shave";
case wasm32:
case wasm64: return "wasm";
@@ -268,6 +270,7 @@ Triple::ArchType Triple::getArchTypeForL
.Case("spir", spir)
.Case("spir64", spir64)
.Case("kalimba", kalimba)
+ .Case("lanai", lanai)
.Case("shave", shave)
.Case("wasm32", wasm32)
.Case("wasm64", wasm64)
@@ -376,6 +379,7 @@ static Triple::ArchType parseArch(String
.Case("spir", Triple::spir)
.Case("spir64", Triple::spir64)
.StartsWith("kalimba", Triple::kalimba)
+ .Case("lanai", Triple::lanai)
.Case("shave", Triple::shave)
.Case("wasm32", Triple::wasm32)
.Case("wasm64", Triple::wasm64)
@@ -563,6 +567,7 @@ static Triple::ObjectFormatType getDefau
case Triple::bpfeb:
case Triple::bpfel:
case Triple::hexagon:
+ case Triple::lanai:
case Triple::hsail:
case Triple::hsail64:
case Triple::kalimba:
@@ -1115,6 +1120,7 @@ static unsigned getArchPointerBitWidth(l
case llvm::Triple::hsail:
case llvm::Triple::spir:
case llvm::Triple::kalimba:
+ case llvm::Triple::lanai:
case llvm::Triple::shave:
case llvm::Triple::wasm32:
return 32;
@@ -1188,6 +1194,7 @@ Triple Triple::get32BitArchVariant() con
case Triple::thumbeb:
case Triple::x86:
case Triple::xcore:
+ case Triple::lanai:
case Triple::shave:
case Triple::wasm32:
// Already 32-bit.
@@ -1217,6 +1224,7 @@ Triple Triple::get64BitArchVariant() con
case Triple::avr:
case Triple::hexagon:
case Triple::kalimba:
+ case Triple::lanai:
case Triple::msp430:
case Triple::r600:
case Triple::tce:
@@ -1303,6 +1311,7 @@ Triple Triple::getBigEndianArchVariant()
case Triple::aarch64_be:
case Triple::armeb:
case Triple::bpfeb:
+ case Triple::lanai:
case Triple::mips64:
case Triple::mips:
case Triple::ppc64:
@@ -1329,6 +1338,7 @@ Triple Triple::getLittleEndianArchVarian
Triple T(*this);
switch (getArch()) {
case Triple::UnknownArch:
+ case Triple::lanai:
case Triple::ppc:
case Triple::sparcv9:
case Triple::systemz:
Modified: llvm/trunk/unittests/ADT/TripleTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/TripleTest.cpp?rev=260545&r1=260544&r2=260545&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/TripleTest.cpp (original)
+++ llvm/trunk/unittests/ADT/TripleTest.cpp Thu Feb 11 11:16:20 2016
@@ -212,6 +212,18 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::UnknownOS, T.getOS());
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
+ T = Triple("lanai-unknown-unknown");
+ EXPECT_EQ(Triple::lanai, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::UnknownOS, T.getOS());
+ EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
+
+ T = Triple("lanai");
+ EXPECT_EQ(Triple::lanai, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::UnknownOS, T.getOS());
+ EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
+
T = Triple("huh");
EXPECT_EQ(Triple::UnknownArch, T.getArch());
}
@@ -486,6 +498,11 @@ TEST(TripleTest, BitWidthPredicates) {
EXPECT_TRUE(T.isArch16Bit());
EXPECT_FALSE(T.isArch32Bit());
EXPECT_FALSE(T.isArch64Bit());
+
+ T.setArch(Triple::lanai);
+ EXPECT_FALSE(T.isArch16Bit());
+ EXPECT_TRUE(T.isArch32Bit());
+ EXPECT_FALSE(T.isArch64Bit());
}
TEST(TripleTest, BitWidthArchVariants) {
@@ -654,6 +671,10 @@ TEST(TripleTest, EndianArchVariants) {
T.setArch(Triple::thumbeb);
EXPECT_EQ(Triple::thumbeb, T.getBigEndianArchVariant().getArch());
EXPECT_EQ(Triple::UnknownArch, T.getLittleEndianArchVariant().getArch());
+
+ T.setArch(Triple::lanai);
+ EXPECT_EQ(Triple::lanai, T.getBigEndianArchVariant().getArch());
+ EXPECT_EQ(Triple::UnknownArch, T.getLittleEndianArchVariant().getArch());
}
TEST(TripleTest, getOSVersion) {
More information about the llvm-commits
mailing list