Lines Matching refs:Triple

27 #include "llvm/ADT/Triple.h"
73 virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
76 OSTargetInfo(const llvm::Triple &Triple) : TgtInfo(Triple) {}
88 const llvm::Triple &Triple,
125 if (Triple.isMacOSX()) {
126 Triple.getMacOSXVersion(Maj, Min, Rev);
129 Triple.getOSVersion(Maj, Min, Rev);
130 PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
142 if (Triple.isiOS()) {
153 } else if (Triple.isMacOSX()) {
180 if (Triple.isOSDarwin())
191 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
203 CloudABITargetInfo(const llvm::Triple &Triple)
204 : OSTargetInfo<Target>(Triple) {
212 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
214 getDarwinDefines(Builder, Opts, Triple, this->PlatformName,
219 DarwinTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
220 this->TLSSupported = Triple.isMacOSX() && !Triple.isMacOSXVersionLT(10, 7);
251 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
262 DragonFlyBSDTargetInfo(const llvm::Triple &Triple)
263 : OSTargetInfo<Target>(Triple) {
266 switch (Triple.getArch()) {
268 case llvm::Triple::x86:
269 case llvm::Triple::x86_64:
280 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
284 unsigned Release = Triple.getOSMajorVersion();
306 FreeBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
309 switch (Triple.getArch()) {
311 case llvm::Triple::x86:
312 case llvm::Triple::x86_64:
315 case llvm::Triple::mips:
316 case llvm::Triple::mipsel:
317 case llvm::Triple::ppc:
318 case llvm::Triple::ppc64:
319 case llvm::Triple::ppc64le:
322 case llvm::Triple::arm:
333 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
347 KFreeBSDTargetInfo(const llvm::Triple &Triple)
348 : OSTargetInfo<Target>(Triple) {
357 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
372 MinixTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
381 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
388 if (Triple.getEnvironment() == llvm::Triple::Android) {
391 Triple.getOSVersion(Maj, Min, Rev);
401 LinuxTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
405 switch (Triple.getArch()) {
408 case llvm::Triple::ppc:
409 case llvm::Triple::ppc64:
410 case llvm::Triple::ppc64le:
425 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
434 switch (Triple.getArch()) {
437 case llvm::Triple::arm:
438 case llvm::Triple::armeb:
439 case llvm::Triple::thumb:
440 case llvm::Triple::thumbeb:
446 NetBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
456 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
467 OpenBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
471 switch (Triple.getArch()) {
473 case llvm::Triple::x86:
474 case llvm::Triple::x86_64:
475 case llvm::Triple::arm:
476 case llvm::Triple::sparc:
479 case llvm::Triple::mips64:
480 case llvm::Triple::mips64el:
481 case llvm::Triple::ppc:
482 case llvm::Triple::sparcv9:
493 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
503 switch (Triple.getArch()) {
506 case llvm::Triple::arm:
507 case llvm::Triple::armeb:
508 case llvm::Triple::thumb:
509 case llvm::Triple::thumbeb:
515 BitrigTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
525 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
534 PSPTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
543 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
555 PS3PPUTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
569 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
579 PS4OSTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
584 switch (Triple.getArch()) {
586 case llvm::Triple::x86_64:
597 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
620 SolarisTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
631 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
678 WindowsTargetInfo(const llvm::Triple &Triple)
679 : OSTargetInfo<Target>(Triple) {}
685 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
698 NaClTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
716 if (Triple.getArch() == llvm::Triple::arm) {
718 } else if (Triple.getArch() == llvm::Triple::x86) {
720 } else if (Triple.getArch() == llvm::Triple::x86_64) {
722 } else if (Triple.getArch() == llvm::Triple::mipsel) {
725 assert(Triple.getArch() == llvm::Triple::le32);
756 PPCTargetInfo(const llvm::Triple &Triple)
757 : TargetInfo(Triple), HasVSX(false), HasP8Vector(false),
760 BigEndian = (Triple.getArch() != llvm::Triple::ppc64le);
1079 if (getTriple().getArch() == llvm::Triple::ppc64le) {
1082 if (getTriple().getOS() != llvm::Triple::NetBSD &&
1083 getTriple().getOS() != llvm::Triple::OpenBSD)
1195 if (getTriple().getVendor() == llvm::Triple::BGQ) {
1391 PPC32TargetInfo(const llvm::Triple &Triple) : PPCTargetInfo(Triple) {
1395 case llvm::Triple::Linux:
1396 case llvm::Triple::FreeBSD:
1397 case llvm::Triple::NetBSD:
1406 if (getTriple().getOS() == llvm::Triple::FreeBSD) {
1425 PPC64TargetInfo(const llvm::Triple &Triple) : PPCTargetInfo(Triple) {
1430 if ((Triple.getArch() == llvm::Triple::ppc64le)) {
1439 case llvm::Triple::FreeBSD:
1443 case llvm::Triple::NetBSD:
1470 DarwinPPC32TargetInfo(const llvm::Triple &Triple)
1471 : DarwinTargetInfo<PPC32TargetInfo>(Triple) {
1487 DarwinPPC64TargetInfo(const llvm::Triple &Triple)
1488 : DarwinTargetInfo<PPC64TargetInfo>(Triple) {
1520 NVPTXTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
1633 NVPTX32TargetInfo(const llvm::Triple &Triple) : NVPTXTargetInfo(Triple) {
1644 NVPTX64TargetInfo(const llvm::Triple &Triple) : NVPTXTargetInfo(Triple) {
1699 R600TargetInfo(const llvm::Triple &Triple)
1700 : TargetInfo(Triple) {
1702 if (Triple.getArch() == llvm::Triple::amdgcn) {
2136 X86TargetInfo(const llvm::Triple &Triple)
2137 : TargetInfo(Triple), SSELevel(NoSSE), MMX3DNowLevel(NoMMX3DNow),
2206 if (getTriple().getArch() == llvm::Triple::x86_64 && SSELevel >= AVX)
2208 else if (getTriple().getArch() == llvm::Triple::x86 &&
2319 if (getTriple().getArch() != llvm::Triple::x86)
2394 if (getTriple().getArch() == llvm::Triple::x86_64)
2937 if (getTriple().getArch() == llvm::Triple::x86_64) {
3207 if (Opts.MicrosoftExt && getTriple().getArch() == llvm::Triple::x86) {
3287 .Case("x86_32", getTriple().getArch() == llvm::Triple::x86)
3288 .Case("x86_64", getTriple().getArch() == llvm::Triple::x86_64)
3421 X86_32TargetInfo(const llvm::Triple &Triple) : X86TargetInfo(Triple) {
3475 NetBSDI386TargetInfo(const llvm::Triple &Triple)
3476 : NetBSDTargetInfo<X86_32TargetInfo>(Triple) {}
3491 OpenBSDI386TargetInfo(const llvm::Triple &Triple)
3492 : OpenBSDTargetInfo<X86_32TargetInfo>(Triple) {
3501 BitrigI386TargetInfo(const llvm::Triple &Triple)
3502 : BitrigTargetInfo<X86_32TargetInfo>(Triple) {
3511 DarwinI386TargetInfo(const llvm::Triple &Triple)
3512 : DarwinTargetInfo<X86_32TargetInfo>(Triple) {
3528 WindowsX86_32TargetInfo(const llvm::Triple &Triple)
3529 : WindowsTargetInfo<X86_32TargetInfo>(Triple) {
3546 MicrosoftX86_32TargetInfo(const llvm::Triple &Triple)
3547 : WindowsX86_32TargetInfo(Triple) {
3594 MinGWX86_32TargetInfo(const llvm::Triple &Triple)
3595 : WindowsX86_32TargetInfo(Triple) {}
3609 CygwinX86_32TargetInfo(const llvm::Triple &Triple)
3610 : X86_32TargetInfo(Triple) {
3631 HaikuX86_32TargetInfo(const llvm::Triple &Triple) : X86_32TargetInfo(Triple) {
3651 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
3660 RTEMSTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
3663 switch (Triple.getArch()) {
3665 case llvm::Triple::x86:
3668 case llvm::Triple::mips:
3669 case llvm::Triple::mipsel:
3670 case llvm::Triple::ppc:
3671 case llvm::Triple::ppc64:
3672 case llvm::Triple::ppc64le:
3675 case llvm::Triple::arm:
3685 RTEMSX86_32TargetInfo(const llvm::Triple &Triple) : X86_32TargetInfo(Triple) {
3702 X86_64TargetInfo(const llvm::Triple &Triple) : X86TargetInfo(Triple) {
3703 const bool IsX32 = getTriple().getEnvironment() == llvm::Triple::GNUX32;
3763 WindowsX86_64TargetInfo(const llvm::Triple &Triple)
3764 : WindowsTargetInfo<X86_64TargetInfo>(Triple) {
3806 MicrosoftX86_64TargetInfo(const llvm::Triple &Triple)
3807 : WindowsX86_64TargetInfo(Triple) {
3823 MinGWX86_64TargetInfo(const llvm::Triple &Triple)
3824 : WindowsX86_64TargetInfo(Triple) {}
3840 DarwinX86_64TargetInfo(const llvm::Triple &Triple)
3841 : DarwinTargetInfo<X86_64TargetInfo>(Triple) {
3845 llvm::Triple T = llvm::Triple(Triple);
3854 OpenBSDX86_64TargetInfo(const llvm::Triple &Triple)
3855 : OpenBSDTargetInfo<X86_64TargetInfo>(Triple) {
3863 BitrigX86_64TargetInfo(const llvm::Triple &Triple)
3864 : BitrigTargetInfo<X86_64TargetInfo>(Triple) {
3924 static bool shouldUseInlineAtomic(const llvm::Triple &T) {
3926 if (T.getArch() == llvm::Triple::arm ||
3927 T.getArch() == llvm::Triple::armeb) {
3940 assert(T.getArch() == llvm::Triple::thumb ||
3941 T.getArch() == llvm::Triple::thumbeb);
3959 const llvm::Triple &T = getTriple();
3962 if (T.isOSBinFormatMachO() || T.getOS() == llvm::Triple::NetBSD ||
3963 T.getOS() == llvm::Triple::Bitrig)
3969 case llvm::Triple::NetBSD:
3972 case llvm::Triple::Win32:
3975 case llvm::Triple::Linux:
4015 const llvm::Triple &T = getTriple();
4022 if (T.getOS() == llvm::Triple::FreeBSD)
4054 ARMTargetInfo(const llvm::Triple &Triple, bool IsBigEndian)
4055 : TargetInfo(Triple), CPU("arm1136j-s"), FPMath(FP_Default),
4060 case llvm::Triple::NetBSD:
4078 if (Triple.isOSBinFormatMachO()) {
4081 if (Triple.getEnvironment() == llvm::Triple::EABI ||
4082 Triple.getOS() == llvm::Triple::UnknownOS ||
4088 } else if (Triple.isOSWindows()) {
4093 switch (Triple.getEnvironment()) {
4094 case llvm::Triple::Android:
4095 case llvm::Triple::GNUEABI:
4096 case llvm::Triple::GNUEABIHF:
4099 case llvm::Triple::EABIHF:
4100 case llvm::Triple::EABI:
4103 case llvm::Triple::GNU:
4107 if (Triple.getOS() == llvm::Triple::NetBSD)
4666 ARMleTargetInfo(const llvm::Triple &Triple)
4667 : ARMTargetInfo(Triple, false) { }
4677 ARMbeTargetInfo(const llvm::Triple &Triple)
4678 : ARMTargetInfo(Triple, true) { }
4688 const llvm::Triple Triple;
4690 WindowsARMTargetInfo(const llvm::Triple &Triple)
4691 : WindowsTargetInfo<ARMleTargetInfo>(Triple), Triple(Triple) {
4706 assert((Triple.getArch() == llvm::Triple::arm ||
4707 Triple.getArch() == llvm::Triple::thumb) &&
4709 unsigned Offset = Triple.getArch() == llvm::Triple::arm ? 4 : 6;
4710 Builder.defineMacro("_M_ARM", Triple.getArchName().substr(Offset));
4724 ItaniumWindowsARMleTargetInfo(const llvm::Triple &Triple)
4725 : WindowsARMTargetInfo(Triple) {
4741 MicrosoftARMleTargetInfo(const llvm::Triple &Triple)
4742 : WindowsARMTargetInfo(Triple) {
4756 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
4758 getDarwinDefines(Builder, Opts, Triple, PlatformName, PlatformMinVersion);
4762 DarwinARMTargetInfo(const llvm::Triple &Triple)
4763 : DarwinTargetInfo<ARMleTargetInfo>(Triple) {
4794 AArch64TargetInfo(const llvm::Triple &Triple)
4795 : TargetInfo(Triple), ABI("aapcs") {
4797 if (getTriple().getOS() == llvm::Triple::NetBSD) {
5102 AArch64leTargetInfo(const llvm::Triple &Triple)
5103 : AArch64TargetInfo(Triple) {
5120 AArch64beTargetInfo(const llvm::Triple &Triple)
5121 : AArch64TargetInfo(Triple) { }
5133 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
5143 getDarwinDefines(Builder, Opts, Triple, PlatformName, PlatformMinVersion);
5147 DarwinAArch64TargetInfo(const llvm::Triple &Triple)
5148 : DarwinTargetInfo<AArch64leTargetInfo>(Triple) {
5171 HexagonTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
5319 SparcTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {}
5431 // SPARC v8 is the 32-bit mode selected by Triple::sparc.
5434 SparcV8TargetInfo(const llvm::Triple &Triple) : SparcTargetInfo(Triple) {
5445 // SPARC v9 is the 64-bit mode selected by Triple::sparcv9.
5448 SparcV9TargetInfo(const llvm::Triple &Triple) : SparcTargetInfo(Triple) {
5455 if (getTriple().getOS() == llvm::Triple::OpenBSD)
5475 if (getTriple().getOS() != llvm::Triple::Solaris) {
5501 SolarisSparcV8TargetInfo(const llvm::Triple &Triple)
5502 : SolarisTargetInfo<SparcV8TargetInfo>(Triple) {
5515 SystemZTargetInfo(const llvm::Triple &Triple)
5516 : TargetInfo(Triple), CPU("z10"), HasTransactionalExecution(false) {
5646 MSP430TargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
5739 TCETargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
5817 MipsTargetInfoBase(const llvm::Triple &Triple, const std::string &ABIStr,
5819 : TargetInfo(Triple), CPU(CPUStr), IsMips16(false), IsMicromips(false),
5839 bool IsMips32 = getTriple().getArch() == llvm::Triple::mips ||
5840 getTriple().getArch() == llvm::Triple::mipsel;
6113 Mips32TargetInfoBase(const llvm::Triple &Triple)
6114 : MipsTargetInfoBase(Triple, "o32", "mips32r2") {
6203 Mips32EBTargetInfo(const llvm::Triple &Triple)
6204 : Mips32TargetInfoBase(Triple) {
6220 Mips32ELTargetInfo(const llvm::Triple &Triple)
6221 : Mips32TargetInfoBase(Triple) {
6234 Mips64TargetInfoBase(const llvm::Triple &Triple)
6235 : MipsTargetInfoBase(Triple, "n64", "mips64r2") {
6238 if (getTriple().getOS() == llvm::Triple::FreeBSD) {
6365 Mips64EBTargetInfo(const llvm::Triple &Triple)
6366 : Mips64TargetInfoBase(Triple) {}
6383 Mips64ELTargetInfo(const llvm::Triple &Triple)
6384 : Mips64TargetInfoBase(Triple) {
6398 PNaClTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
6465 Le64TargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
6526 SPIRTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
6527 assert(getTriple().getOS() == llvm::Triple::UnknownOS &&
6529 assert(getTriple().getEnvironment() == llvm::Triple::UnknownEnvironment &&
6579 SPIR32TargetInfo(const llvm::Triple &Triple) : SPIRTargetInfo(Triple) {
6595 SPIR64TargetInfo(const llvm::Triple &Triple) : SPIRTargetInfo(Triple) {
6611 XCoreTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
6677 AndroidX86_32TargetInfo(const llvm::Triple &Triple)
6678 : LinuxTargetInfo<X86_32TargetInfo>(Triple) {
6690 AndroidX86_64TargetInfo(const llvm::Triple &Triple)
6691 : LinuxTargetInfo<X86_64TargetInfo>(Triple) {
6702 static TargetInfo *AllocateTarget(const llvm::Triple &Triple) {
6703 llvm::Triple::OSType os = Triple.getOS();
6705 switch (Triple.getArch()) {
6709 case llvm::Triple::xcore:
6710 return new XCoreTargetInfo(Triple);
6712 case llvm::Triple::hexagon:
6713 return new HexagonTargetInfo(Triple);
6715 case llvm::Triple::aarch64:
6716 if (Triple.isOSDarwin())
6717 return new DarwinAArch64TargetInfo(Triple);
6720 case llvm::Triple::FreeBSD:
6721 return new FreeBSDTargetInfo<AArch64leTargetInfo>(Triple);
6722 case llvm::Triple::Linux:
6723 return new LinuxTargetInfo<AArch64leTargetInfo>(Triple);
6724 case llvm::Triple::NetBSD:
6725 return new NetBSDTargetInfo<AArch64leTargetInfo>(Triple);
6727 return new AArch64leTargetInfo(Triple);
6730 case llvm::Triple::aarch64_be:
6732 case llvm::Triple::FreeBSD:
6733 return new FreeBSDTargetInfo<AArch64beTargetInfo>(Triple);
6734 case llvm::Triple::Linux:
6735 return new LinuxTargetInfo<AArch64beTargetInfo>(Triple);
6736 case llvm::Triple::NetBSD:
6737 return new NetBSDTargetInfo<AArch64beTargetInfo>(Triple);
6739 return new AArch64beTargetInfo(Triple);
6742 case llvm::Triple::arm:
6743 case llvm::Triple::thumb:
6744 if (Triple.isOSBinFormatMachO())
6745 return new DarwinARMTargetInfo(Triple);
6748 case llvm::Triple::Linux:
6749 return new LinuxTargetInfo<ARMleTargetInfo>(Triple);
6750 case llvm::Triple::FreeBSD:
6751 return new FreeBSDTargetInfo<ARMleTargetInfo>(Triple);
6752 case llvm::Triple::NetBSD:
6753 return new NetBSDTargetInfo<ARMleTargetInfo>(Triple);
6754 case llvm::Triple::OpenBSD:
6755 return new OpenBSDTargetInfo<ARMleTargetInfo>(Triple);
6756 case llvm::Triple::Bitrig:
6757 return new BitrigTargetInfo<ARMleTargetInfo>(Triple);
6758 case llvm::Triple::RTEMS:
6759 return new RTEMSTargetInfo<ARMleTargetInfo>(Triple);
6760 case llvm::Triple::NaCl:
6761 return new NaClTargetInfo<ARMleTargetInfo>(Triple);
6762 case llvm::Triple::Win32:
6763 switch (Triple.getEnvironment()) {
6765 return new ARMleTargetInfo(Triple);
6766 case llvm::Triple::Itanium:
6767 return new ItaniumWindowsARMleTargetInfo(Triple);
6768 case llvm::Triple::MSVC:
6769 return new MicrosoftARMleTargetInfo(Triple);
6772 return new ARMleTargetInfo(Triple);
6775 case llvm::Triple::armeb:
6776 case llvm::Triple::thumbeb:
6777 if (Triple.isOSDarwin())
6778 return new DarwinARMTargetInfo(Triple);
6781 case llvm::Triple::Linux:
6782 return new LinuxTargetInfo<ARMbeTargetInfo>(Triple);
6783 case llvm::Triple::FreeBSD:
6784 return new FreeBSDTargetInfo<ARMbeTargetInfo>(Triple);
6785 case llvm::Triple::NetBSD:
6786 return new NetBSDTargetInfo<ARMbeTargetInfo>(Triple);
6787 case llvm::Triple::OpenBSD:
6788 return new OpenBSDTargetInfo<ARMbeTargetInfo>(Triple);
6789 case llvm::Triple::Bitrig:
6790 return new BitrigTargetInfo<ARMbeTargetInfo>(Triple);
6791 case llvm::Triple::RTEMS:
6792 return new RTEMSTargetInfo<ARMbeTargetInfo>(Triple);
6793 case llvm::Triple::NaCl:
6794 return new NaClTargetInfo<ARMbeTargetInfo>(Triple);
6796 return new ARMbeTargetInfo(Triple);
6799 case llvm::Triple::msp430:
6800 return new MSP430TargetInfo(Triple);
6802 case llvm::Triple::mips:
6804 case llvm::Triple::Linux:
6805 return new LinuxTargetInfo<Mips32EBTargetInfo>(Triple);
6806 case llvm::Triple::RTEMS:
6807 return new RTEMSTargetInfo<Mips32EBTargetInfo>(Triple);
6808 case llvm::Triple::FreeBSD:
6809 return new FreeBSDTargetInfo<Mips32EBTargetInfo>(Triple);
6810 case llvm::Triple::NetBSD:
6811 return new NetBSDTargetInfo<Mips32EBTargetInfo>(Triple);
6813 return new Mips32EBTargetInfo(Triple);
6816 case llvm::Triple::mipsel:
6818 case llvm::Triple::Linux:
6819 return new LinuxTargetInfo<Mips32ELTargetInfo>(Triple);
6820 case llvm::Triple::RTEMS:
6821 return new RTEMSTargetInfo<Mips32ELTargetInfo>(Triple);
6822 case llvm::Triple::FreeBSD:
6823 return new FreeBSDTargetInfo<Mips32ELTargetInfo>(Triple);
6824 case llvm::Triple::NetBSD:
6825 return new NetBSDTargetInfo<Mips32ELTargetInfo>(Triple);
6826 case llvm::Triple::NaCl:
6827 return new NaClTargetInfo<Mips32ELTargetInfo>(Triple);
6829 return new Mips32ELTargetInfo(Triple);
6832 case llvm::Triple::mips64:
6834 case llvm::Triple::Linux:
6835 return new LinuxTargetInfo<Mips64EBTargetInfo>(Triple);
6836 case llvm::Triple::RTEMS:
6837 return new RTEMSTargetInfo<Mips64EBTargetInfo>(Triple);
6838 case llvm::Triple::FreeBSD:
6839 return new FreeBSDTargetInfo<Mips64EBTargetInfo>(Triple);
6840 case llvm::Triple::NetBSD:
6841 return new NetBSDTargetInfo<Mips64EBTargetInfo>(Triple);
6842 case llvm::Triple::OpenBSD:
6843 return new OpenBSDTargetInfo<Mips64EBTargetInfo>(Triple);
6845 return new Mips64EBTargetInfo(Triple);
6848 case llvm::Triple::mips64el:
6850 case llvm::Triple::Linux:
6851 return new LinuxTargetInfo<Mips64ELTargetInfo>(Triple);
6852 case llvm::Triple::RTEMS:
6853 return new RTEMSTargetInfo<Mips64ELTargetInfo>(Triple);
6854 case llvm::Triple::FreeBSD:
6855 return new FreeBSDTargetInfo<Mips64ELTargetInfo>(Triple);
6856 case llvm::Triple::NetBSD:
6857 return new NetBSDTargetInfo<Mips64ELTargetInfo>(Triple);
6858 case llvm::Triple::OpenBSD:
6859 return new OpenBSDTargetInfo<Mips64ELTargetInfo>(Triple);
6861 return new Mips64ELTargetInfo(Triple);
6864 case llvm::Triple::le32:
6866 case llvm::Triple::NaCl:
6867 return new NaClTargetInfo<PNaClTargetInfo>(Triple);
6872 case llvm::Triple::le64:
6873 return new Le64TargetInfo(Triple);
6875 case llvm::Triple::ppc:
6876 if (Triple.isOSDarwin())
6877 return new DarwinPPC32TargetInfo(Triple);
6879 case llvm::Triple::Linux:
6880 return new LinuxTargetInfo<PPC32TargetInfo>(Triple);
6881 case llvm::Triple::FreeBSD:
6882 return new FreeBSDTargetInfo<PPC32TargetInfo>(Triple);
6883 case llvm::Triple::NetBSD:
6884 return new NetBSDTargetInfo<PPC32TargetInfo>(Triple);
6885 case llvm::Triple::OpenBSD:
6886 return new OpenBSDTargetInfo<PPC32TargetInfo>(Triple);
6887 case llvm::Triple::RTEMS:
6888 return new RTEMSTargetInfo<PPC32TargetInfo>(Triple);
6890 return new PPC32TargetInfo(Triple);
6893 case llvm::Triple::ppc64:
6894 if (Triple.isOSDarwin())
6895 return new DarwinPPC64TargetInfo(Triple);
6897 case llvm::Triple::Linux:
6898 return new LinuxTargetInfo<PPC64TargetInfo>(Triple);
6899 case llvm::Triple::Lv2:
6900 return new PS3PPUTargetInfo<PPC64TargetInfo>(Triple);
6901 case llvm::Triple::FreeBSD:
6902 return new FreeBSDTargetInfo<PPC64TargetInfo>(Triple);
6903 case llvm::Triple::NetBSD:
6904 return new NetBSDTargetInfo<PPC64TargetInfo>(Triple);
6906 return new PPC64TargetInfo(Triple);
6909 case llvm::Triple::ppc64le:
6911 case llvm::Triple::Linux:
6912 return new LinuxTargetInfo<PPC64TargetInfo>(Triple);
6913 case llvm::Triple::NetBSD:
6914 return new NetBSDTargetInfo<PPC64TargetInfo>(Triple);
6916 return new PPC64TargetInfo(Triple);
6919 case llvm::Triple::nvptx:
6920 return new NVPTX32TargetInfo(Triple);
6921 case llvm::Triple::nvptx64:
6922 return new NVPTX64TargetInfo(Triple);
6924 case llvm::Triple::amdgcn:
6925 case llvm::Triple::r600:
6926 return new R600TargetInfo(Triple);
6928 case llvm::Triple::sparc:
6930 case llvm::Triple::Linux:
6931 return new LinuxTargetInfo<SparcV8TargetInfo>(Triple);
6932 case llvm::Triple::Solaris:
6933 return new SolarisSparcV8TargetInfo(Triple);
6934 case llvm::Triple::NetBSD:
6935 return new NetBSDTargetInfo<SparcV8TargetInfo>(Triple);
6936 case llvm::Triple::OpenBSD:
6937 return new OpenBSDTargetInfo<SparcV8TargetInfo>(Triple);
6938 case llvm::Triple::RTEMS:
6939 return new RTEMSTargetInfo<SparcV8TargetInfo>(Triple);
6941 return new SparcV8TargetInfo(Triple);
6944 case llvm::Triple::sparcv9:
6946 case llvm::Triple::Linux:
6947 return new LinuxTargetInfo<SparcV9TargetInfo>(Triple);
6948 case llvm::Triple::Solaris:
6949 return new SolarisTargetInfo<SparcV9TargetInfo>(Triple);
6950 case llvm::Triple::NetBSD:
6951 return new NetBSDTargetInfo<SparcV9TargetInfo>(Triple);
6952 case llvm::Triple::OpenBSD:
6953 return new OpenBSDTargetInfo<SparcV9TargetInfo>(Triple);
6954 case llvm::Triple::FreeBSD:
6955 return new FreeBSDTargetInfo<SparcV9TargetInfo>(Triple);
6957 return new SparcV9TargetInfo(Triple);
6960 case llvm::Triple::systemz:
6962 case llvm::Triple::Linux:
6963 return new LinuxTargetInfo<SystemZTargetInfo>(Triple);
6965 return new SystemZTargetInfo(Triple);
6968 case llvm::Triple::tce:
6969 return new TCETargetInfo(Triple);
6971 case llvm::Triple::x86:
6972 if (Triple.isOSDarwin())
6973 return new DarwinI386TargetInfo(Triple);
6976 case llvm::Triple::Linux: {
6977 switch (Triple.getEnvironment()) {
6979 return new LinuxTargetInfo<X86_32TargetInfo>(Triple);
6980 case llvm::Triple::Android:
6981 return new AndroidX86_32TargetInfo(Triple);
6984 case llvm::Triple::DragonFly:
6985 return new DragonFlyBSDTargetInfo<X86_32TargetInfo>(Triple);
6986 case llvm::Triple::NetBSD:
6987 return new NetBSDI386TargetInfo(Triple);
6988 case llvm::Triple::OpenBSD:
6989 return new OpenBSDI386TargetInfo(Triple);
6990 case llvm::Triple::Bitrig:
6991 return new BitrigI386TargetInfo(Triple);
6992 case llvm::Triple::FreeBSD:
6993 return new FreeBSDTargetInfo<X86_32TargetInfo>(Triple);
6994 case llvm::Triple::KFreeBSD:
6995 return new KFreeBSDTargetInfo<X86_32TargetInfo>(Triple);
6996 case llvm::Triple::Minix:
6997 return new MinixTargetInfo<X86_32TargetInfo>(Triple);
6998 case llvm::Triple::Solaris:
6999 return new SolarisTargetInfo<X86_32TargetInfo>(Triple);
7000 case llvm::Triple::Win32: {
7001 switch (Triple.getEnvironment()) {
7003 return new X86_32TargetInfo(Triple);
7004 case llvm::Triple::Cygnus:
7005 return new CygwinX86_32TargetInfo(Triple);
7006 case llvm::Triple::GNU:
7007 return new MinGWX86_32TargetInfo(Triple);
7008 case llvm::Triple::Itanium:
7009 case llvm::Triple::MSVC:
7010 return new MicrosoftX86_32TargetInfo(Triple);
7013 case llvm::Triple::Haiku:
7014 return new HaikuX86_32TargetInfo(Triple);
7015 case llvm::Triple::RTEMS:
7016 return new RTEMSX86_32TargetInfo(Triple);
7017 case llvm::Triple::NaCl:
7018 return new NaClTargetInfo<X86_32TargetInfo>(Triple);
7020 return new X86_32TargetInfo(Triple);
7023 case llvm::Triple::x86_64:
7024 if (Triple.isOSDarwin() || Triple.isOSBinFormatMachO())
7025 return new DarwinX86_64TargetInfo(Triple);
7028 case llvm::Triple::CloudABI:
7029 return new CloudABITargetInfo<X86_64TargetInfo>(Triple);
7030 case llvm::Triple::Linux: {
7031 switch (Triple.getEnvironment()) {
7033 return new LinuxTargetInfo<X86_64TargetInfo>(Triple);
7034 case llvm::Triple::Android:
7035 return new AndroidX86_64TargetInfo(Triple);
7038 case llvm::Triple::DragonFly:
7039 return new DragonFlyBSDTargetInfo<X86_64TargetInfo>(Triple);
7040 case llvm::Triple::NetBSD:
7041 return new NetBSDTargetInfo<X86_64TargetInfo>(Triple);
7042 case llvm::Triple::OpenBSD:
7043 return new OpenBSDX86_64TargetInfo(Triple);
7044 case llvm::Triple::Bitrig:
7045 return new BitrigX86_64TargetInfo(Triple);
7046 case llvm::Triple::FreeBSD:
7047 return new FreeBSDTargetInfo<X86_64TargetInfo>(Triple);
7048 case llvm::Triple::KFreeBSD:
7049 return new KFreeBSDTargetInfo<X86_64TargetInfo>(Triple);
7050 case llvm::Triple::Solaris:
7051 return new SolarisTargetInfo<X86_64TargetInfo>(Triple);
7052 case llvm::Triple::Win32: {
7053 switch (Triple.getEnvironment()) {
7055 return new X86_64TargetInfo(Triple);
7056 case llvm::Triple::GNU:
7057 return new MinGWX86_64TargetInfo(Triple);
7058 case llvm::Triple::MSVC:
7059 return new MicrosoftX86_64TargetInfo(Triple);
7062 case llvm::Triple::NaCl:
7063 return new NaClTargetInfo<X86_64TargetInfo>(Triple);
7064 case llvm::Triple::PS4:
7065 return new PS4OSTargetInfo<X86_64TargetInfo>(Triple);
7067 return new X86_64TargetInfo(Triple);
7070 case llvm::Triple::spir: {
7071 if (Triple.getOS() != llvm::Triple::UnknownOS ||
7072 Triple.getEnvironment() != llvm::Triple::UnknownEnvironment)
7074 return new SPIR32TargetInfo(Triple);
7076 case llvm::Triple::spir64: {
7077 if (Triple.getOS() != llvm::Triple::UnknownOS ||
7078 Triple.getEnvironment() != llvm::Triple::UnknownEnvironment)
7080 return new SPIR64TargetInfo(Triple);
7090 llvm::Triple Triple(Opts->Triple);
7093 std::unique_ptr<TargetInfo> Target(AllocateTarget(Triple));
7095 Diags.Report(diag::err_target_unknown_triple) << Triple.str();