[llvm] [LLVM] Add environment triple for 'llvm' (PR #117218)
Joseph Huber via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 21 11:49:42 PST 2024
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/117218
>From 18af46f93476d9f6c98855120a375fd1c61dfeab Mon Sep 17 00:00:00 2001
From: Joseph Huber <huberjn at outlook.com>
Date: Thu, 21 Nov 2024 13:28:13 -0600
Subject: [PATCH] [LLVM] Add environment triple for 'llvm'
Summary:
The LLVM C library is an in-development environment for running
executables on various systems. Similarly how we have `-gnu` to indicate
that we are using a GNU toolchain we should support `-llvm` to indicate
the LLVM C library. This patch only adds the basic support for the
triple and does not do any necessary clang changes to handle compiling
with it.
---
llvm/include/llvm/TargetParser/Triple.h | 1 +
llvm/lib/TargetParser/Triple.cpp | 3 +++
llvm/unittests/TargetParser/TripleTest.cpp | 6 ++++++
3 files changed, 10 insertions(+)
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
index 779bd9017d7f12..3a1a962003abf5 100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -268,6 +268,7 @@ class Triple {
MuslF32,
MuslSF,
MuslX32,
+ LLVM,
MSVC,
Itanium,
diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp
index b271f29d265cfe..faabaf18d80710 100644
--- a/llvm/lib/TargetParser/Triple.cpp
+++ b/llvm/lib/TargetParser/Triple.cpp
@@ -360,6 +360,8 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) {
case OpenHOS: return "ohos";
case PAuthTest:
return "pauthtest";
+ case LLVM:
+ return "llvm";
}
llvm_unreachable("Invalid EnvironmentType!");
@@ -740,6 +742,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
.StartsWith("opencl", Triple::OpenCL)
.StartsWith("ohos", Triple::OpenHOS)
.StartsWith("pauthtest", Triple::PAuthTest)
+ .StartsWith("llvm", Triple::LLVM)
.Default(Triple::UnknownEnvironment);
}
diff --git a/llvm/unittests/TargetParser/TripleTest.cpp b/llvm/unittests/TargetParser/TripleTest.cpp
index cb2fa95d431c66..87f9083fa344c2 100644
--- a/llvm/unittests/TargetParser/TripleTest.cpp
+++ b/llvm/unittests/TargetParser/TripleTest.cpp
@@ -1341,6 +1341,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_TRUE(T.isTime64ABI());
EXPECT_TRUE(T.isHardFloatABI());
+ T = Triple("x86_64-pc-linux-llvm");
+ EXPECT_EQ(Triple::x86_64, T.getArch());
+ EXPECT_EQ(Triple::PC, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::LLVM, T.getEnvironment());
+
T = Triple("huh");
EXPECT_EQ(Triple::UnknownArch, T.getArch());
}
More information about the llvm-commits
mailing list