diff options
author | Douglas Katzman <dougk@google.com> | 2015-06-12 18:31:38 +0000 |
---|---|---|
committer | Douglas Katzman <dougk@google.com> | 2015-06-12 18:31:38 +0000 |
commit | 1b5767f72b5a037ca8f1802d737de97f8d92263d (patch) | |
tree | c294a29faa4173e953a15cf3b3897620eed1497f | |
parent | f190def83094d99d4dc03e3ed06c961f8776ea60 (diff) | |
download | bcm5719-llvm-1b5767f72b5a037ca8f1802d737de97f8d92263d.tar.gz bcm5719-llvm-1b5767f72b5a037ca8f1802d737de97f8d92263d.zip |
Add 'shave' processor name to Triple
Based on ArchType, Clang's driver can select a non-Clang compiler.
String parsing in Clang would have sufficed if it were only that,
however this change anticipates true llvm support.
Differential Revision: http://reviews.llvm.org/D10413
llvm-svn: 239631
-rw-r--r-- | llvm/include/llvm/ADT/Triple.h | 3 | ||||
-rw-r--r-- | llvm/lib/Support/Triple.cpp | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h index 1362fe37c42..485dca051d2 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -84,7 +84,8 @@ public: spir, // SPIR: standard portable IR for OpenCL 32-bit version spir64, // SPIR: standard portable IR for OpenCL 64-bit version kalimba, // Kalimba: generic kalimba - LastArchType = kalimba + shave, // SHAVE: Movidius vector VLIW processors + LastArchType = shave }; enum SubArchType { NoSubArch, diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp index ad99386e657..072d4a0d79d 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -59,6 +59,7 @@ const char *Triple::getArchTypeName(ArchType Kind) { case spir: return "spir"; case spir64: return "spir64"; case kalimba: return "kalimba"; + case shave: return "shave"; } llvm_unreachable("Invalid ArchType!"); @@ -120,6 +121,7 @@ const char *Triple::getArchTypePrefix(ArchType Kind) { case spir: case spir64: return "spir"; case kalimba: return "kalimba"; + case shave: return "shave"; } } @@ -252,6 +254,7 @@ Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) { .Case("spir", spir) .Case("spir64", spir64) .Case("kalimba", kalimba) + .Case("shave", shave) .Default(UnknownArch); } @@ -356,6 +359,7 @@ static Triple::ArchType parseArch(StringRef ArchName) { .Case("spir", Triple::spir) .Case("spir64", Triple::spir64) .StartsWith("kalimba", Triple::kalimba) + .Case("shave", Triple::shave) .Default(Triple::UnknownArch); } @@ -1004,6 +1008,7 @@ static unsigned getArchPointerBitWidth(llvm::Triple::ArchType Arch) { case llvm::Triple::hsail: case llvm::Triple::spir: case llvm::Triple::kalimba: + case llvm::Triple::shave: return 32; case llvm::Triple::aarch64: @@ -1075,6 +1080,7 @@ Triple Triple::get32BitArchVariant() const { case Triple::thumbeb: case Triple::x86: case Triple::xcore: + case Triple::shave: // Already 32-bit. break; @@ -1107,6 +1113,7 @@ Triple Triple::get64BitArchVariant() const { case Triple::thumbeb: case Triple::xcore: case Triple::sparcel: + case Triple::shave: T.setArch(UnknownArch); break; |