From: Alex Bradbury Date: Mon, 8 Jul 2019 14:52:36 +0000 (+0000) Subject: [Triple] Add isRISCV function X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4586bdecf94a6f327c4b98d54a55fd8278003e27;p=llvm [Triple] Add isRISCV function This matches isARM, isThumb, isAArch64 and similar helpers. Future commits which clean-up code that currently checks for Triple::riscv32 || Triple::riscv64. Differential Revision: https://reviews.llvm.org/D54215 Patch by Simon Cook. Test case added by Alex Bradbury. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365327 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h index 926039ca598..edeb31efab8 100644 --- a/include/llvm/ADT/Triple.h +++ b/include/llvm/ADT/Triple.h @@ -725,6 +725,11 @@ public: return getArch() == Triple::ppc64 || getArch() == Triple::ppc64le; } + /// Tests whether the target is RISC-V (32- and 64-bit). + bool isRISCV() const { + return getArch() == Triple::riscv32 || getArch() == Triple::riscv64; + } + /// Tests whether the target supports comdat bool supportsCOMDAT() const { return !isOSBinFormatMachO(); diff --git a/unittests/ADT/TripleTest.cpp b/unittests/ADT/TripleTest.cpp index b0f089ac1d8..556d9b9fb3e 100644 --- a/unittests/ADT/TripleTest.cpp +++ b/unittests/ADT/TripleTest.cpp @@ -876,11 +876,13 @@ TEST(TripleTest, BitWidthPredicates) { EXPECT_FALSE(T.isArch16Bit()); EXPECT_TRUE(T.isArch32Bit()); EXPECT_FALSE(T.isArch64Bit()); + EXPECT_TRUE(T.isRISCV()); T.setArch(Triple::riscv64); EXPECT_FALSE(T.isArch16Bit()); EXPECT_FALSE(T.isArch32Bit()); EXPECT_TRUE(T.isArch64Bit()); + EXPECT_TRUE(T.isRISCV()); } TEST(TripleTest, BitWidthArchVariants) {