Index: CODE_OWNERS.TXT =================================================================== --- CODE_OWNERS.TXT +++ CODE_OWNERS.TXT @@ -155,6 +155,10 @@ E: jpienaar@google.com D: Lanai Backend +N: Shiva Chen +E: shiva0217@gmail.com +D: NDS32 backend (lib/Target/NDS32/*) + N: Paul Robinson E: paul_robinson@playstation.sony.com D: Sony PlayStation®4 support Index: include/llvm/ADT/Triple.h =================================================================== --- include/llvm/ADT/Triple.h +++ include/llvm/ADT/Triple.h @@ -59,6 +59,7 @@ mips64, // MIPS64: mips64 mips64el, // MIPS64EL: mips64el msp430, // MSP430: msp430 + nds32, // NDS32: nds32 32-Bit ppc, // PPC: powerpc ppc64, // PPC64: powerpc64, ppu ppc64le, // PPC64LE: powerpc64le Index: lib/Support/Triple.cpp =================================================================== --- lib/Support/Triple.cpp +++ lib/Support/Triple.cpp @@ -38,6 +38,7 @@ case ppc64le: return "powerpc64le"; case ppc: return "powerpc"; case r600: return "r600"; + case nds32: return "nds32"; case amdgcn: return "amdgcn"; case riscv32: return "riscv32"; case riscv64: return "riscv64"; @@ -89,6 +90,8 @@ case avr: return "avr"; + case nds32: return "nds32"; + case ppc64: case ppc64le: case ppc: return "ppc"; @@ -281,6 +284,7 @@ .Case("x86", x86) .Case("x86-64", x86_64) .Case("xcore", xcore) + .Case("nds32", nds32) .Case("nvptx", nvptx) .Case("nvptx64", nvptx64) .Case("le32", le32) @@ -395,6 +399,7 @@ .Case("tce", Triple::tce) .Case("tcele", Triple::tcele) .Case("xcore", Triple::xcore) + .Cases("nds32", "nds32le", Triple::nds32) .Case("nvptx", Triple::nvptx) .Case("nvptx64", Triple::nvptx64) .Case("le32", Triple::le32) @@ -619,6 +624,7 @@ case Triple::mips64el: case Triple::mipsel: case Triple::msp430: + case Triple::nds32: case Triple::nvptx: case Triple::nvptx64: case Triple::ppc64le: @@ -1152,6 +1158,7 @@ case llvm::Triple::le32: case llvm::Triple::mips: case llvm::Triple::mipsel: + case llvm::Triple::nds32: case llvm::Triple::nvptx: case llvm::Triple::ppc: case llvm::Triple::r600: @@ -1236,6 +1243,7 @@ case Triple::mips: case Triple::mipsel: case Triple::nvptx: + case Triple::nds32: case Triple::ppc: case Triple::r600: case Triple::riscv32: @@ -1282,6 +1290,7 @@ case Triple::kalimba: case Triple::lanai: case Triple::msp430: + case Triple::nds32: case Triple::r600: case Triple::tce: case Triple::tcele: @@ -1355,6 +1364,7 @@ case Triple::msp430: case Triple::nvptx64: case Triple::nvptx: + case Triple::nds32: case Triple::r600: case Triple::riscv32: case Triple::riscv64: @@ -1441,6 +1451,7 @@ case Triple::msp430: case Triple::nvptx64: case Triple::nvptx: + case Triple::nds32: case Triple::ppc64le: case Triple::r600: case Triple::riscv32: Index: unittests/ADT/TripleTest.cpp =================================================================== --- unittests/ADT/TripleTest.cpp +++ unittests/ADT/TripleTest.cpp @@ -236,6 +236,19 @@ EXPECT_EQ(Triple::UnknownOS, T.getOS()); EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("nds32-unknown-unknown"); + EXPECT_EQ(Triple::nds32, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::UnknownOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + + T = Triple("nds32"); + EXPECT_EQ(Triple::nds32, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::UnknownOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + + T = Triple("lanai-unknown-unknown"); EXPECT_EQ(Triple::lanai, T.getArch()); EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); @@ -573,6 +586,11 @@ EXPECT_FALSE(T.isArch32Bit()); EXPECT_FALSE(T.isArch64Bit()); + T.setArch(Triple::nds32); + EXPECT_FALSE(T.isArch16Bit()); + EXPECT_TRUE(T.isArch32Bit()); + EXPECT_FALSE(T.isArch64Bit()); + T.setArch(Triple::lanai); EXPECT_FALSE(T.isArch16Bit()); EXPECT_TRUE(T.isArch32Bit()); @@ -744,6 +762,10 @@ EXPECT_EQ(Triple::mips, T.getBigEndianArchVariant().getArch()); EXPECT_EQ(Triple::mipsel, T.getLittleEndianArchVariant().getArch()); + T.setArch(Triple::nds32); + EXPECT_EQ(Triple::UnknownArch, T.getBigEndianArchVariant().getArch()); + EXPECT_EQ(Triple::nds32, T.getLittleEndianArchVariant().getArch()); + T.setArch(Triple::ppc); EXPECT_EQ(Triple::ppc, T.getBigEndianArchVariant().getArch()); EXPECT_EQ(Triple::UnknownArch, T.getLittleEndianArchVariant().getArch());