[llvm] 8709f6f - Triple: Move OS/vendor/environment names into a def file (#208722)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 10 10:53:23 PDT 2026
Author: Matt Arsenault
Date: 2026-07-10T19:53:18+02:00
New Revision: 8709f6f18fe29c4a9e3bac970e05326bc5b3d9d6
URL: https://github.com/llvm/llvm-project/commit/8709f6f18fe29c4a9e3bac970e05326bc5b3d9d6
DIFF: https://github.com/llvm/llvm-project/commit/8709f6f18fe29c4a9e3bac970e05326bc5b3d9d6.diff
LOG: Triple: Move OS/vendor/environment names into a def file (#208722)
Extract the component name lists into a macro .def file, similar
to how many targets do for CPU names. The arch/subarch names are
left alone because they have trickier manual parsing logic.
Co-Authored-By: Claude (Opus 4.8) <noreply at anthropic.com>
Added:
llvm/include/llvm/TargetParser/TripleName.def
Modified:
llvm/include/module.modulemap
llvm/lib/TargetParser/Triple.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/TargetParser/TripleName.def b/llvm/include/llvm/TargetParser/TripleName.def
new file mode 100644
index 0000000000000..bbc03b3188019
--- /dev/null
+++ b/llvm/include/llvm/TargetParser/TripleName.def
@@ -0,0 +1,198 @@
+//===- TripleName.def - Triple component name table -------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// NOTE: NO INCLUDE GUARD DESIRED!
+
+//===----------------------------------------------------------------------===//
+// OS names.
+//
+// TRIPLE_OS(Enum, Name)
+// Enum - the Triple::OSType enumerator
+// Name - the canonical string
+//
+// TRIPLE_OS_ALIAS(Enum, AliasName)
+// An additional prefix maps to an OSType.
+//
+// Order is significant: parsing uses prefix matching, so a name that is a
+// prefix of another must come AFTER it (wasip1/2/3 before wasi).
+// ===----------------------------------------------------------------------===//
+
+#ifndef TRIPLE_OS
+#define TRIPLE_OS(Enum, Name)
+#endif
+#ifndef TRIPLE_OS_ALIAS
+#define TRIPLE_OS_ALIAS(Enum, AliasName)
+#endif
+
+TRIPLE_OS(Darwin, "darwin")
+TRIPLE_OS(DragonFly, "dragonfly")
+TRIPLE_OS(FreeBSD, "freebsd")
+TRIPLE_OS(Fuchsia, "fuchsia")
+TRIPLE_OS(IOS, "ios")
+TRIPLE_OS(KFreeBSD, "kfreebsd")
+TRIPLE_OS(Linux, "linux")
+TRIPLE_OS(Lv2, "lv2")
+TRIPLE_OS(MacOSX, "macosx")
+TRIPLE_OS_ALIAS(MacOSX, "macos")
+TRIPLE_OS(Managarm, "managarm")
+TRIPLE_OS(NetBSD, "netbsd")
+TRIPLE_OS(OpenBSD, "openbsd")
+TRIPLE_OS(Solaris, "solaris")
+TRIPLE_OS(UEFI, "uefi")
+TRIPLE_OS(Win32, "windows")
+TRIPLE_OS_ALIAS(Win32, "win32")
+TRIPLE_OS(ZOS, "zos")
+TRIPLE_OS(Haiku, "haiku")
+TRIPLE_OS(RTEMS, "rtems")
+TRIPLE_OS(AIX, "aix")
+TRIPLE_OS(CUDA, "cuda")
+TRIPLE_OS(NVCL, "nvcl")
+TRIPLE_OS(AMDHSA, "amdhsa")
+TRIPLE_OS(PS4, "ps4")
+TRIPLE_OS(PS5, "ps5")
+TRIPLE_OS(ELFIAMCU, "elfiamcu")
+TRIPLE_OS(TvOS, "tvos")
+TRIPLE_OS(WatchOS, "watchos")
+TRIPLE_OS(BridgeOS, "bridgeos")
+TRIPLE_OS(DriverKit, "driverkit")
+TRIPLE_OS(XROS, "xros")
+TRIPLE_OS_ALIAS(XROS, "visionos")
+TRIPLE_OS(Mesa3D, "mesa3d")
+TRIPLE_OS(AMDPAL, "amdpal")
+TRIPLE_OS(HermitCore, "hermit")
+TRIPLE_OS(Hurd, "hurd")
+TRIPLE_OS(WASIp1, "wasip1")
+TRIPLE_OS(WASIp2, "wasip2")
+TRIPLE_OS(WASIp3, "wasip3")
+TRIPLE_OS(WASI, "wasi")
+TRIPLE_OS(Emscripten, "emscripten")
+TRIPLE_OS(ShaderModel, "shadermodel")
+TRIPLE_OS(LiteOS, "liteos")
+TRIPLE_OS(Serenity, "serenity")
+TRIPLE_OS(Vulkan, "vulkan")
+TRIPLE_OS(CheriotRTOS, "cheriotrtos")
+TRIPLE_OS(OpenCL, "opencl")
+TRIPLE_OS(ChipStar, "chipstar")
+TRIPLE_OS(Firmware, "firmware")
+TRIPLE_OS(QURT, "qurt")
+TRIPLE_OS(H2, "h2")
+
+#undef TRIPLE_OS
+#undef TRIPLE_OS_ALIAS
+
+//===----------------------------------------------------------------------===//
+// Environment names.
+//
+// TRIPLE_ENV(Enum, Name)
+// Enum - the Triple::EnvironmentType enumerator.
+// Name - the canonical string
+//
+// Order is significant for the same prefix-matching reason as OS (eabihf before
+// eabi; the gnu*/musl* variants before gnu/musl).
+//===----------------------------------------------------------------------===//
+
+#ifndef TRIPLE_ENV
+#define TRIPLE_ENV(Enum, Name)
+#endif
+
+TRIPLE_ENV(EABIHF, "eabihf")
+TRIPLE_ENV(EABI, "eabi")
+TRIPLE_ENV(GNUABIN32, "gnuabin32")
+TRIPLE_ENV(GNUABI64, "gnuabi64")
+TRIPLE_ENV(GNUEABIHFT64, "gnueabihft64")
+TRIPLE_ENV(GNUEABIHF, "gnueabihf")
+TRIPLE_ENV(GNUEABIT64, "gnueabit64")
+TRIPLE_ENV(GNUEABI, "gnueabi")
+TRIPLE_ENV(GNUF32, "gnuf32")
+TRIPLE_ENV(GNUF64, "gnuf64")
+TRIPLE_ENV(GNUSF, "gnusf")
+TRIPLE_ENV(GNUX32, "gnux32")
+TRIPLE_ENV(GNUILP32, "gnu_ilp32")
+TRIPLE_ENV(CODE16, "code16")
+TRIPLE_ENV(GNUT64, "gnut64")
+TRIPLE_ENV(GNU, "gnu")
+TRIPLE_ENV(Android, "android")
+TRIPLE_ENV(MuslABIN32, "muslabin32")
+TRIPLE_ENV(MuslABI64, "muslabi64")
+TRIPLE_ENV(MuslEABIHF, "musleabihf")
+TRIPLE_ENV(MuslEABI, "musleabi")
+TRIPLE_ENV(MuslF32, "muslf32")
+TRIPLE_ENV(MuslSF, "muslsf")
+TRIPLE_ENV(MuslX32, "muslx32")
+TRIPLE_ENV(MuslWALI, "muslwali")
+TRIPLE_ENV(Musl, "musl")
+TRIPLE_ENV(MSVC, "msvc")
+TRIPLE_ENV(Itanium, "itanium")
+TRIPLE_ENV(Cygnus, "cygnus")
+TRIPLE_ENV(CoreCLR, "coreclr")
+TRIPLE_ENV(Simulator, "simulator")
+TRIPLE_ENV(MacABI, "macabi")
+TRIPLE_ENV(Pixel, "pixel")
+TRIPLE_ENV(Vertex, "vertex")
+TRIPLE_ENV(Geometry, "geometry")
+TRIPLE_ENV(Hull, "hull")
+TRIPLE_ENV(Domain, "domain")
+TRIPLE_ENV(Compute, "compute")
+TRIPLE_ENV(Library, "library")
+TRIPLE_ENV(RayGeneration, "raygeneration")
+TRIPLE_ENV(Intersection, "intersection")
+TRIPLE_ENV(AnyHit, "anyhit")
+TRIPLE_ENV(ClosestHit, "closesthit")
+TRIPLE_ENV(Miss, "miss")
+TRIPLE_ENV(Callable, "callable")
+TRIPLE_ENV(Mesh, "mesh")
+TRIPLE_ENV(Amplification, "amplification")
+TRIPLE_ENV(RootSignature, "rootsignature")
+TRIPLE_ENV(OpenHOS, "ohos")
+TRIPLE_ENV(PAuthTest, "pauthtest")
+TRIPLE_ENV(LLVM, "llvm")
+TRIPLE_ENV(Mlibc, "mlibc")
+TRIPLE_ENV(MTIA, "mtia")
+
+#undef TRIPLE_ENV
+
+//===----------------------------------------------------------------------===//
+// Vendor names.
+//
+// TRIPLE_VENDOR(Enum, Name)
+// Enum - the Triple::VendorType enumerator.
+// Name - the canonical string
+//
+// TRIPLE_VENDOR_ALIAS(Enum, AliasName)
+// An additional string that maps to a VendorType.
+//
+// Unlike OS and environment names, vendors are matched exactly,
+// so entry order is insignificant.
+//===----------------------------------------------------------------------===//
+
+#ifndef TRIPLE_VENDOR
+#define TRIPLE_VENDOR(Enum, Name)
+#endif
+#ifndef TRIPLE_VENDOR_ALIAS
+#define TRIPLE_VENDOR_ALIAS(Enum, AliasName)
+#endif
+
+TRIPLE_VENDOR(AMD, "amd")
+TRIPLE_VENDOR(Apple, "apple")
+TRIPLE_VENDOR(CSR, "csr")
+TRIPLE_VENDOR(Freescale, "fsl")
+TRIPLE_VENDOR(IBM, "ibm")
+TRIPLE_VENDOR(ImaginationTechnologies, "img")
+TRIPLE_VENDOR(Intel, "intel")
+TRIPLE_VENDOR(Mesa, "mesa")
+TRIPLE_VENDOR(MipsTechnologies, "mti")
+TRIPLE_VENDOR(NVIDIA, "nvidia")
+TRIPLE_VENDOR(OpenEmbedded, "oe")
+TRIPLE_VENDOR(PC, "pc")
+TRIPLE_VENDOR(SCEI, "scei")
+TRIPLE_VENDOR_ALIAS(SCEI, "sie")
+TRIPLE_VENDOR(SUSE, "suse")
+TRIPLE_VENDOR(Meta, "meta")
+
+#undef TRIPLE_VENDOR
+#undef TRIPLE_VENDOR_ALIAS
diff --git a/llvm/include/module.modulemap b/llvm/include/module.modulemap
index d882b799202b2..53e34285eddb0 100644
--- a/llvm/include/module.modulemap
+++ b/llvm/include/module.modulemap
@@ -427,6 +427,7 @@ module LLVM_Utils {
textual header "llvm/TargetParser/X86TargetParser.def"
textual header "llvm/TargetParser/LoongArchTargetParser.def"
textual header "llvm/TargetParser/PPCTargetParser.def"
+ textual header "llvm/TargetParser/TripleName.def"
textual header "llvm/TargetParser/XtensaTargetParser.def"
}
diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp
index 87f56aeef3f43..356782c1f6ad4 100644
--- a/llvm/lib/TargetParser/Triple.cpp
+++ b/llvm/lib/TargetParser/Triple.cpp
@@ -422,37 +422,10 @@ StringRef Triple::getVendorTypeName(VendorType Kind) {
switch (Kind) {
case UnknownVendor:
return "unknown";
-
- case AMD:
- return "amd";
- case Apple:
- return "apple";
- case CSR:
- return "csr";
- case Freescale:
- return "fsl";
- case IBM:
- return "ibm";
- case ImaginationTechnologies:
- return "img";
- case Intel:
- return "intel";
- case Mesa:
- return "mesa";
- case MipsTechnologies:
- return "mti";
- case NVIDIA:
- return "nvidia";
- case OpenEmbedded:
- return "oe";
- case PC:
- return "pc";
- case SCEI:
- return "scei";
- case SUSE:
- return "suse";
- case Meta:
- return "meta";
+#define TRIPLE_VENDOR(Enum, Name) \
+ case Enum: \
+ return Name;
+#include "llvm/TargetParser/TripleName.def"
}
llvm_unreachable("Invalid VendorType!");
@@ -462,105 +435,10 @@ StringRef Triple::getOSTypeName(OSType Kind) {
switch (Kind) {
case UnknownOS:
return "unknown";
-
- case AIX:
- return "aix";
- case AMDHSA:
- return "amdhsa";
- case AMDPAL:
- return "amdpal";
- case BridgeOS:
- return "bridgeos";
- case CUDA:
- return "cuda";
- case Darwin:
- return "darwin";
- case DragonFly:
- return "dragonfly";
- case DriverKit:
- return "driverkit";
- case ELFIAMCU:
- return "elfiamcu";
- case Emscripten:
- return "emscripten";
- case FreeBSD:
- return "freebsd";
- case Fuchsia:
- return "fuchsia";
- case Haiku:
- return "haiku";
- case HermitCore:
- return "hermit";
- case Hurd:
- return "hurd";
- case IOS:
- return "ios";
- case KFreeBSD:
- return "kfreebsd";
- case Linux:
- return "linux";
- case Lv2:
- return "lv2";
- case MacOSX:
- return "macosx";
- case Managarm:
- return "managarm";
- case Mesa3D:
- return "mesa3d";
- case NVCL:
- return "nvcl";
- case NetBSD:
- return "netbsd";
- case OpenBSD:
- return "openbsd";
- case PS4:
- return "ps4";
- case PS5:
- return "ps5";
- case RTEMS:
- return "rtems";
- case Solaris:
- return "solaris";
- case Serenity:
- return "serenity";
- case TvOS:
- return "tvos";
- case UEFI:
- return "uefi";
- case WASI:
- return "wasi";
- case WASIp1:
- return "wasip1";
- case WASIp2:
- return "wasip2";
- case WASIp3:
- return "wasip3";
- case WatchOS:
- return "watchos";
- case Win32:
- return "windows";
- case ZOS:
- return "zos";
- case ShaderModel:
- return "shadermodel";
- case LiteOS:
- return "liteos";
- case XROS:
- return "xros";
- case Vulkan:
- return "vulkan";
- case CheriotRTOS:
- return "cheriotrtos";
- case OpenCL:
- return "opencl";
- case ChipStar:
- return "chipstar";
- case Firmware:
- return "firmware";
- case QURT:
- return "qurt";
- case H2:
- return "h2";
+#define TRIPLE_OS(Enum, Name) \
+ case Enum: \
+ return Name;
+#include "llvm/TargetParser/TripleName.def"
}
llvm_unreachable("Invalid OSType");
@@ -570,112 +448,10 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) {
switch (Kind) {
case UnknownEnvironment:
return "unknown";
- case Android:
- return "android";
- case CODE16:
- return "code16";
- case CoreCLR:
- return "coreclr";
- case Cygnus:
- return "cygnus";
- case EABI:
- return "eabi";
- case EABIHF:
- return "eabihf";
- case GNU:
- return "gnu";
- case GNUT64:
- return "gnut64";
- case GNUABI64:
- return "gnuabi64";
- case GNUABIN32:
- return "gnuabin32";
- case GNUEABI:
- return "gnueabi";
- case GNUEABIT64:
- return "gnueabit64";
- case GNUEABIHF:
- return "gnueabihf";
- case GNUEABIHFT64:
- return "gnueabihft64";
- case GNUF32:
- return "gnuf32";
- case GNUF64:
- return "gnuf64";
- case GNUSF:
- return "gnusf";
- case GNUX32:
- return "gnux32";
- case GNUILP32:
- return "gnu_ilp32";
- case Itanium:
- return "itanium";
- case MSVC:
- return "msvc";
- case MacABI:
- return "macabi";
- case Musl:
- return "musl";
- case MuslABIN32:
- return "muslabin32";
- case MuslABI64:
- return "muslabi64";
- case MuslEABI:
- return "musleabi";
- case MuslEABIHF:
- return "musleabihf";
- case MuslF32:
- return "muslf32";
- case MuslSF:
- return "muslsf";
- case MuslX32:
- return "muslx32";
- case MuslWALI:
- return "muslwali";
- case Simulator:
- return "simulator";
- case Pixel:
- return "pixel";
- case Vertex:
- return "vertex";
- case Geometry:
- return "geometry";
- case Hull:
- return "hull";
- case Domain:
- return "domain";
- case Compute:
- return "compute";
- case Library:
- return "library";
- case RayGeneration:
- return "raygeneration";
- case Intersection:
- return "intersection";
- case AnyHit:
- return "anyhit";
- case ClosestHit:
- return "closesthit";
- case Miss:
- return "miss";
- case Callable:
- return "callable";
- case Mesh:
- return "mesh";
- case Amplification:
- return "amplification";
- case RootSignature:
- return "rootsignature";
- case OpenHOS:
- return "ohos";
- case PAuthTest:
- return "pauthtest";
- case MTIA:
- return "mtia";
- case LLVM:
- return "llvm";
- case Mlibc:
- return "mlibc";
+#define TRIPLE_ENV(Enum, Name) \
+ case Enum: \
+ return Name;
+#include "llvm/TargetParser/TripleName.def"
}
llvm_unreachable("Invalid EnvironmentType!");
@@ -962,136 +738,24 @@ Triple::ArchType Triple::parseArch(StringRef ArchName) {
static Triple::VendorType parseVendor(StringRef VendorName) {
return StringSwitch<Triple::VendorType>(VendorName)
- .Case("apple", Triple::Apple)
- .Case("pc", Triple::PC)
- .Case("scei", Triple::SCEI)
- .Case("sie", Triple::SCEI)
- .Case("fsl", Triple::Freescale)
- .Case("ibm", Triple::IBM)
- .Case("img", Triple::ImaginationTechnologies)
- .Case("mti", Triple::MipsTechnologies)
- .Case("nvidia", Triple::NVIDIA)
- .Case("csr", Triple::CSR)
- .Case("amd", Triple::AMD)
- .Case("mesa", Triple::Mesa)
- .Case("suse", Triple::SUSE)
- .Case("oe", Triple::OpenEmbedded)
- .Case("intel", Triple::Intel)
- .Case("meta", Triple::Meta)
+#define TRIPLE_VENDOR(Enum, Name) .Case(Name, Triple::Enum)
+#define TRIPLE_VENDOR_ALIAS(Enum, AliasName) .Case(AliasName, Triple::Enum)
+#include "llvm/TargetParser/TripleName.def"
.Default(Triple::UnknownVendor);
}
static Triple::OSType parseOS(StringRef OSName) {
return StringSwitch<Triple::OSType>(OSName)
- .StartsWith("darwin", Triple::Darwin)
- .StartsWith("dragonfly", Triple::DragonFly)
- .StartsWith("freebsd", Triple::FreeBSD)
- .StartsWith("fuchsia", Triple::Fuchsia)
- .StartsWith("ios", Triple::IOS)
- .StartsWith("kfreebsd", Triple::KFreeBSD)
- .StartsWith("linux", Triple::Linux)
- .StartsWith("lv2", Triple::Lv2)
- .StartsWith("macos", Triple::MacOSX)
- .StartsWith("managarm", Triple::Managarm)
- .StartsWith("netbsd", Triple::NetBSD)
- .StartsWith("openbsd", Triple::OpenBSD)
- .StartsWith("solaris", Triple::Solaris)
- .StartsWith("uefi", Triple::UEFI)
- .StartsWith("win32", Triple::Win32)
- .StartsWith("windows", Triple::Win32)
- .StartsWith("zos", Triple::ZOS)
- .StartsWith("haiku", Triple::Haiku)
- .StartsWith("rtems", Triple::RTEMS)
- .StartsWith("aix", Triple::AIX)
- .StartsWith("cuda", Triple::CUDA)
- .StartsWith("nvcl", Triple::NVCL)
- .StartsWith("amdhsa", Triple::AMDHSA)
- .StartsWith("ps4", Triple::PS4)
- .StartsWith("ps5", Triple::PS5)
- .StartsWith("elfiamcu", Triple::ELFIAMCU)
- .StartsWith("tvos", Triple::TvOS)
- .StartsWith("watchos", Triple::WatchOS)
- .StartsWith("bridgeos", Triple::BridgeOS)
- .StartsWith("driverkit", Triple::DriverKit)
- .StartsWith("xros", Triple::XROS)
- .StartsWith("visionos", Triple::XROS)
- .StartsWith("mesa3d", Triple::Mesa3D)
- .StartsWith("amdpal", Triple::AMDPAL)
- .StartsWith("hermit", Triple::HermitCore)
- .StartsWith("hurd", Triple::Hurd)
- .StartsWith("wasip1", Triple::WASIp1)
- .StartsWith("wasip2", Triple::WASIp2)
- .StartsWith("wasip3", Triple::WASIp3)
- .StartsWith("wasi", Triple::WASI)
- .StartsWith("emscripten", Triple::Emscripten)
- .StartsWith("shadermodel", Triple::ShaderModel)
- .StartsWith("liteos", Triple::LiteOS)
- .StartsWith("serenity", Triple::Serenity)
- .StartsWith("vulkan", Triple::Vulkan)
- .StartsWith("cheriotrtos", Triple::CheriotRTOS)
- .StartsWith("opencl", Triple::OpenCL)
- .StartsWith("chipstar", Triple::ChipStar)
- .StartsWith("firmware", Triple::Firmware)
- .StartsWith("qurt", Triple::QURT)
- .StartsWith("h2", Triple::H2)
+#define TRIPLE_OS(Enum, Name) .StartsWith(Name, Triple::Enum)
+#define TRIPLE_OS_ALIAS(Enum, AliasName) .StartsWith(AliasName, Triple::Enum)
+#include "llvm/TargetParser/TripleName.def"
.Default(Triple::UnknownOS);
}
static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
return StringSwitch<Triple::EnvironmentType>(EnvironmentName)
- .StartsWith("eabihf", Triple::EABIHF)
- .StartsWith("eabi", Triple::EABI)
- .StartsWith("gnuabin32", Triple::GNUABIN32)
- .StartsWith("gnuabi64", Triple::GNUABI64)
- .StartsWith("gnueabihft64", Triple::GNUEABIHFT64)
- .StartsWith("gnueabihf", Triple::GNUEABIHF)
- .StartsWith("gnueabit64", Triple::GNUEABIT64)
- .StartsWith("gnueabi", Triple::GNUEABI)
- .StartsWith("gnuf32", Triple::GNUF32)
- .StartsWith("gnuf64", Triple::GNUF64)
- .StartsWith("gnusf", Triple::GNUSF)
- .StartsWith("gnux32", Triple::GNUX32)
- .StartsWith("gnu_ilp32", Triple::GNUILP32)
- .StartsWith("code16", Triple::CODE16)
- .StartsWith("gnut64", Triple::GNUT64)
- .StartsWith("gnu", Triple::GNU)
- .StartsWith("android", Triple::Android)
- .StartsWith("muslabin32", Triple::MuslABIN32)
- .StartsWith("muslabi64", Triple::MuslABI64)
- .StartsWith("musleabihf", Triple::MuslEABIHF)
- .StartsWith("musleabi", Triple::MuslEABI)
- .StartsWith("muslf32", Triple::MuslF32)
- .StartsWith("muslsf", Triple::MuslSF)
- .StartsWith("muslx32", Triple::MuslX32)
- .StartsWith("muslwali", Triple::MuslWALI)
- .StartsWith("musl", Triple::Musl)
- .StartsWith("msvc", Triple::MSVC)
- .StartsWith("itanium", Triple::Itanium)
- .StartsWith("cygnus", Triple::Cygnus)
- .StartsWith("coreclr", Triple::CoreCLR)
- .StartsWith("simulator", Triple::Simulator)
- .StartsWith("macabi", Triple::MacABI)
- .StartsWith("pixel", Triple::Pixel)
- .StartsWith("vertex", Triple::Vertex)
- .StartsWith("geometry", Triple::Geometry)
- .StartsWith("hull", Triple::Hull)
- .StartsWith("domain", Triple::Domain)
- .StartsWith("compute", Triple::Compute)
- .StartsWith("library", Triple::Library)
- .StartsWith("raygeneration", Triple::RayGeneration)
- .StartsWith("intersection", Triple::Intersection)
- .StartsWith("anyhit", Triple::AnyHit)
- .StartsWith("closesthit", Triple::ClosestHit)
- .StartsWith("miss", Triple::Miss)
- .StartsWith("callable", Triple::Callable)
- .StartsWith("mesh", Triple::Mesh)
- .StartsWith("amplification", Triple::Amplification)
- .StartsWith("rootsignature", Triple::RootSignature)
- .StartsWith("ohos", Triple::OpenHOS)
- .StartsWith("pauthtest", Triple::PAuthTest)
- .StartsWith("llvm", Triple::LLVM)
- .StartsWith("mlibc", Triple::Mlibc)
- .StartsWith("mtia", Triple::MTIA)
+#define TRIPLE_ENV(Enum, Name) .StartsWith(Name, Triple::Enum)
+#include "llvm/TargetParser/TripleName.def"
.Default(Triple::UnknownEnvironment);
}
More information about the llvm-commits
mailing list