X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=include%2Fllvm%2FADT%2FTriple.h;h=cb6edc8c3e95763dfd7a2b0973eb764b5c44b468;hp=886f6fb2924ab1dc9dd8fb0b9cf871b307ab1501;hb=cf0db29df20d9c665da7e82bb261bdd7cf7f1b2b;hpb=ac844bf562ab6adee5160e0ad1fbbfa67ad5c393 diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h index 886f6fb2924..cb6edc8c3e9 100644 --- a/include/llvm/ADT/Triple.h +++ b/include/llvm/ADT/Triple.h @@ -50,7 +50,8 @@ public: armeb, // ARM (big endian): armeb aarch64, // AArch64 (little endian): aarch64 aarch64_be, // AArch64 (big endian): aarch64_be - bpf, // eBPF or extended BPF or 64-bit BPF (little endian) + bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) + bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) hexagon, // Hexagon: hexagon mips, // MIPS: mips, mipsallegrex mipsel, // MIPSEL: mipsel, mipsallegrexel @@ -64,6 +65,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.* @@ -81,11 +83,14 @@ public: hsail64, // AMD HSAIL with 64-bit pointers spir, // SPIR: standard portable IR for OpenCL 32-bit version spir64, // SPIR: standard portable IR for OpenCL 64-bit version - kalimba // Kalimba: generic kalimba + kalimba, // Kalimba: generic kalimba + shave, // SHAVE: Movidius vector VLIW processors + LastArchType = shave }; enum SubArchType { NoSubArch, + ARMSubArch_v8_1a, ARMSubArch_v8, ARMSubArch_v7, ARMSubArch_v7em, @@ -93,6 +98,7 @@ public: ARMSubArch_v7s, ARMSubArch_v6, ARMSubArch_v6m, + ARMSubArch_v6k, ARMSubArch_v6t2, ARMSubArch_v5, ARMSubArch_v5te, @@ -115,11 +121,13 @@ public: ImaginationTechnologies, MipsTechnologies, NVIDIA, - CSR + CSR, + LastVendorType = CSR }; enum OSType { UnknownOS, + CloudABI, Darwin, DragonFly, FreeBSD, @@ -142,7 +150,8 @@ public: CUDA, // NVIDIA CUDA NVCL, // NVIDIA OpenCL AMDHSA, // AMD HSA Runtime - PS4 + PS4, + LastOSType = PS4 }; enum EnvironmentType { UnknownEnvironment, @@ -159,6 +168,7 @@ public: MSVC, Itanium, Cygnus, + LastEnvironmentType = Cygnus }; enum ObjectFormatType { UnknownObjectFormat, @@ -247,6 +257,15 @@ public: /// getEnvironment - Get the parsed environment type of this triple. EnvironmentType getEnvironment() const { return Environment; } + /// \brief Parse the version number from the OS name component of the + /// triple, if present. + /// + /// For example, "fooos1.2.3" would return (1, 2, 3). + /// + /// If an entry is not defined, it will be returned as 0. + void getEnvironmentVersion(unsigned &Major, unsigned &Minor, + unsigned &Micro) const; + /// getFormat - Get the object format for this triple. ObjectFormatType getObjectFormat() const { return ObjectFormat; } @@ -590,7 +609,7 @@ public: /// @} }; -} // End llvm namespace +} // namespace llvm #endif