https://github.com/wzssyqa created https://github.com/llvm/llvm-project/pull/192204
openRuyi is a rolling release focusing on RISC-V support, which is launched by Institute of Software, CAS. The default ISA level is set to RVA23U64. See: https://openruyi.cn/ >From 5812e9ac6c21f76fc58f2bebee8432d7fbfc2449 Mon Sep 17 00:00:00 2001 From: YunQiang Su <[email protected]> Date: Wed, 15 Apr 2026 15:48:55 +0800 Subject: [PATCH] Support Vendor openruyi openRuyi is a rolling release focusing on RISC-V support, which is launched by Institute of Software, CAS. The default ISA level is set to RVA23U64. See: https://openruyi.cn/ --- clang/lib/Driver/ToolChains/Arch/RISCV.cpp | 4 ++++ llvm/include/llvm/TargetParser/Triple.h | 3 ++- llvm/lib/TargetParser/Triple.cpp | 3 +++ llvm/unittests/TargetParser/TripleTest.cpp | 6 ++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp index 7fda8ea50223d..63ceaefb11872 100644 --- a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp +++ b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp @@ -320,6 +320,8 @@ std::string riscv::getRISCVArch(const llvm::opt::ArgList &Args, return "rv64imafdcv_zba_zbb_zbs"; if (Triple.isOSFuchsia()) return "rva22u64_v"; + if (Triple.getVendor() == llvm::Triple::openRuyi) + return "rva23u64"; return "rv64imafdc"; } } @@ -341,6 +343,8 @@ std::string riscv::getRISCVArch(const llvm::opt::ArgList &Args, return "rv64imafdcv_zba_zbb_zbs"; if (Triple.isOSFuchsia()) return "rva22u64_v"; + if (Triple.getVendor() == llvm::Triple::openRuyi) + return "rva23u64"; return "rv64imafdc"; } diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h index fb4aaaa067ae9..a7632d3b67946 100644 --- a/llvm/include/llvm/TargetParser/Triple.h +++ b/llvm/include/llvm/TargetParser/Triple.h @@ -203,7 +203,8 @@ class Triple { OpenEmbedded, Intel, Meta, - LastVendorType = Meta + openRuyi, + LastVendorType = openRuyi }; enum OSType { UnknownOS, diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index 63dac93b30df8..04ad67c4c4cc2 100644 --- a/llvm/lib/TargetParser/Triple.cpp +++ b/llvm/lib/TargetParser/Triple.cpp @@ -387,6 +387,8 @@ StringRef Triple::getVendorTypeName(VendorType Kind) { return "suse"; case Meta: return "meta"; + case openRuyi: + return "openruyi"; } llvm_unreachable("Invalid VendorType!"); @@ -906,6 +908,7 @@ static Triple::VendorType parseVendor(StringRef VendorName) { .Case("oe", Triple::OpenEmbedded) .Case("intel", Triple::Intel) .Case("meta", Triple::Meta) + .Case("openruyi", Triple::openRuyi) .Default(Triple::UnknownVendor); } diff --git a/llvm/unittests/TargetParser/TripleTest.cpp b/llvm/unittests/TargetParser/TripleTest.cpp index 5f83fdd0ba000..b8cacc96777f9 100644 --- a/llvm/unittests/TargetParser/TripleTest.cpp +++ b/llvm/unittests/TargetParser/TripleTest.cpp @@ -854,6 +854,12 @@ TEST(TripleTest, ParsedIDs) { EXPECT_EQ(Triple::Hurd, T.getOS()); EXPECT_EQ(Triple::GNU, T.getEnvironment()); + T = Triple("riscv64-openruyi-linux"); + EXPECT_EQ(Triple::riscv64, T.getArch()); + EXPECT_EQ(Triple::openRuyi, T.getVendor()); + EXPECT_EQ(Triple::Linux, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("armv7hl-suse-linux-gnueabi"); EXPECT_EQ(Triple::arm, T.getArch()); EXPECT_EQ(Triple::SUSE, T.getVendor()); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
