Lines Matching defs:Triple

1 //===--- Triple.cpp - Target triple helper class --------------------------===//
10 #include "llvm/ADT/Triple.h"
18 const char *Triple::getArchTypeName(ArchType Kind) {
52 const char *Triple::getArchTypePrefix(ArchType Kind) {
93 const char *Triple::getVendorTypeName(VendorType Kind) {
109 const char *Triple::getOSTypeName(OSType Kind) {
140 const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) {
156 Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) {
157 return StringSwitch<Triple::ArchType>(Name)
188 const char *Triple::getArchNameForAssembler() {
189 if (!isOSDarwin() && getVendor() != Triple::Apple)
213 static Triple::ArchType parseArch(StringRef ArchName) {
214 return StringSwitch<Triple::ArchType>(ArchName)
215 .Cases("i386", "i486", "i586", "i686", Triple::x86)
217 .Cases("i786", "i886", "i986", Triple::x86)
218 .Cases("amd64", "x86_64", Triple::x86_64)
219 .Case("powerpc", Triple::ppc)
220 .Cases("powerpc64", "ppu", Triple::ppc64)
221 .Case("mblaze", Triple::mblaze)
222 .Case("aarch64", Triple::aarch64)
223 .Cases("arm", "xscale", Triple::arm)
226 .StartsWith("armv", Triple::arm)
227 .Case("thumb", Triple::thumb)
228 .StartsWith("thumbv", Triple::thumb)
229 .Case("msp430", Triple::msp430)
230 .Cases("mips", "mipseb", "mipsallegrex", Triple::mips)
231 .Cases("mipsel", "mipsallegrexel", Triple::mipsel)
232 .Cases("mips64", "mips64eb", Triple::mips64)
233 .Case("mips64el", Triple::mips64el)
234 .Case("r600", Triple::r600)
235 .Case("hexagon", Triple::hexagon)
236 .Case("sparc", Triple::sparc)
237 .Case("sparcv9", Triple::sparcv9)
238 .Case("tce", Triple::tce)
239 .Case("xcore", Triple::xcore)
240 .Case("nvptx", Triple::nvptx)
241 .Case("nvptx64", Triple::nvptx64)
242 .Case("le32", Triple::le32)
243 .Case("amdil", Triple::amdil)
244 .Case("spir", Triple::spir)
245 .Case("spir64", Triple::spir64)
246 .Default(Triple::UnknownArch);
249 static Triple::VendorType parseVendor(StringRef VendorName) {
250 return StringSwitch<Triple::VendorType>(VendorName)
251 .Case("apple", Triple::Apple)
252 .Case("pc", Triple::PC)
253 .Case("scei", Triple::SCEI)
254 .Case("bgp", Triple::BGP)
255 .Case("bgq", Triple::BGQ)
256 .Case("fsl", Triple::Freescale)
257 .Case("ibm", Triple::IBM)
258 .Default(Triple::UnknownVendor);
261 static Triple::OSType parseOS(StringRef OSName) {
262 return StringSwitch<Triple::OSType>(OSName)
263 .StartsWith("auroraux", Triple::AuroraUX)
264 .StartsWith("cygwin", Triple::Cygwin)
265 .StartsWith("darwin", Triple::Darwin)
266 .StartsWith("dragonfly", Triple::DragonFly)
267 .StartsWith("freebsd", Triple::FreeBSD)
268 .StartsWith("ios", Triple::IOS)
269 .StartsWith("kfreebsd", Triple::KFreeBSD)
270 .StartsWith("linux", Triple::Linux)
271 .StartsWith("lv2", Triple::Lv2)
272 .StartsWith("macosx", Triple::MacOSX)
273 .StartsWith("mingw32", Triple::MinGW32)
274 .StartsWith("netbsd", Triple::NetBSD)
275 .StartsWith("openbsd", Triple::OpenBSD)
276 .StartsWith("solaris", Triple::Solaris)
277 .StartsWith("win32", Triple::Win32)
278 .StartsWith("haiku", Triple::Haiku)
279 .StartsWith("minix", Triple::Minix)
280 .StartsWith("rtems", Triple::RTEMS)
281 .StartsWith("nacl", Triple::NaCl)
282 .StartsWith("cnk", Triple::CNK)
283 .StartsWith("bitrig", Triple::Bitrig)
284 .StartsWith("aix", Triple::AIX)
285 .Default(Triple::UnknownOS);
288 static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
289 return StringSwitch<Triple::EnvironmentType>(EnvironmentName)
290 .StartsWith("eabi", Triple::EABI)
291 .StartsWith("gnueabihf", Triple::GNUEABIHF)
292 .StartsWith("gnueabi", Triple::GNUEABI)
293 .StartsWith("gnux32", Triple::GNUX32)
294 .StartsWith("gnu", Triple::GNU)
295 .StartsWith("macho", Triple::MachO)
296 .StartsWith("android", Triple::Android)
297 .StartsWith("elf", Triple::ELF)
298 .Default(Triple::UnknownEnvironment);
305 Triple::Triple(const Twine &Str)
319 Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr)
332 Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr,
342 std::string Triple::normalize(StringRef Str) {
476 StringRef Triple::getArchName() const {
480 StringRef Triple::getVendorName() const {
485 StringRef Triple::getOSName() const {
491 StringRef Triple::getEnvironmentName() const {
497 StringRef Triple::getOSAndEnvironmentName() const {
517 void Triple::getOSVersion(unsigned &Major, unsigned &Minor,
544 bool Triple::getMacOSXVersion(unsigned &Major, unsigned &Minor,
583 void Triple::getiOSVersion(unsigned &Major, unsigned &Minor,
606 void Triple::setTriple(const Twine &Str) {
607 *this = Triple(Str);
610 void Triple::setArch(ArchType Kind) {
614 void Triple::setVendor(VendorType Kind) {
618 void Triple::setOS(OSType Kind) {
622 void Triple::setEnvironment(EnvironmentType Kind) {
626 void Triple::setArchName(StringRef Str) {
628 SmallString<64> Triple;
629 Triple += Str;
630 Triple += "-";
631 Triple += getVendorName();
632 Triple += "-";
633 Triple += getOSAndEnvironmentName();
634 setTriple(Triple.str());
637 void Triple::setVendorName(StringRef Str) {
641 void Triple::setOSName(StringRef Str) {
649 void Triple::setEnvironmentName(StringRef Str) {
654 void Triple::setOSAndEnvironmentName(StringRef Str) {
658 static unsigned getArchPointerBitWidth(llvm::Triple::ArchType Arch) {
660 case llvm::Triple::UnknownArch:
663 case llvm::Triple::msp430:
666 case llvm::Triple::amdil:
667 case llvm::Triple::arm:
668 case llvm::Triple::hexagon:
669 case llvm::Triple::le32:
670 case llvm::Triple::mblaze:
671 case llvm::Triple::mips:
672 case llvm::Triple::mipsel:
673 case llvm::Triple::nvptx:
674 case llvm::Triple::ppc:
675 case llvm::Triple::r600:
676 case llvm::Triple::sparc:
677 case llvm::Triple::tce:
678 case llvm::Triple::thumb:
679 case llvm::Triple::x86:
680 case llvm::Triple::xcore:
681 case llvm::Triple::spir:
684 case llvm::Triple::aarch64:
685 case llvm::Triple::mips64:
686 case llvm::Triple::mips64el:
687 case llvm::Triple::nvptx64:
688 case llvm::Triple::ppc64:
689 case llvm::Triple::sparcv9:
690 case llvm::Triple::x86_64:
691 case llvm::Triple::spir64:
697 bool Triple::isArch64Bit() const {
701 bool Triple::isArch32Bit() const {
705 bool Triple::isArch16Bit() const {
709 Triple Triple::get32BitArchVariant() const {
710 Triple T(*this);
712 case Triple::UnknownArch:
713 case Triple::aarch64:
714 case Triple::msp430:
718 case Triple::amdil:
719 case Triple::spir:
720 case Triple::arm:
721 case Triple::hexagon:
722 case Triple::le32:
723 case Triple::mblaze:
724 case Triple::mips:
725 case Triple::mipsel:
726 case Triple::nvptx:
727 case Triple::ppc:
728 case Triple::r600:
729 case Triple::sparc:
730 case Triple::tce:
731 case Triple::thumb:
732 case Triple::x86:
733 case Triple::xcore:
737 case Triple::mips64: T.setArch(Triple::mips); break;
738 case Triple::mips64el: T.setArch(Triple::mipsel); break;
739 case Triple::nvptx64: T.setArch(Triple::nvptx); break;
740 case Triple::ppc64: T.setArch(Triple::ppc); break;
741 case Triple::sparcv9: T.setArch(Triple::sparc); break;
742 case Triple::x86_64: T.setArch(Triple::x86); break;
743 case Triple::spir64: T.setArch(Triple::spir); break;
748 Triple Triple::get64BitArchVariant() const {
749 Triple T(*this);
751 case Triple::UnknownArch:
752 case Triple::amdil:
753 case Triple::arm:
754 case Triple::hexagon:
755 case Triple::le32:
756 case Triple::mblaze:
757 case Triple::msp430:
758 case Triple::r600:
759 case Triple::tce:
760 case Triple::thumb:
761 case Triple::xcore:
765 case Triple::aarch64:
766 case Triple::spir64:
767 case Triple::mips64:
768 case Triple::mips64el:
769 case Triple::nvptx64:
770 case Triple::ppc64:
771 case Triple::sparcv9:
772 case Triple::x86_64:
776 case Triple::mips: T.setArch(Triple::mips64); break;
777 case Triple::mipsel: T.setArch(Triple::mips64el); break;
778 case Triple::nvptx: T.setArch(Triple::nvptx64); break;
779 case Triple::ppc: T.setArch(Triple::ppc64); break;
780 case Triple::sparc: T.setArch(Triple::sparcv9); break;
781 case Triple::x86: T.setArch(Triple::x86_64); break;
782 case Triple::spir: T.setArch(Triple::spir64); break;