Lines Matching full:triple

1 //===--- Triple.cpp - Target triple helper class --------------------------===//
9 #include "llvm/TargetParser/Triple.h"
24 StringRef Triple::getArchTypeName(ArchType Kind) { in getArchTypeName()
94 StringRef Triple::getArchName(ArchType Kind, SubArchType SubArch) { in getArchName()
96 case Triple::mips: in getArchName()
100 case Triple::mipsel: in getArchName()
104 case Triple::mips64: in getArchName()
108 case Triple::mips64el: in getArchName()
112 case Triple::aarch64: in getArchName()
118 case Triple::dxil: in getArchName()
120 case Triple::NoSubArch: in getArchName()
121 case Triple::DXILSubArch_v1_0: in getArchName()
123 case Triple::DXILSubArch_v1_1: in getArchName()
125 case Triple::DXILSubArch_v1_2: in getArchName()
127 case Triple::DXILSubArch_v1_3: in getArchName()
129 case Triple::DXILSubArch_v1_4: in getArchName()
131 case Triple::DXILSubArch_v1_5: in getArchName()
133 case Triple::DXILSubArch_v1_6: in getArchName()
135 case Triple::DXILSubArch_v1_7: in getArchName()
137 case Triple::DXILSubArch_v1_8: in getArchName()
149 StringRef Triple::getArchTypePrefix(ArchType Kind) { in getArchTypePrefix()
239 StringRef Triple::getVendorTypeName(VendorType Kind) { in getVendorTypeName()
261 StringRef Triple::getOSTypeName(OSType Kind) { in getOSTypeName()
310 StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) { in getEnvironmentTypeName()
365 StringRef Triple::getObjectFormatTypeName(ObjectFormatType Kind) { in getObjectFormatTypeName()
380 static Triple::ArchType parseBPFArch(StringRef ArchName) { in parseBPFArch()
383 return Triple::bpfel; in parseBPFArch()
385 return Triple::bpfeb; in parseBPFArch()
387 return Triple::bpfeb; in parseBPFArch()
389 return Triple::bpfel; in parseBPFArch()
391 return Triple::UnknownArch; in parseBPFArch()
395 Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) { in getArchTypeForLLVMName()
396 Triple::ArchType BPFArch(parseBPFArch(Name)); in getArchTypeForLLVMName()
397 return StringSwitch<Triple::ArchType>(Name) in getArchTypeForLLVMName()
467 static Triple::ArchType parseARMArch(StringRef ArchName) { in parseARMArch()
471 Triple::ArchType arch = Triple::UnknownArch; in parseARMArch()
476 arch = Triple::arm; in parseARMArch()
479 arch = Triple::thumb; in parseARMArch()
482 arch = Triple::aarch64; in parseARMArch()
492 arch = Triple::armeb; in parseARMArch()
495 arch = Triple::thumbeb; in parseARMArch()
498 arch = Triple::aarch64_be; in parseARMArch()
512 return Triple::UnknownArch; in parseARMArch()
517 return Triple::UnknownArch; in parseARMArch()
524 return Triple::thumbeb; in parseARMArch()
526 return Triple::thumb; in parseARMArch()
532 static Triple::ArchType parseArch(StringRef ArchName) { in parseArch()
534 StringSwitch<Triple::ArchType>(ArchName) in parseArch()
535 .Cases("i386", "i486", "i586", "i686", Triple::x86) in parseArch()
537 .Cases("i786", "i886", "i986", Triple::x86) in parseArch()
538 .Cases("amd64", "x86_64", "x86_64h", Triple::x86_64) in parseArch()
539 .Cases("powerpc", "powerpcspe", "ppc", "ppc32", Triple::ppc) in parseArch()
540 .Cases("powerpcle", "ppcle", "ppc32le", Triple::ppcle) in parseArch()
541 .Cases("powerpc64", "ppu", "ppc64", Triple::ppc64) in parseArch()
542 .Cases("powerpc64le", "ppc64le", Triple::ppc64le) in parseArch()
543 .Case("xscale", Triple::arm) in parseArch()
544 .Case("xscaleeb", Triple::armeb) in parseArch()
545 .Case("aarch64", Triple::aarch64) in parseArch()
546 .Case("aarch64_be", Triple::aarch64_be) in parseArch()
547 .Case("aarch64_32", Triple::aarch64_32) in parseArch()
548 .Case("arc", Triple::arc) in parseArch()
549 .Case("arm64", Triple::aarch64) in parseArch()
550 .Case("arm64_32", Triple::aarch64_32) in parseArch()
551 .Case("arm64e", Triple::aarch64) in parseArch()
552 .Case("arm64ec", Triple::aarch64) in parseArch()
553 .Case("arm", Triple::arm) in parseArch()
554 .Case("armeb", Triple::armeb) in parseArch()
555 .Case("thumb", Triple::thumb) in parseArch()
556 .Case("thumbeb", Triple::thumbeb) in parseArch()
557 .Case("avr", Triple::avr) in parseArch()
558 .Case("m68k", Triple::m68k) in parseArch()
559 .Case("msp430", Triple::msp430) in parseArch()
561 Triple::mips) in parseArch()
563 Triple::mipsel) in parseArch()
565 "mipsn32r6", Triple::mips64) in parseArch()
567 "mipsn32r6el", Triple::mips64el) in parseArch()
568 .Case("r600", Triple::r600) in parseArch()
569 .Case("amdgcn", Triple::amdgcn) in parseArch()
570 .Case("riscv32", Triple::riscv32) in parseArch()
571 .Case("riscv64", Triple::riscv64) in parseArch()
572 .Case("hexagon", Triple::hexagon) in parseArch()
573 .Cases("s390x", "systemz", Triple::systemz) in parseArch()
574 .Case("sparc", Triple::sparc) in parseArch()
575 .Case("sparcel", Triple::sparcel) in parseArch()
576 .Cases("sparcv9", "sparc64", Triple::sparcv9) in parseArch()
577 .Case("tce", Triple::tce) in parseArch()
578 .Case("tcele", Triple::tcele) in parseArch()
579 .Case("xcore", Triple::xcore) in parseArch()
580 .Case("nvptx", Triple::nvptx) in parseArch()
581 .Case("nvptx64", Triple::nvptx64) in parseArch()
582 .Case("le32", Triple::le32) in parseArch()
583 .Case("le64", Triple::le64) in parseArch()
584 .Case("amdil", Triple::amdil) in parseArch()
585 .Case("amdil64", Triple::amdil64) in parseArch()
586 .Case("hsail", Triple::hsail) in parseArch()
587 .Case("hsail64", Triple::hsail64) in parseArch()
588 .Case("spir", Triple::spir) in parseArch()
589 .Case("spir64", Triple::spir64) in parseArch()
590 .Cases("spirv", "spirv1.5", "spirv1.6", Triple::spirv) in parseArch()
593 "spirv32v1.6", Triple::spirv32) in parseArch()
596 "spirv64v1.6", Triple::spirv64) in parseArch()
597 .StartsWith("kalimba", Triple::kalimba) in parseArch()
598 .Case("lanai", Triple::lanai) in parseArch()
599 .Case("renderscript32", Triple::renderscript32) in parseArch()
600 .Case("renderscript64", Triple::renderscript64) in parseArch()
601 .Case("shave", Triple::shave) in parseArch()
602 .Case("ve", Triple::ve) in parseArch()
603 .Case("wasm32", Triple::wasm32) in parseArch()
604 .Case("wasm64", Triple::wasm64) in parseArch()
605 .Case("csky", Triple::csky) in parseArch()
606 .Case("loongarch32", Triple::loongarch32) in parseArch()
607 .Case("loongarch64", Triple::loongarch64) in parseArch()
610 Triple::dxil) in parseArch()
611 .Case("xtensa", Triple::xtensa) in parseArch()
612 .Default(Triple::UnknownArch); in parseArch()
616 if (AT == Triple::UnknownArch) { in parseArch()
627 static Triple::VendorType parseVendor(StringRef VendorName) { in parseVendor()
628 return StringSwitch<Triple::VendorType>(VendorName) in parseVendor()
629 .Case("apple", Triple::Apple) in parseVendor()
630 .Case("pc", Triple::PC) in parseVendor()
631 .Case("scei", Triple::SCEI) in parseVendor()
632 .Case("sie", Triple::SCEI) in parseVendor()
633 .Case("fsl", Triple::Freescale) in parseVendor()
634 .Case("ibm", Triple::IBM) in parseVendor()
635 .Case("img", Triple::ImaginationTechnologies) in parseVendor()
636 .Case("mti", Triple::MipsTechnologies) in parseVendor()
637 .Case("nvidia", Triple::NVIDIA) in parseVendor()
638 .Case("csr", Triple::CSR) in parseVendor()
639 .Case("amd", Triple::AMD) in parseVendor()
640 .Case("mesa", Triple::Mesa) in parseVendor()
641 .Case("suse", Triple::SUSE) in parseVendor()
642 .Case("oe", Triple::OpenEmbedded) in parseVendor()
643 .Default(Triple::UnknownVendor); in parseVendor()
646 static Triple::OSType parseOS(StringRef OSName) { in parseOS()
647 return StringSwitch<Triple::OSType>(OSName) in parseOS()
648 .StartsWith("darwin", Triple::Darwin) in parseOS()
649 .StartsWith("dragonfly", Triple::DragonFly) in parseOS()
650 .StartsWith("freebsd", Triple::FreeBSD) in parseOS()
651 .StartsWith("fuchsia", Triple::Fuchsia) in parseOS()
652 .StartsWith("ios", Triple::IOS) in parseOS()
653 .StartsWith("kfreebsd", Triple::KFreeBSD) in parseOS()
654 .StartsWith("linux", Triple::Linux) in parseOS()
655 .StartsWith("lv2", Triple::Lv2) in parseOS()
656 .StartsWith("macos", Triple::MacOSX) in parseOS()
657 .StartsWith("netbsd", Triple::NetBSD) in parseOS()
658 .StartsWith("openbsd", Triple::OpenBSD) in parseOS()
659 .StartsWith("solaris", Triple::Solaris) in parseOS()
660 .StartsWith("uefi", Triple::UEFI) in parseOS()
661 .StartsWith("win32", Triple::Win32) in parseOS()
662 .StartsWith("windows", Triple::Win32) in parseOS()
663 .StartsWith("zos", Triple::ZOS) in parseOS()
664 .StartsWith("haiku", Triple::Haiku) in parseOS()
665 .StartsWith("rtems", Triple::RTEMS) in parseOS()
666 .StartsWith("nacl", Triple::NaCl) in parseOS()
667 .StartsWith("aix", Triple::AIX) in parseOS()
668 .StartsWith("cuda", Triple::CUDA) in parseOS()
669 .StartsWith("nvcl", Triple::NVCL) in parseOS()
670 .StartsWith("amdhsa", Triple::AMDHSA) in parseOS()
671 .StartsWith("ps4", Triple::PS4) in parseOS()
672 .StartsWith("ps5", Triple::PS5) in parseOS()
673 .StartsWith("elfiamcu", Triple::ELFIAMCU) in parseOS()
674 .StartsWith("tvos", Triple::TvOS) in parseOS()
675 .StartsWith("watchos", Triple::WatchOS) in parseOS()
676 .StartsWith("bridgeos", Triple::BridgeOS) in parseOS()
677 .StartsWith("driverkit", Triple::DriverKit) in parseOS()
678 .StartsWith("xros", Triple::XROS) in parseOS()
679 .StartsWith("visionos", Triple::XROS) in parseOS()
680 .StartsWith("mesa3d", Triple::Mesa3D) in parseOS()
681 .StartsWith("amdpal", Triple::AMDPAL) in parseOS()
682 .StartsWith("hermit", Triple::HermitCore) in parseOS()
683 .StartsWith("hurd", Triple::Hurd) in parseOS()
684 .StartsWith("wasi", Triple::WASI) in parseOS()
685 .StartsWith("emscripten", Triple::Emscripten) in parseOS()
686 .StartsWith("shadermodel", Triple::ShaderModel) in parseOS()
687 .StartsWith("liteos", Triple::LiteOS) in parseOS()
688 .StartsWith("serenity", Triple::Serenity) in parseOS()
689 .StartsWith("vulkan", Triple::Vulkan) in parseOS()
690 .Default(Triple::UnknownOS); in parseOS()
693 static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) { in parseEnvironment()
694 return StringSwitch<Triple::EnvironmentType>(EnvironmentName) in parseEnvironment()
695 .StartsWith("eabihf", Triple::EABIHF) in parseEnvironment()
696 .StartsWith("eabi", Triple::EABI) in parseEnvironment()
697 .StartsWith("gnuabin32", Triple::GNUABIN32) in parseEnvironment()
698 .StartsWith("gnuabi64", Triple::GNUABI64) in parseEnvironment()
699 .StartsWith("gnueabihft64", Triple::GNUEABIHFT64) in parseEnvironment()
700 .StartsWith("gnueabihf", Triple::GNUEABIHF) in parseEnvironment()
701 .StartsWith("gnueabit64", Triple::GNUEABIT64) in parseEnvironment()
702 .StartsWith("gnueabi", Triple::GNUEABI) in parseEnvironment()
703 .StartsWith("gnuf32", Triple::GNUF32) in parseEnvironment()
704 .StartsWith("gnuf64", Triple::GNUF64) in parseEnvironment()
705 .StartsWith("gnusf", Triple::GNUSF) in parseEnvironment()
706 .StartsWith("gnux32", Triple::GNUX32) in parseEnvironment()
707 .StartsWith("gnu_ilp32", Triple::GNUILP32) in parseEnvironment()
708 .StartsWith("code16", Triple::CODE16) in parseEnvironment()
709 .StartsWith("gnut64", Triple::GNUT64) in parseEnvironment()
710 .StartsWith("gnu", Triple::GNU) in parseEnvironment()
711 .StartsWith("android", Triple::Android) in parseEnvironment()
712 .StartsWith("musleabihf", Triple::MuslEABIHF) in parseEnvironment()
713 .StartsWith("musleabi", Triple::MuslEABI) in parseEnvironment()
714 .StartsWith("muslx32", Triple::MuslX32) in parseEnvironment()
715 .StartsWith("musl", Triple::Musl) in parseEnvironment()
716 .StartsWith("msvc", Triple::MSVC) in parseEnvironment()
717 .StartsWith("itanium", Triple::Itanium) in parseEnvironment()
718 .StartsWith("cygnus", Triple::Cygnus) in parseEnvironment()
719 .StartsWith("coreclr", Triple::CoreCLR) in parseEnvironment()
720 .StartsWith("simulator", Triple::Simulator) in parseEnvironment()
721 .StartsWith("macabi", Triple::MacABI) in parseEnvironment()
722 .StartsWith("pixel", Triple::Pixel) in parseEnvironment()
723 .StartsWith("vertex", Triple::Vertex) in parseEnvironment()
724 .StartsWith("geometry", Triple::Geometry) in parseEnvironment()
725 .StartsWith("hull", Triple::Hull) in parseEnvironment()
726 .StartsWith("domain", Triple::Domain) in parseEnvironment()
727 .StartsWith("compute", Triple::Compute) in parseEnvironment()
728 .StartsWith("library", Triple::Library) in parseEnvironment()
729 .StartsWith("raygeneration", Triple::RayGeneration) in parseEnvironment()
730 .StartsWith("intersection", Triple::Intersection) in parseEnvironment()
731 .StartsWith("anyhit", Triple::AnyHit) in parseEnvironment()
732 .StartsWith("closesthit", Triple::ClosestHit) in parseEnvironment()
733 .StartsWith("miss", Triple::Miss) in parseEnvironment()
734 .StartsWith("callable", Triple::Callable) in parseEnvironment()
735 .StartsWith("mesh", Triple::Mesh) in parseEnvironment()
736 .StartsWith("amplification", Triple::Amplification) in parseEnvironment()
737 .StartsWith("opencl", Triple::OpenCL) in parseEnvironment()
738 .StartsWith("ohos", Triple::OpenHOS) in parseEnvironment()
739 .StartsWith("pauthtest", Triple::PAuthTest) in parseEnvironment()
740 .Default(Triple::UnknownEnvironment); in parseEnvironment()
743 static Triple::ObjectFormatType parseFormat(StringRef EnvironmentName) { in parseFormat()
744 return StringSwitch<Triple::ObjectFormatType>(EnvironmentName) in parseFormat()
747 .EndsWith("xcoff", Triple::XCOFF) in parseFormat()
748 .EndsWith("coff", Triple::COFF) in parseFormat()
749 .EndsWith("elf", Triple::ELF) in parseFormat()
750 .EndsWith("goff", Triple::GOFF) in parseFormat()
751 .EndsWith("macho", Triple::MachO) in parseFormat()
752 .EndsWith("wasm", Triple::Wasm) in parseFormat()
753 .EndsWith("spirv", Triple::SPIRV) in parseFormat()
754 .Default(Triple::UnknownObjectFormat); in parseFormat()
757 static Triple::SubArchType parseSubArch(StringRef SubArchName) { in parseSubArch()
760 return Triple::MipsSubArch_r6; in parseSubArch()
763 return Triple::PPCSubArch_spe; in parseSubArch()
766 return Triple::AArch64SubArch_arm64e; in parseSubArch()
769 return Triple::AArch64SubArch_arm64ec; in parseSubArch()
772 return StringSwitch<Triple::SubArchType>(SubArchName) in parseSubArch()
773 .EndsWith("v1.0", Triple::SPIRVSubArch_v10) in parseSubArch()
774 .EndsWith("v1.1", Triple::SPIRVSubArch_v11) in parseSubArch()
775 .EndsWith("v1.2", Triple::SPIRVSubArch_v12) in parseSubArch()
776 .EndsWith("v1.3", Triple::SPIRVSubArch_v13) in parseSubArch()
777 .EndsWith("v1.4", Triple::SPIRVSubArch_v14) in parseSubArch()
778 .EndsWith("v1.5", Triple::SPIRVSubArch_v15) in parseSubArch()
779 .EndsWith("v1.6", Triple::SPIRVSubArch_v16) in parseSubArch()
780 .Default(Triple::NoSubArch); in parseSubArch()
783 return StringSwitch<Triple::SubArchType>(SubArchName) in parseSubArch()
784 .EndsWith("v1.0", Triple::DXILSubArch_v1_0) in parseSubArch()
785 .EndsWith("v1.1", Triple::DXILSubArch_v1_1) in parseSubArch()
786 .EndsWith("v1.2", Triple::DXILSubArch_v1_2) in parseSubArch()
787 .EndsWith("v1.3", Triple::DXILSubArch_v1_3) in parseSubArch()
788 .EndsWith("v1.4", Triple::DXILSubArch_v1_4) in parseSubArch()
789 .EndsWith("v1.5", Triple::DXILSubArch_v1_5) in parseSubArch()
790 .EndsWith("v1.6", Triple::DXILSubArch_v1_6) in parseSubArch()
791 .EndsWith("v1.7", Triple::DXILSubArch_v1_7) in parseSubArch()
792 .EndsWith("v1.8", Triple::DXILSubArch_v1_8) in parseSubArch()
793 .Default(Triple::NoSubArch); in parseSubArch()
799 return StringSwitch<Triple::SubArchType>(SubArchName) in parseSubArch()
800 .EndsWith("kalimba3", Triple::KalimbaSubArch_v3) in parseSubArch()
801 .EndsWith("kalimba4", Triple::KalimbaSubArch_v4) in parseSubArch()
802 .EndsWith("kalimba5", Triple::KalimbaSubArch_v5) in parseSubArch()
803 .Default(Triple::NoSubArch); in parseSubArch()
808 return Triple::NoSubArch; in parseSubArch()
810 return Triple::ARMSubArch_v4t; in parseSubArch()
812 return Triple::ARMSubArch_v5; in parseSubArch()
818 return Triple::ARMSubArch_v5te; in parseSubArch()
820 return Triple::ARMSubArch_v6; in parseSubArch()
823 return Triple::ARMSubArch_v6k; in parseSubArch()
825 return Triple::ARMSubArch_v6t2; in parseSubArch()
827 return Triple::ARMSubArch_v6m; in parseSubArch()
830 return Triple::ARMSubArch_v7; in parseSubArch()
832 return Triple::ARMSubArch_v7ve; in parseSubArch()
834 return Triple::ARMSubArch_v7k; in parseSubArch()
836 return Triple::ARMSubArch_v7m; in parseSubArch()
838 return Triple::ARMSubArch_v7s; in parseSubArch()
840 return Triple::ARMSubArch_v7em; in parseSubArch()
842 return Triple::ARMSubArch_v8; in parseSubArch()
844 return Triple::ARMSubArch_v8_1a; in parseSubArch()
846 return Triple::ARMSubArch_v8_2a; in parseSubArch()
848 return Triple::ARMSubArch_v8_3a; in parseSubArch()
850 return Triple::ARMSubArch_v8_4a; in parseSubArch()
852 return Triple::ARMSubArch_v8_5a; in parseSubArch()
854 return Triple::ARMSubArch_v8_6a; in parseSubArch()
856 return Triple::ARMSubArch_v8_7a; in parseSubArch()
858 return Triple::ARMSubArch_v8_8a; in parseSubArch()
860 return Triple::ARMSubArch_v8_9a; in parseSubArch()
862 return Triple::ARMSubArch_v9; in parseSubArch()
864 return Triple::ARMSubArch_v9_1a; in parseSubArch()
866 return Triple::ARMSubArch_v9_2a; in parseSubArch()
868 return Triple::ARMSubArch_v9_3a; in parseSubArch()
870 return Triple::ARMSubArch_v9_4a; in parseSubArch()
872 return Triple::ARMSubArch_v9_5a; in parseSubArch()
874 return Triple::ARMSubArch_v8r; in parseSubArch()
876 return Triple::ARMSubArch_v8m_baseline; in parseSubArch()
878 return Triple::ARMSubArch_v8m_mainline; in parseSubArch()
880 return Triple::ARMSubArch_v8_1m_mainline; in parseSubArch()
882 return Triple::NoSubArch; in parseSubArch()
886 static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { in getDefaultFormat()
888 case Triple::UnknownArch: in getDefaultFormat()
889 case Triple::aarch64: in getDefaultFormat()
890 case Triple::aarch64_32: in getDefaultFormat()
891 case Triple::arm: in getDefaultFormat()
892 case Triple::thumb: in getDefaultFormat()
893 case Triple::x86: in getDefaultFormat()
894 case Triple::x86_64: in getDefaultFormat()
896 case Triple::Win32: in getDefaultFormat()
897 case Triple::UEFI: in getDefaultFormat()
898 return Triple::COFF; in getDefaultFormat()
900 return T.isOSDarwin() ? Triple::MachO : Triple::ELF; in getDefaultFormat()
902 case Triple::aarch64_be: in getDefaultFormat()
903 case Triple::amdgcn: in getDefaultFormat()
904 case Triple::amdil64: in getDefaultFormat()
905 case Triple::amdil: in getDefaultFormat()
906 case Triple::arc: in getDefaultFormat()
907 case Triple::armeb: in getDefaultFormat()
908 case Triple::avr: in getDefaultFormat()
909 case Triple::bpfeb: in getDefaultFormat()
910 case Triple::bpfel: in getDefaultFormat()
911 case Triple::csky: in getDefaultFormat()
912 case Triple::hexagon: in getDefaultFormat()
913 case Triple::hsail64: in getDefaultFormat()
914 case Triple::hsail: in getDefaultFormat()
915 case Triple::kalimba: in getDefaultFormat()
916 case Triple::lanai: in getDefaultFormat()
917 case Triple::le32: in getDefaultFormat()
918 case Triple::le64: in getDefaultFormat()
919 case Triple::loongarch32: in getDefaultFormat()
920 case Triple::loongarch64: in getDefaultFormat()
921 case Triple::m68k: in getDefaultFormat()
922 case Triple::mips64: in getDefaultFormat()
923 case Triple::mips64el: in getDefaultFormat()
924 case Triple::mips: in getDefaultFormat()
925 case Triple::mipsel: in getDefaultFormat()
926 case Triple::msp430: in getDefaultFormat()
927 case Triple::nvptx64: in getDefaultFormat()
928 case Triple::nvptx: in getDefaultFormat()
929 case Triple::ppc64le: in getDefaultFormat()
930 case Triple::ppcle: in getDefaultFormat()
931 case Triple::r600: in getDefaultFormat()
932 case Triple::renderscript32: in getDefaultFormat()
933 case Triple::renderscript64: in getDefaultFormat()
934 case Triple::riscv32: in getDefaultFormat()
935 case Triple::riscv64: in getDefaultFormat()
936 case Triple::shave: in getDefaultFormat()
937 case Triple::sparc: in getDefaultFormat()
938 case Triple::sparcel: in getDefaultFormat()
939 case Triple::sparcv9: in getDefaultFormat()
940 case Triple::spir64: in getDefaultFormat()
941 case Triple::spir: in getDefaultFormat()
942 case Triple::tce: in getDefaultFormat()
943 case Triple::tcele: in getDefaultFormat()
944 case Triple::thumbeb: in getDefaultFormat()
945 case Triple::ve: in getDefaultFormat()
946 case Triple::xcore: in getDefaultFormat()
947 case Triple::xtensa: in getDefaultFormat()
948 return Triple::ELF; in getDefaultFormat()
950 case Triple::ppc64: in getDefaultFormat()
951 case Triple::ppc: in getDefaultFormat()
953 return Triple::XCOFF; in getDefaultFormat()
955 return Triple::MachO; in getDefaultFormat()
956 return Triple::ELF; in getDefaultFormat()
958 case Triple::systemz: in getDefaultFormat()
960 return Triple::GOFF; in getDefaultFormat()
961 return Triple::ELF; in getDefaultFormat()
963 case Triple::wasm32: in getDefaultFormat()
964 case Triple::wasm64: in getDefaultFormat()
965 return Triple::Wasm; in getDefaultFormat()
967 case Triple::spirv: in getDefaultFormat()
968 case Triple::spirv32: in getDefaultFormat()
969 case Triple::spirv64: in getDefaultFormat()
970 return Triple::SPIRV; in getDefaultFormat()
972 case Triple::dxil: in getDefaultFormat()
973 return Triple::DXContainer; in getDefaultFormat()
978 /// Construct a triple from the string representation provided.
982 Triple::Triple(const Twine &Str) in Triple() function in Triple
1003 StringSwitch<Triple::EnvironmentType>(Components[0]) in Triple()
1004 .StartsWith("mipsn32", Triple::GNUABIN32) in Triple()
1005 .StartsWith("mips64", Triple::GNUABI64) in Triple()
1006 .StartsWith("mipsisa64", Triple::GNUABI64) in Triple()
1007 .StartsWith("mipsisa32", Triple::GNU) in Triple()
1008 .Cases("mips", "mipsel", "mipsr6", "mipsr6el", Triple::GNU) in Triple()
1016 /// Construct a triple from string representations of the architecture,
1022 Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr) in Triple() function in Triple
1028 Environment(), ObjectFormat(Triple::UnknownObjectFormat) { in Triple()
1032 /// Construct a triple from string representations of the architecture,
1037 Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr, in Triple() function in Triple
1047 if (ObjectFormat == Triple::UnknownObjectFormat) in Triple()
1064 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_0); in getDXILArchNameFromShaderModel()
1066 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_1); in getDXILArchNameFromShaderModel()
1068 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_2); in getDXILArchNameFromShaderModel()
1070 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_3); in getDXILArchNameFromShaderModel()
1072 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_4); in getDXILArchNameFromShaderModel()
1074 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_5); in getDXILArchNameFromShaderModel()
1076 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_6); in getDXILArchNameFromShaderModel()
1078 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_7); in getDXILArchNameFromShaderModel()
1080 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_8); in getDXILArchNameFromShaderModel()
1090 return Triple::getArchName(Triple::dxil, Triple::LatestDXILSubArch); in getDXILArchNameFromShaderModel()
1095 return Triple::getArchName(Triple::dxil, Triple::DXILSubArch_v1_0); in getDXILArchNameFromShaderModel()
1098 std::string Triple::normalize(StringRef Str) { in normalize()
1235 // If "none" is in the middle component in a three-component triple, treat it in normalize()
1249 if (Environment == Triple::Android && in normalize()
1261 if (Vendor == Triple::SUSE && Environment == llvm::Triple::GNUEABI) in normalize()
1264 if (OS == Triple::Win32) { in normalize()
1268 if (ObjectFormat == UnknownObjectFormat || ObjectFormat == Triple::COFF) in normalize()
1283 (OS == Triple::Win32 && Environment != UnknownEnvironment)) { in normalize()
1284 if (ObjectFormat != UnknownObjectFormat && ObjectFormat != Triple::COFF) { in normalize()
1290 // Normalize DXIL triple if it does not include DXIL version number. in normalize()
1292 // Model version specified in target triple, if any. Prior to decoupling DXIL in normalize()
1299 // Add DXIL version only if shadermodel is specified in the triple in normalize()
1300 if (OS == Triple::ShaderModel) { in normalize()
1308 StringRef Triple::getArchName() const { in getArchName()
1312 StringRef Triple::getVendorName() const { in getVendorName()
1317 StringRef Triple::getOSName() const { in getOSName()
1323 StringRef Triple::getEnvironmentName() const { in getEnvironmentName()
1329 StringRef Triple::getOSAndEnvironmentName() const { in getOSAndEnvironmentName()
1340 VersionTuple Triple::getEnvironmentVersion() const { in getEnvironmentVersion()
1344 StringRef Triple::getEnvironmentVersionString() const { in getEnvironmentVersionString()
1357 if (getObjectFormat() != Triple::UnknownObjectFormat) { in getEnvironmentVersionString()
1367 VersionTuple Triple::getOSVersion() const { in getOSVersion()
1369 // Assume that the OS portion of the triple starts with the canonical name. in getOSVersion()
1381 bool Triple::getMacOSXVersion(VersionTuple &Version) const { in getMacOSXVersion()
1385 default: llvm_unreachable("unexpected OS for Darwin triple"); in getMacOSXVersion()
1412 // Ignore the version from the triple. This is only handled because the in getMacOSXVersion()
1426 VersionTuple Triple::getiOSVersion() const { in getiOSVersion()
1428 default: llvm_unreachable("unexpected OS for Darwin triple"); in getiOSVersion()
1431 // Ignore the version from the triple. This is only handled because the in getiOSVersion()
1450 llvm_unreachable("conflicting triple info"); in getiOSVersion()
1456 VersionTuple Triple::getWatchOSVersion() const { in getWatchOSVersion()
1458 default: llvm_unreachable("unexpected OS for Darwin triple"); in getWatchOSVersion()
1461 // Ignore the version from the triple. This is only handled because the in getWatchOSVersion()
1473 llvm_unreachable("conflicting triple info"); in getWatchOSVersion()
1481 VersionTuple Triple::getDriverKitVersion() const { in getDriverKitVersion()
1484 llvm_unreachable("unexpected OS for Darwin triple"); in getDriverKitVersion()
1493 VersionTuple Triple::getVulkanVersion() const { in getVulkanVersion()
1495 llvm_unreachable("invalid Vulkan SPIR-V triple"); in getVulkanVersion()
1518 VersionTuple Triple::getDXILVersion() const { in getDXILVersion()
1520 llvm_unreachable("invalid DXIL triple"); in getDXILVersion()
1531 void Triple::setTriple(const Twine &Str) { in setTriple()
1532 *this = Triple(Str); in setTriple()
1535 void Triple::setArch(ArchType Kind, SubArchType SubArch) { in setArch()
1539 void Triple::setVendor(VendorType Kind) { in setVendor()
1543 void Triple::setOS(OSType Kind) { in setOS()
1547 void Triple::setEnvironment(EnvironmentType Kind) { in setEnvironment()
1555 void Triple::setObjectFormat(ObjectFormatType Kind) { in setObjectFormat()
1563 void Triple::setArchName(StringRef Str) { in setArchName()
1565 SmallString<64> Triple; in setArchName() local
1566 Triple += Str; in setArchName()
1567 Triple += "-"; in setArchName()
1568 Triple += getVendorName(); in setArchName()
1569 Triple += "-"; in setArchName()
1570 Triple += getOSAndEnvironmentName(); in setArchName()
1571 setTriple(Triple); in setArchName()
1574 void Triple::setVendorName(StringRef Str) { in setVendorName()
1578 void Triple::setOSName(StringRef Str) { in setOSName()
1586 void Triple::setEnvironmentName(StringRef Str) { in setEnvironmentName()
1591 void Triple::setOSAndEnvironmentName(StringRef Str) { in setOSAndEnvironmentName()
1595 unsigned Triple::getArchPointerBitWidth(llvm::Triple::ArchType Arch) { in getArchPointerBitWidth()
1597 case llvm::Triple::UnknownArch: in getArchPointerBitWidth()
1600 case llvm::Triple::avr: in getArchPointerBitWidth()
1601 case llvm::Triple::msp430: in getArchPointerBitWidth()
1604 case llvm::Triple::aarch64_32: in getArchPointerBitWidth()
1605 case llvm::Triple::amdil: in getArchPointerBitWidth()
1606 case llvm::Triple::arc: in getArchPointerBitWidth()
1607 case llvm::Triple::arm: in getArchPointerBitWidth()
1608 case llvm::Triple::armeb: in getArchPointerBitWidth()
1609 case llvm::Triple::csky: in getArchPointerBitWidth()
1610 case llvm::Triple::dxil: in getArchPointerBitWidth()
1611 case llvm::Triple::hexagon: in getArchPointerBitWidth()
1612 case llvm::Triple::hsail: in getArchPointerBitWidth()
1613 case llvm::Triple::kalimba: in getArchPointerBitWidth()
1614 case llvm::Triple::lanai: in getArchPointerBitWidth()
1615 case llvm::Triple::le32: in getArchPointerBitWidth()
1616 case llvm::Triple::loongarch32: in getArchPointerBitWidth()
1617 case llvm::Triple::m68k: in getArchPointerBitWidth()
1618 case llvm::Triple::mips: in getArchPointerBitWidth()
1619 case llvm::Triple::mipsel: in getArchPointerBitWidth()
1620 case llvm::Triple::nvptx: in getArchPointerBitWidth()
1621 case llvm::Triple::ppc: in getArchPointerBitWidth()
1622 case llvm::Triple::ppcle: in getArchPointerBitWidth()
1623 case llvm::Triple::r600: in getArchPointerBitWidth()
1624 case llvm::Triple::renderscript32: in getArchPointerBitWidth()
1625 case llvm::Triple::riscv32: in getArchPointerBitWidth()
1626 case llvm::Triple::shave: in getArchPointerBitWidth()
1627 case llvm::Triple::sparc: in getArchPointerBitWidth()
1628 case llvm::Triple::sparcel: in getArchPointerBitWidth()
1629 case llvm::Triple::spir: in getArchPointerBitWidth()
1630 case llvm::Triple::spirv32: in getArchPointerBitWidth()
1631 case llvm::Triple::tce: in getArchPointerBitWidth()
1632 case llvm::Triple::tcele: in getArchPointerBitWidth()
1633 case llvm::Triple::thumb: in getArchPointerBitWidth()
1634 case llvm::Triple::thumbeb: in getArchPointerBitWidth()
1635 case llvm::Triple::wasm32: in getArchPointerBitWidth()
1636 case llvm::Triple::x86: in getArchPointerBitWidth()
1637 case llvm::Triple::xcore: in getArchPointerBitWidth()
1638 case llvm::Triple::xtensa: in getArchPointerBitWidth()
1641 case llvm::Triple::aarch64: in getArchPointerBitWidth()
1642 case llvm::Triple::aarch64_be: in getArchPointerBitWidth()
1643 case llvm::Triple::amdgcn: in getArchPointerBitWidth()
1644 case llvm::Triple::amdil64: in getArchPointerBitWidth()
1645 case llvm::Triple::bpfeb: in getArchPointerBitWidth()
1646 case llvm::Triple::bpfel: in getArchPointerBitWidth()
1647 case llvm::Triple::hsail64: in getArchPointerBitWidth()
1648 case llvm::Triple::le64: in getArchPointerBitWidth()
1649 case llvm::Triple::loongarch64: in getArchPointerBitWidth()
1650 case llvm::Triple::mips64: in getArchPointerBitWidth()
1651 case llvm::Triple::mips64el: in getArchPointerBitWidth()
1652 case llvm::Triple::nvptx64: in getArchPointerBitWidth()
1653 case llvm::Triple::ppc64: in getArchPointerBitWidth()
1654 case llvm::Triple::ppc64le: in getArchPointerBitWidth()
1655 case llvm::Triple::renderscript64: in getArchPointerBitWidth()
1656 case llvm::Triple::riscv64: in getArchPointerBitWidth()
1657 case llvm::Triple::sparcv9: in getArchPointerBitWidth()
1658 case llvm::Triple::spirv: in getArchPointerBitWidth()
1659 case llvm::Triple::spir64: in getArchPointerBitWidth()
1660 case llvm::Triple::spirv64: in getArchPointerBitWidth()
1661 case llvm::Triple::systemz: in getArchPointerBitWidth()
1662 case llvm::Triple::ve: in getArchPointerBitWidth()
1663 case llvm::Triple::wasm64: in getArchPointerBitWidth()
1664 case llvm::Triple::x86_64: in getArchPointerBitWidth()
1670 bool Triple::isArch64Bit() const { in isArch64Bit()
1674 bool Triple::isArch32Bit() const { in isArch32Bit()
1678 bool Triple::isArch16Bit() const { in isArch16Bit()
1682 Triple Triple::get32BitArchVariant() const { in get32BitArchVariant()
1683 Triple T(*this); in get32BitArchVariant()
1685 case Triple::UnknownArch: in get32BitArchVariant()
1686 case Triple::amdgcn: in get32BitArchVariant()
1687 case Triple::avr: in get32BitArchVariant()
1688 case Triple::bpfeb: in get32BitArchVariant()
1689 case Triple::bpfel: in get32BitArchVariant()
1690 case Triple::msp430: in get32BitArchVariant()
1691 case Triple::systemz: in get32BitArchVariant()
1692 case Triple::ve: in get32BitArchVariant()
1696 case Triple::aarch64_32: in get32BitArchVariant()
1697 case Triple::amdil: in get32BitArchVariant()
1698 case Triple::arc: in get32BitArchVariant()
1699 case Triple::arm: in get32BitArchVariant()
1700 case Triple::armeb: in get32BitArchVariant()
1701 case Triple::csky: in get32BitArchVariant()
1702 case Triple::dxil: in get32BitArchVariant()
1703 case Triple::hexagon: in get32BitArchVariant()
1704 case Triple::hsail: in get32BitArchVariant()
1705 case Triple::kalimba: in get32BitArchVariant()
1706 case Triple::lanai: in get32BitArchVariant()
1707 case Triple::le32: in get32BitArchVariant()
1708 case Triple::loongarch32: in get32BitArchVariant()
1709 case Triple::m68k: in get32BitArchVariant()
1710 case Triple::mips: in get32BitArchVariant()
1711 case Triple::mipsel: in get32BitArchVariant()
1712 case Triple::nvptx: in get32BitArchVariant()
1713 case Triple::ppc: in get32BitArchVariant()
1714 case Triple::ppcle: in get32BitArchVariant()
1715 case Triple::r600: in get32BitArchVariant()
1716 case Triple::renderscript32: in get32BitArchVariant()
1717 case Triple::riscv32: in get32BitArchVariant()
1718 case Triple::shave: in get32BitArchVariant()
1719 case Triple::sparc: in get32BitArchVariant()
1720 case Triple::sparcel: in get32BitArchVariant()
1721 case Triple::spir: in get32BitArchVariant()
1722 case Triple::spirv32: in get32BitArchVariant()
1723 case Triple::tce: in get32BitArchVariant()
1724 case Triple::tcele: in get32BitArchVariant()
1725 case Triple::thumb: in get32BitArchVariant()
1726 case Triple::thumbeb: in get32BitArchVariant()
1727 case Triple::wasm32: in get32BitArchVariant()
1728 case Triple::x86: in get32BitArchVariant()
1729 case Triple::xcore: in get32BitArchVariant()
1730 case Triple::xtensa: in get32BitArchVariant()
1734 case Triple::aarch64: T.setArch(Triple::arm); break; in get32BitArchVariant()
1735 case Triple::aarch64_be: T.setArch(Triple::armeb); break; in get32BitArchVariant()
1736 case Triple::amdil64: T.setArch(Triple::amdil); break; in get32BitArchVariant()
1737 case Triple::hsail64: T.setArch(Triple::hsail); break; in get32BitArchVariant()
1738 case Triple::le64: T.setArch(Triple::le32); break; in get32BitArchVariant()
1739 case Triple::loongarch64: T.setArch(Triple::loongarch32); break; in get32BitArchVariant()
1740 case Triple::mips64: in get32BitArchVariant()
1741 T.setArch(Triple::mips, getSubArch()); in get32BitArchVariant()
1743 case Triple::mips64el: in get32BitArchVariant()
1744 T.setArch(Triple::mipsel, getSubArch()); in get32BitArchVariant()
1746 case Triple::nvptx64: T.setArch(Triple::nvptx); break; in get32BitArchVariant()
1747 case Triple::ppc64: T.setArch(Triple::ppc); break; in get32BitArchVariant()
1748 case Triple::ppc64le: T.setArch(Triple::ppcle); break; in get32BitArchVariant()
1749 case Triple::renderscript64: T.setArch(Triple::renderscript32); break; in get32BitArchVariant()
1750 case Triple::riscv64: T.setArch(Triple::riscv32); break; in get32BitArchVariant()
1751 case Triple::sparcv9: T.setArch(Triple::sparc); break; in get32BitArchVariant()
1752 case Triple::spir64: T.setArch(Triple::spir); break; in get32BitArchVariant()
1753 case Triple::spirv: in get32BitArchVariant()
1754 case Triple::spirv64: in get32BitArchVariant()
1755 T.setArch(Triple::spirv32, getSubArch()); in get32BitArchVariant()
1757 case Triple::wasm64: T.setArch(Triple::wasm32); break; in get32BitArchVariant()
1758 case Triple::x86_64: T.setArch(Triple::x86); break; in get32BitArchVariant()
1763 Triple Triple::get64BitArchVariant() const { in get64BitArchVariant()
1764 Triple T(*this); in get64BitArchVariant()
1766 case Triple::UnknownArch: in get64BitArchVariant()
1767 case Triple::arc: in get64BitArchVariant()
1768 case Triple::avr: in get64BitArchVariant()
1769 case Triple::csky: in get64BitArchVariant()
1770 case Triple::dxil: in get64BitArchVariant()
1771 case Triple::hexagon: in get64BitArchVariant()
1772 case Triple::kalimba: in get64BitArchVariant()
1773 case Triple::lanai: in get64BitArchVariant()
1774 case Triple::m68k: in get64BitArchVariant()
1775 case Triple::msp430: in get64BitArchVariant()
1776 case Triple::r600: in get64BitArchVariant()
1777 case Triple::shave: in get64BitArchVariant()
1778 case Triple::sparcel: in get64BitArchVariant()
1779 case Triple::tce: in get64BitArchVariant()
1780 case Triple::tcele: in get64BitArchVariant()
1781 case Triple::xcore: in get64BitArchVariant()
1782 case Triple::xtensa: in get64BitArchVariant()
1786 case Triple::aarch64: in get64BitArchVariant()
1787 case Triple::aarch64_be: in get64BitArchVariant()
1788 case Triple::amdgcn: in get64BitArchVariant()
1789 case Triple::amdil64: in get64BitArchVariant()
1790 case Triple::bpfeb: in get64BitArchVariant()
1791 case Triple::bpfel: in get64BitArchVariant()
1792 case Triple::hsail64: in get64BitArchVariant()
1793 case Triple::le64: in get64BitArchVariant()
1794 case Triple::loongarch64: in get64BitArchVariant()
1795 case Triple::mips64: in get64BitArchVariant()
1796 case Triple::mips64el: in get64BitArchVariant()
1797 case Triple::nvptx64: in get64BitArchVariant()
1798 case Triple::ppc64: in get64BitArchVariant()
1799 case Triple::ppc64le: in get64BitArchVariant()
1800 case Triple::renderscript64: in get64BitArchVariant()
1801 case Triple::riscv64: in get64BitArchVariant()
1802 case Triple::sparcv9: in get64BitArchVariant()
1803 case Triple::spir64: in get64BitArchVariant()
1804 case Triple::spirv64: in get64BitArchVariant()
1805 case Triple::systemz: in get64BitArchVariant()
1806 case Triple::ve: in get64BitArchVariant()
1807 case Triple::wasm64: in get64BitArchVariant()
1808 case Triple::x86_64: in get64BitArchVariant()
1812 case Triple::aarch64_32: T.setArch(Triple::aarch64); break; in get64BitArchVariant()
1813 case Triple::amdil: T.setArch(Triple::amdil64); break; in get64BitArchVariant()
1814 case Triple::arm: T.setArch(Triple::aarch64); break; in get64BitArchVariant()
1815 case Triple::armeb: T.setArch(Triple::aarch64_be); break; in get64BitArchVariant()
1816 case Triple::hsail: T.setArch(Triple::hsail64); break; in get64BitArchVariant()
1817 case Triple::le32: T.setArch(Triple::le64); break; in get64BitArchVariant()
1818 case Triple::loongarch32: T.setArch(Triple::loongarch64); break; in get64BitArchVariant()
1819 case Triple::mips: in get64BitArchVariant()
1820 T.setArch(Triple::mips64, getSubArch()); in get64BitArchVariant()
1822 case Triple::mipsel: in get64BitArchVariant()
1823 T.setArch(Triple::mips64el, getSubArch()); in get64BitArchVariant()
1825 case Triple::nvptx: T.setArch(Triple::nvptx64); break; in get64BitArchVariant()
1826 case Triple::ppc: T.setArch(Triple::ppc64); break; in get64BitArchVariant()
1827 case Triple::ppcle: T.setArch(Triple::ppc64le); break; in get64BitArchVariant()
1828 case Triple::renderscript32: T.setArch(Triple::renderscript64); break; in get64BitArchVariant()
1829 case Triple::riscv32: T.setArch(Triple::riscv64); break; in get64BitArchVariant()
1830 case Triple::sparc: T.setArch(Triple::sparcv9); break; in get64BitArchVariant()
1831 case Triple::spir: T.setArch(Triple::spir64); break; in get64BitArchVariant()
1832 case Triple::spirv: in get64BitArchVariant()
1833 case Triple::spirv32: in get64BitArchVariant()
1834 T.setArch(Triple::spirv64, getSubArch()); in get64BitArchVariant()
1836 case Triple::thumb: T.setArch(Triple::aarch64); break; in get64BitArchVariant()
1837 case Triple::thumbeb: T.setArch(Triple::aarch64_be); break; in get64BitArchVariant()
1838 case Triple::wasm32: T.setArch(Triple::wasm64); break; in get64BitArchVariant()
1839 case Triple::x86: T.setArch(Triple::x86_64); break; in get64BitArchVariant()
1844 Triple Triple::getBigEndianArchVariant() const { in getBigEndianArchVariant()
1845 Triple T(*this); in getBigEndianArchVariant()
1850 case Triple::UnknownArch: in getBigEndianArchVariant()
1851 case Triple::amdgcn: in getBigEndianArchVariant()
1852 case Triple::amdil64: in getBigEndianArchVariant()
1853 case Triple::amdil: in getBigEndianArchVariant()
1854 case Triple::avr: in getBigEndianArchVariant()
1855 case Triple::dxil: in getBigEndianArchVariant()
1856 case Triple::hexagon: in getBigEndianArchVariant()
1857 case Triple::hsail64: in getBigEndianArchVariant()
1858 case Triple::hsail: in getBigEndianArchVariant()
1859 case Triple::kalimba: in getBigEndianArchVariant()
1860 case Triple::le32: in getBigEndianArchVariant()
1861 case Triple::le64: in getBigEndianArchVariant()
1862 case Triple::loongarch32: in getBigEndianArchVariant()
1863 case Triple::loongarch64: in getBigEndianArchVariant()
1864 case Triple::msp430: in getBigEndianArchVariant()
1865 case Triple::nvptx64: in getBigEndianArchVariant()
1866 case Triple::nvptx: in getBigEndianArchVariant()
1867 case Triple::r600: in getBigEndianArchVariant()
1868 case Triple::renderscript32: in getBigEndianArchVariant()
1869 case Triple::renderscript64: in getBigEndianArchVariant()
1870 case Triple::riscv32: in getBigEndianArchVariant()
1871 case Triple::riscv64: in getBigEndianArchVariant()
1872 case Triple::shave: in getBigEndianArchVariant()
1873 case Triple::spir64: in getBigEndianArchVariant()
1874 case Triple::spir: in getBigEndianArchVariant()
1875 case Triple::spirv: in getBigEndianArchVariant()
1876 case Triple::spirv32: in getBigEndianArchVariant()
1877 case Triple::spirv64: in getBigEndianArchVariant()
1878 case Triple::wasm32: in getBigEndianArchVariant()
1879 case Triple::wasm64: in getBigEndianArchVariant()
1880 case Triple::x86: in getBigEndianArchVariant()
1881 case Triple::x86_64: in getBigEndianArchVariant()
1882 case Triple::xcore: in getBigEndianArchVariant()
1883 case Triple::ve: in getBigEndianArchVariant()
1884 case Triple::csky: in getBigEndianArchVariant()
1885 case Triple::xtensa: in getBigEndianArchVariant()
1889 case Triple::arm: in getBigEndianArchVariant()
1890 case Triple::thumb: in getBigEndianArchVariant()
1894 case Triple::aarch64: T.setArch(Triple::aarch64_be); break; in getBigEndianArchVariant()
1895 case Triple::bpfel: T.setArch(Triple::bpfeb); break; in getBigEndianArchVariant()
1896 case Triple::mips64el: in getBigEndianArchVariant()
1897 T.setArch(Triple::mips64, getSubArch()); in getBigEndianArchVariant()
1899 case Triple::mipsel: in getBigEndianArchVariant()
1900 T.setArch(Triple::mips, getSubArch()); in getBigEndianArchVariant()
1902 case Triple::ppcle: T.setArch(Triple::ppc); break; in getBigEndianArchVariant()
1903 case Triple::ppc64le: T.setArch(Triple::ppc64); break; in getBigEndianArchVariant()
1904 case Triple::sparcel: T.setArch(Triple::sparc); break; in getBigEndianArchVariant()
1905 case Triple::tcele: T.setArch(Triple::tce); break; in getBigEndianArchVariant()
1907 llvm_unreachable("getBigEndianArchVariant: unknown triple."); in getBigEndianArchVariant()
1912 Triple Triple::getLittleEndianArchVariant() const { in getLittleEndianArchVariant()
1913 Triple T(*this); in getLittleEndianArchVariant()
1918 case Triple::UnknownArch: in getLittleEndianArchVariant()
1919 case Triple::lanai: in getLittleEndianArchVariant()
1920 case Triple::sparcv9: in getLittleEndianArchVariant()
1921 case Triple::systemz: in getLittleEndianArchVariant()
1922 case Triple::m68k: in getLittleEndianArchVariant()
1926 case Triple::armeb: in getLittleEndianArchVariant()
1927 case Triple::thumbeb: in getLittleEndianArchVariant()
1931 case Triple::aarch64_be: T.setArch(Triple::aarch64); break; in getLittleEndianArchVariant()
1932 case Triple::bpfeb: T.setArch(Triple::bpfel); break; in getLittleEndianArchVariant()
1933 case Triple::mips64: in getLittleEndianArchVariant()
1934 T.setArch(Triple::mips64el, getSubArch()); in getLittleEndianArchVariant()
1936 case Triple::mips: in getLittleEndianArchVariant()
1937 T.setArch(Triple::mipsel, getSubArch()); in getLittleEndianArchVariant()
1939 case Triple::ppc: T.setArch(Triple::ppcle); break; in getLittleEndianArchVariant()
1940 case Triple::ppc64: T.setArch(Triple::ppc64le); break; in getLittleEndianArchVariant()
1941 case Triple::sparc: T.setArch(Triple::sparcel); break; in getLittleEndianArchVariant()
1942 case Triple::tce: T.setArch(Triple::tcele); break; in getLittleEndianArchVariant()
1944 llvm_unreachable("getLittleEndianArchVariant: unknown triple."); in getLittleEndianArchVariant()
1949 bool Triple::isLittleEndian() const { in isLittleEndian()
1951 case Triple::aarch64: in isLittleEndian()
1952 case Triple::aarch64_32: in isLittleEndian()
1953 case Triple::amdgcn: in isLittleEndian()
1954 case Triple::amdil64: in isLittleEndian()
1955 case Triple::amdil: in isLittleEndian()
1956 case Triple::arm: in isLittleEndian()
1957 case Triple::avr: in isLittleEndian()
1958 case Triple::bpfel: in isLittleEndian()
1959 case Triple::csky: in isLittleEndian()
1960 case Triple::dxil: in isLittleEndian()
1961 case Triple::hexagon: in isLittleEndian()
1962 case Triple::hsail64: in isLittleEndian()
1963 case Triple::hsail: in isLittleEndian()
1964 case Triple::kalimba: in isLittleEndian()
1965 case Triple::le32: in isLittleEndian()
1966 case Triple::le64: in isLittleEndian()
1967 case Triple::loongarch32: in isLittleEndian()
1968 case Triple::loongarch64: in isLittleEndian()
1969 case Triple::mips64el: in isLittleEndian()
1970 case Triple::mipsel: in isLittleEndian()
1971 case Triple::msp430: in isLittleEndian()
1972 case Triple::nvptx64: in isLittleEndian()
1973 case Triple::nvptx: in isLittleEndian()
1974 case Triple::ppcle: in isLittleEndian()
1975 case Triple::ppc64le: in isLittleEndian()
1976 case Triple::r600: in isLittleEndian()
1977 case Triple::renderscript32: in isLittleEndian()
1978 case Triple::renderscript64: in isLittleEndian()
1979 case Triple::riscv32: in isLittleEndian()
1980 case Triple::riscv64: in isLittleEndian()
1981 case Triple::shave: in isLittleEndian()
1982 case Triple::sparcel: in isLittleEndian()
1983 case Triple::spir64: in isLittleEndian()
1984 case Triple::spir: in isLittleEndian()
1985 case Triple::spirv: in isLittleEndian()
1986 case Triple::spirv32: in isLittleEndian()
1987 case Triple::spirv64: in isLittleEndian()
1988 case Triple::tcele: in isLittleEndian()
1989 case Triple::thumb: in isLittleEndian()
1990 case Triple::ve: in isLittleEndian()
1991 case Triple::wasm32: in isLittleEndian()
1992 case Triple::wasm64: in isLittleEndian()
1993 case Triple::x86: in isLittleEndian()
1994 case Triple::x86_64: in isLittleEndian()
1995 case Triple::xcore: in isLittleEndian()
1996 case Triple::xtensa: in isLittleEndian()
2003 bool Triple::isCompatibleWith(const Triple &Other) const { in isCompatibleWith()
2005 if ((getArch() == Triple::thumb && Other.getArch() == Triple::arm) || in isCompatibleWith()
2006 (getArch() == Triple::arm && Other.getArch() == Triple::thumb) || in isCompatibleWith()
2007 (getArch() == Triple::thumbeb && Other.getArch() == Triple::armeb) || in isCompatibleWith()
2008 (getArch() == Triple::armeb && Other.getArch() == Triple::thumbeb)) { in isCompatibleWith()
2009 if (getVendor() == Triple::Apple) in isCompatibleWith()
2020 if (getVendor() == Triple::Apple) in isCompatibleWith()
2027 std::string Triple::merge(const Triple &Other) const { in merge()
2028 // If vendor is apple, pick the triple with the larger version number. in merge()
2029 if (getVendor() == Triple::Apple) in merge()
2036 bool Triple::isMacOSXVersionLT(unsigned Major, unsigned Minor, in isMacOSXVersionLT()
2038 assert(isMacOSX() && "Not an OS X triple!"); in isMacOSXVersionLT()
2041 if (getOS() == Triple::MacOSX) in isMacOSXVersionLT()
2053 VersionTuple Triple::getMinimumSupportedOSVersion() const { in getMinimumSupportedOSVersion()
2054 if (getVendor() != Triple::Apple || getArch() != Triple::aarch64) in getMinimumSupportedOSVersion()
2057 case Triple::MacOSX: in getMinimumSupportedOSVersion()
2060 case Triple::IOS: in getMinimumSupportedOSVersion()
2069 case Triple::TvOS: in getMinimumSupportedOSVersion()
2074 case Triple::WatchOS: in getMinimumSupportedOSVersion()
2079 case Triple::DriverKit: in getMinimumSupportedOSVersion()
2087 VersionTuple Triple::getCanonicalVersionForOS(OSType OSKind, in getCanonicalVersionForOS()
2100 // HLSL triple environment orders are relied on in the front end
2101 static_assert(Triple::Vertex - Triple::Pixel == 1,
2103 static_assert(Triple::Geometry - Triple::Pixel == 2,
2105 static_assert(Triple::Hull - Triple::Pixel == 3,
2107 static_assert(Triple::Domain - Triple::Pixel == 4,
2109 static_assert(Triple::Compute - Triple::Pixel == 5,
2111 static_assert(Triple::Library - Triple::Pixel == 6,
2113 static_assert(Triple::RayGeneration - Triple::Pixel == 7,
2115 static_assert(Triple::Intersection - Triple::Pixel == 8,
2117 static_assert(Triple::AnyHit - Triple::Pixel == 9,
2119 static_assert(Triple::ClosestHit - Triple::Pixel == 10,
2121 static_assert(Triple::Miss - Triple::Pixel == 11,
2123 static_assert(Triple::Callable - Triple::Pixel == 12,
2125 static_assert(Triple::Mesh - Triple::Pixel == 13,
2127 static_assert(Triple::Amplification - Triple::Pixel == 14,