Skip to content

Commit 3327ff1

Browse files
committed
[llvm] Add managarm OS and mlibc environment target
1 parent 31ddaef commit 3327ff1

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

llvm/include/llvm/TargetParser/Triple.h

+4
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ class Triple {
208208
Linux,
209209
Lv2, // PS3
210210
MacOSX,
211+
Managarm,
211212
NetBSD,
212213
OpenBSD,
213214
Solaris,
@@ -299,6 +300,7 @@ class Triple {
299300
Amplification,
300301
OpenCL,
301302
OpenHOS,
303+
Mlibc,
302304

303305
PAuthTest,
304306

@@ -849,6 +851,8 @@ class Triple {
849851

850852
bool isVulkanOS() const { return getOS() == Triple::Vulkan; }
851853

854+
bool isOSManagarm() const { return getOS() == Triple::Managarm; }
855+
852856
bool isShaderStageEnvironment() const {
853857
EnvironmentType Env = getEnvironment();
854858
return Env == Triple::Pixel || Env == Triple::Vertex ||

llvm/lib/TargetParser/Triple.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ StringRef Triple::getOSTypeName(OSType Kind) {
299299
case Linux: return "linux";
300300
case Lv2: return "lv2";
301301
case MacOSX: return "macosx";
302+
case Managarm:
303+
return "managarm";
302304
case Mesa3D: return "mesa3d";
303305
case NVCL: return "nvcl";
304306
case NaCl: return "nacl";
@@ -384,6 +386,8 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) {
384386
return "pauthtest";
385387
case LLVM:
386388
return "llvm";
389+
case Mlibc:
390+
return "mlibc";
387391
}
388392

389393
llvm_unreachable("Invalid EnvironmentType!");
@@ -678,6 +682,7 @@ static Triple::OSType parseOS(StringRef OSName) {
678682
.StartsWith("linux", Triple::Linux)
679683
.StartsWith("lv2", Triple::Lv2)
680684
.StartsWith("macos", Triple::MacOSX)
685+
.StartsWith("managarm", Triple::Managarm)
681686
.StartsWith("netbsd", Triple::NetBSD)
682687
.StartsWith("openbsd", Triple::OpenBSD)
683688
.StartsWith("solaris", Triple::Solaris)
@@ -766,6 +771,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
766771
.StartsWith("ohos", Triple::OpenHOS)
767772
.StartsWith("pauthtest", Triple::PAuthTest)
768773
.StartsWith("llvm", Triple::LLVM)
774+
.StartsWith("mlibc", Triple::Mlibc)
769775
.Default(Triple::UnknownEnvironment);
770776
}
771777

llvm/unittests/TargetParser/TripleTest.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -1354,6 +1354,24 @@ TEST(TripleTest, ParsedIDs) {
13541354
EXPECT_EQ(Triple::UnknownOS, T.getOS());
13551355
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
13561356

1357+
T = Triple("aarch64-unknown-managarm-mlibc");
1358+
EXPECT_EQ(Triple::aarch64, T.getArch());
1359+
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
1360+
EXPECT_EQ(Triple::Managarm, T.getOS());
1361+
EXPECT_EQ(Triple::Mlibc, T.getEnvironment());
1362+
1363+
T = Triple("x86_64-unknown-managarm-mlibc");
1364+
EXPECT_EQ(Triple::x86_64, T.getArch());
1365+
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
1366+
EXPECT_EQ(Triple::Managarm, T.getOS());
1367+
EXPECT_EQ(Triple::Mlibc, T.getEnvironment());
1368+
1369+
T = Triple("riscv64-unknown-managarm-mlibc");
1370+
EXPECT_EQ(Triple::riscv64, T.getArch());
1371+
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
1372+
EXPECT_EQ(Triple::Managarm, T.getOS());
1373+
EXPECT_EQ(Triple::Mlibc, T.getEnvironment());
1374+
13571375
T = Triple("huh");
13581376
EXPECT_EQ(Triple::UnknownArch, T.getArch());
13591377
}

0 commit comments

Comments
 (0)