[llvm-branch-commits] [clang] 2c387b5 - Revert "[clang][RISCV] Add big-endian RISC-V target support (#165599)"

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Jan 14 13:51:39 PST 2026


Author: Djordje Todorovic
Date: 2026-01-14T22:51:34+01:00
New Revision: 2c387b55cc3b594f06b6e98cc0f11e83b982bde8

URL: https://github.com/llvm/llvm-project/commit/2c387b55cc3b594f06b6e98cc0f11e83b982bde8
DIFF: https://github.com/llvm/llvm-project/commit/2c387b55cc3b594f06b6e98cc0f11e83b982bde8.diff

LOG: Revert "[clang][RISCV] Add big-endian RISC-V target support (#165599)"

This reverts commit 2bce962db211e20425c6d89afb56295c7022ee94.

Added: 
    

Modified: 
    clang/include/clang/Basic/Attr.td
    clang/include/clang/Basic/DiagnosticDriverKinds.td
    clang/include/clang/Basic/DiagnosticGroups.td
    clang/include/clang/Basic/ObjCRuntime.h
    clang/lib/Basic/Targets.cpp
    clang/lib/Basic/Targets/OSTargets.h
    clang/lib/CodeGen/CGBuiltin.cpp
    clang/lib/CodeGen/CodeGenFunction.cpp
    clang/lib/CodeGen/CodeGenModule.cpp
    clang/lib/Driver/Driver.cpp
    clang/lib/Driver/ToolChain.cpp
    clang/lib/Driver/ToolChains/BareMetal.cpp
    clang/lib/Driver/ToolChains/Clang.cpp
    clang/lib/Driver/ToolChains/CommonArgs.cpp
    clang/lib/Driver/ToolChains/FreeBSD.cpp
    clang/lib/Driver/ToolChains/Gnu.cpp
    clang/lib/Driver/ToolChains/Linux.cpp
    clang/lib/Sema/SemaChecking.cpp
    clang/lib/Sema/SemaDeclAttr.cpp

Removed: 
    clang/test/CodeGen/riscv-be-data-layout.c
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/crtbegin.o
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib32/ilp32/crtbegin.o
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib32/ilp32d/crtbegin.o
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64/crtbegin.o
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d/crtbegin.o
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/riscv64be-unknown-linux-gnu/bin/ld
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32d/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64d/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32d/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64/.keep
    clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64d/.keep
    clang/test/Driver/riscv-be.c


################################################################################
diff  --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td
index 6877c2e6019da..efa64dbe4b51e 100644
--- a/clang/include/clang/Basic/Attr.td
+++ b/clang/include/clang/Basic/Attr.td
@@ -476,7 +476,7 @@ def TargetMips32 : TargetArch<["mips", "mipsel"]>;
 def TargetAnyMips : TargetArch<["mips", "mipsel", "mips64", "mips64el"]>;
 def TargetMSP430 : TargetArch<["msp430"]>;
 def TargetM68k : TargetArch<["m68k"]>;
-def TargetRISCV : TargetArch<["riscv32", "riscv64", "riscv32be", "riscv64be"]>;
+def TargetRISCV : TargetArch<["riscv32", "riscv64"]>;
 def TargetX86 : TargetArch<["x86"]>;
 def TargetX86_64 : TargetArch<["x86_64"]>;
 def TargetAnyX86 : TargetArch<["x86", "x86_64"]>;

diff  --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index cffe1d88ebbb1..db0f521b73544 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -446,9 +446,6 @@ def warn_ignored_clang_option : Warning<"the flag '%0' has been deprecated and w
 def warn_drv_unsupported_opt_for_target : Warning<
   "optimization flag '%0' is not supported for target '%1'">,
   InGroup<IgnoredOptimizationArgument>;
-def warn_drv_riscv_be_experimental : Warning<
-  "big-endian RISC-V target support is experimental">,
-  InGroup<RISCVBEExperimental>;
 def warn_drv_unsupported_debug_info_opt_for_target : Warning<
   "debug information option '%0' is not supported for target '%1'">,
   InGroup<UnsupportedTargetOpt>;

diff  --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td
index a75a2a1b37763..3764475fbd3df 100644
--- a/clang/include/clang/Basic/DiagnosticGroups.td
+++ b/clang/include/clang/Basic/DiagnosticGroups.td
@@ -148,7 +148,6 @@ def UnsupportedFPOpt : DiagGroup<"unsupported-floating-point-opt">;
 def UnsupportedCB : DiagGroup<"unsupported-cb">;
 def UnsupportedGPOpt : DiagGroup<"unsupported-gpopt">;
 def UnsupportedTargetOpt : DiagGroup<"unsupported-target-opt">;
-def RISCVBEExperimental : DiagGroup<"riscv-be-experimental">;
 def NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">;
 def NullConversion : DiagGroup<"null-conversion">;
 def ImplicitConversionFloatingPointToBool :

diff  --git a/clang/include/clang/Basic/ObjCRuntime.h b/clang/include/clang/Basic/ObjCRuntime.h
index efb7c6692bfcf..df42b43898611 100644
--- a/clang/include/clang/Basic/ObjCRuntime.h
+++ b/clang/include/clang/Basic/ObjCRuntime.h
@@ -110,7 +110,6 @@ class ObjCRuntime {
       case llvm::Triple::mips64:
         return !(getVersion() >= VersionTuple(1, 9));
       case llvm::Triple::riscv64:
-      case llvm::Triple::riscv64be:
         return !(getVersion() >= VersionTuple(2, 2));
       default:
         return true;

diff  --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 72b545961de4c..263253918d965 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -432,7 +432,6 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
     return std::make_unique<AMDGPUTargetInfo>(Triple, Opts);
 
   case llvm::Triple::riscv32:
-  case llvm::Triple::riscv32be:
     switch (os) {
     case llvm::Triple::NetBSD:
       return std::make_unique<NetBSDTargetInfo<RISCV32TargetInfo>>(Triple,
@@ -444,7 +443,6 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
     }
 
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv64be:
     switch (os) {
     case llvm::Triple::FreeBSD:
       return std::make_unique<FreeBSDTargetInfo<RISCV64TargetInfo>>(Triple,

diff  --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h
index 24bc300f3774e..04608649a8634 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -255,7 +255,6 @@ class LLVM_LIBRARY_VISIBILITY FreeBSDTargetInfo : public OSTargetInfo<Target> {
       break;
     case llvm::Triple::loongarch64:
     case llvm::Triple::riscv64:
-    case llvm::Triple::riscv64be:
       break;
     }
   }
@@ -520,7 +519,6 @@ class LLVM_LIBRARY_VISIBILITY OpenBSDTargetInfo : public OSTargetInfo<Target> {
       break;
     case llvm::Triple::loongarch64:
     case llvm::Triple::riscv64:
-    case llvm::Triple::riscv64be:
       break;
     }
   }

diff  --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index f9c963ddf8c9e..dd8ba79edc219 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -121,8 +121,6 @@ static Value *EmitTargetArchBuiltinExpr(CodeGenFunction *CGF,
     return CGF->EmitHexagonBuiltinExpr(BuiltinID, E);
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     return CGF->EmitRISCVBuiltinExpr(BuiltinID, E, ReturnValue);
   case llvm::Triple::spirv32:
   case llvm::Triple::spirv64:

diff  --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index 45720849b1ffb..bec359eb2b6b3 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -3002,8 +3002,6 @@ void CodeGenFunction::EmitMultiVersionResolver(
     return;
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     EmitRISCVMultiVersionResolver(Resolver, Options);
     return;
 

diff  --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 590c419b9a0bd..614bca627e03c 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -224,9 +224,7 @@ createTargetCodeGenInfo(CodeGenModule &CGM) {
     return createMSP430TargetCodeGenInfo(CGM);
 
   case llvm::Triple::riscv32:
-  case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be: {
+  case llvm::Triple::riscv64: {
     StringRef ABIStr = Target.getABI();
     unsigned XLen = Target.getPointerWidth(LangAS::Default);
     unsigned ABIFLen = 0;

diff  --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index a0934dd627b0b..eb3f9cbea2845 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -801,30 +801,14 @@ static llvm::Triple computeTargetTriple(const Driver &D,
           ArchName, /*EnableExperimentalExtensions=*/true);
       if (!llvm::errorToBool(ISAInfo.takeError())) {
         unsigned XLen = (*ISAInfo)->getXLen();
-        if (XLen == 32) {
-          if (Target.isLittleEndian())
-            Target.setArch(llvm::Triple::riscv32);
-          else
-            Target.setArch(llvm::Triple::riscv32be);
-        } else if (XLen == 64) {
-          if (Target.isLittleEndian())
-            Target.setArch(llvm::Triple::riscv64);
-          else
-            Target.setArch(llvm::Triple::riscv64be);
-        }
+        if (XLen == 32)
+          Target.setArch(llvm::Triple::riscv32);
+        else if (XLen == 64)
+          Target.setArch(llvm::Triple::riscv64);
       }
     }
   }
 
-  if (Target.getArch() == llvm::Triple::riscv32be ||
-      Target.getArch() == llvm::Triple::riscv64be) {
-    static bool WarnedRISCVBE = false;
-    if (!WarnedRISCVBE) {
-      D.Diag(diag::warn_drv_riscv_be_experimental);
-      WarnedRISCVBE = true;
-    }
-  }
-
   return Target;
 }
 
@@ -7009,8 +6993,6 @@ const ToolChain &Driver::getToolChain(const ArgList &Args,
         break;
       case llvm::Triple::riscv32:
       case llvm::Triple::riscv64:
-      case llvm::Triple::riscv32be:
-      case llvm::Triple::riscv64be:
         TC = std::make_unique<toolchains::BareMetal>(*this, Target, Args);
         break;
       case llvm::Triple::ve:

diff  --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 0eee7f917d2b8..77a2c73f0d446 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -370,8 +370,6 @@ ToolChain::getMultilibFlags(const llvm::opt::ArgList &Args) const {
     break;
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     getRISCVMultilibFlags(D, Triple, Args, Result);
     break;
   default:

diff  --git a/clang/lib/Driver/ToolChains/BareMetal.cpp b/clang/lib/Driver/ToolChains/BareMetal.cpp
index 0602a8a19f943..6574651b72a3e 100644
--- a/clang/lib/Driver/ToolChains/BareMetal.cpp
+++ b/clang/lib/Driver/ToolChains/BareMetal.cpp
@@ -733,7 +733,7 @@ SanitizerMask BareMetal::getSupportedSanitizers() const {
   const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
   const bool IsAArch64 = getTriple().getArch() == llvm::Triple::aarch64 ||
                          getTriple().getArch() == llvm::Triple::aarch64_be;
-  const bool IsRISCV64 = getTriple().isRISCV64();
+  const bool IsRISCV64 = getTriple().getArch() == llvm::Triple::riscv64;
   SanitizerMask Res = ToolChain::getSupportedSanitizers();
   Res |= SanitizerKind::Address;
   Res |= SanitizerKind::KernelAddress;

diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 430130ec92cab..4ca98600d6e93 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1218,8 +1218,6 @@ static bool isSignedCharDefault(const llvm::Triple &Triple) {
   case llvm::Triple::ppc64le:
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
   case llvm::Triple::systemz:
   case llvm::Triple::xcore:
   case llvm::Triple::xtensa:
@@ -1566,8 +1564,6 @@ void Clang::RenderTargetOptions(const llvm::Triple &EffectiveTriple,
 
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     AddRISCVTargetArgs(Args, CmdArgs);
     break;
 
@@ -5670,7 +5666,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
             << Name << Triple.getArchName();
     } else if (Name == "SLEEF" || Name == "ArmPL") {
       if (Triple.getArch() != llvm::Triple::aarch64 &&
-          Triple.getArch() != llvm::Triple::aarch64_be && !Triple.isRISCV64())
+          Triple.getArch() != llvm::Triple::aarch64_be &&
+          Triple.getArch() != llvm::Triple::riscv64)
         D.Diag(diag::err_drv_unsupported_opt_for_target)
             << Name << Triple.getArchName();
     }
@@ -8832,8 +8829,6 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
 
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     AddRISCVTargetArgs(Args, CmdArgs);
     break;
 

diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 001504b835114..10a1a412eea08 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -90,8 +90,6 @@ static bool useFramePointerForTargetByDefault(const llvm::opt::ArgList &Args,
   case llvm::Triple::ppc64le:
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
   case llvm::Triple::sparc:
   case llvm::Triple::sparcel:
   case llvm::Triple::sparcv9:
@@ -610,10 +608,6 @@ const char *tools::getLDMOption(const llvm::Triple &T, const ArgList &Args) {
     return "elf32lriscv";
   case llvm::Triple::riscv64:
     return "elf64lriscv";
-  case llvm::Triple::riscv32be:
-    return "elf32briscv";
-  case llvm::Triple::riscv64be:
-    return "elf64briscv";
   case llvm::Triple::sparc:
   case llvm::Triple::sparcel:
     return "elf32_sparc";
@@ -791,8 +785,6 @@ std::string tools::getCPUName(const Driver &D, const ArgList &Args,
       return "ck810";
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     return riscv::getRISCVTargetCPU(Args, T);
 
   case llvm::Triple::bpfel:
@@ -874,8 +866,6 @@ void tools::getTargetFeatures(const Driver &D, const llvm::Triple &Triple,
     break;
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     riscv::getRISCVTargetFeatures(D, Triple, Args, Features);
     break;
   case llvm::Triple::systemz:

diff  --git a/clang/lib/Driver/ToolChains/FreeBSD.cpp b/clang/lib/Driver/ToolChains/FreeBSD.cpp
index cf6ad385d949a..70e66a2f5c3e7 100644
--- a/clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ b/clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -212,14 +212,6 @@ void freebsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back("-m");
     CmdArgs.push_back("elf64lriscv");
     break;
-  case llvm::Triple::riscv32be:
-    CmdArgs.push_back("-m");
-    CmdArgs.push_back("elf32briscv");
-    break;
-  case llvm::Triple::riscv64be:
-    CmdArgs.push_back("-m");
-    CmdArgs.push_back("elf64briscv");
-    break;
   case llvm::Triple::loongarch64:
     CmdArgs.push_back("-m");
     CmdArgs.push_back("elf64loongarch");

diff  --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 1bc9d7738ae2d..7ecdbe7c57650 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -672,9 +672,7 @@ void tools::gnutools::Assembler::ConstructJob(Compilation &C,
     break;
   }
   case llvm::Triple::riscv32:
-  case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be: {
+  case llvm::Triple::riscv64: {
     StringRef ABIName = riscv::getRISCVABI(Args, getToolChain().getTriple());
     CmdArgs.push_back("-mabi");
     CmdArgs.push_back(ABIName.data());
@@ -1734,20 +1732,16 @@ static void findRISCVBareMetalMultilibs(const Driver &D,
             .flag(Twine("-march=", Element.march).str())
             .flag(Twine("-mabi=", Element.mabi).str()));
   }
-
-  StringRef EndiannessSuffix = TargetTriple.isLittleEndian() ? "" : "be";
   MultilibSet RISCVMultilibs =
       MultilibSetBuilder()
           .Either(Ms)
           .makeMultilibSet()
           .FilterOut(NonExistent)
-          .setFilePathsCallback([EndiannessSuffix](const Multilib &M) {
+          .setFilePathsCallback([](const Multilib &M) {
             return std::vector<std::string>(
                 {M.gccSuffix(),
-                 "/../../../../riscv64" + EndiannessSuffix.str() +
-                     "-unknown-elf/lib" + M.gccSuffix(),
-                 "/../../../../riscv32" + EndiannessSuffix.str() +
-                     "-unknown-elf/lib" + M.gccSuffix()});
+                 "/../../../../riscv64-unknown-elf/lib" + M.gccSuffix(),
+                 "/../../../../riscv32-unknown-elf/lib" + M.gccSuffix()});
           });
 
   Multilib::flags_list Flags;
@@ -1795,7 +1789,7 @@ static void findRISCVMultilibs(const Driver &D,
           .FilterOut(NonExistent);
 
   Multilib::flags_list Flags;
-  bool IsRV64 = TargetTriple.isRISCV64();
+  bool IsRV64 = TargetTriple.getArch() == llvm::Triple::riscv64;
   StringRef ABIName = tools::riscv::getRISCVABI(Args, TargetTriple);
 
   addMultilibFlag(!IsRV64, "-m32", Flags);
@@ -2436,15 +2430,6 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
   static const char *const RISCV64Triples[] = {"riscv64-unknown-linux-gnu",
                                                "riscv64-unknown-elf"};
 
-  static const char *const RISCV32beLibDirs[] = {"/lib32", "/lib"};
-  static const char *const RISCV32beTriples[] = {"riscv32be-unknown-linux-gnu",
-                                                 "riscv32be-linux-gnu",
-                                                 "riscv32be-unknown-elf"};
-  static const char *const RISCV64beLibDirs[] = {"/lib64", "/lib"};
-  static const char *const RISCV64beTriples[] = {"riscv64be-unknown-linux-gnu",
-                                                 "riscv64be-linux-gnu",
-                                                 "riscv64be-unknown-elf"};
-
   static const char *const SPARCv8LibDirs[] = {"/lib32", "/lib"};
   static const char *const SPARCv8Triples[] = {"sparc-linux-gnu",
                                                "sparcv8-linux-gnu"};
@@ -2737,18 +2722,6 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
     BiarchLibDirs.append(begin(RISCV32LibDirs), end(RISCV32LibDirs));
     BiarchTripleAliases.append(begin(RISCV32Triples), end(RISCV32Triples));
     break;
-  case llvm::Triple::riscv32be:
-    LibDirs.append(begin(RISCV32beLibDirs), end(RISCV32beLibDirs));
-    TripleAliases.append(begin(RISCV32beTriples), end(RISCV32beTriples));
-    BiarchLibDirs.append(begin(RISCV64beLibDirs), end(RISCV64beLibDirs));
-    BiarchTripleAliases.append(begin(RISCV64beTriples), end(RISCV64beTriples));
-    break;
-  case llvm::Triple::riscv64be:
-    LibDirs.append(begin(RISCV64beLibDirs), end(RISCV64beLibDirs));
-    TripleAliases.append(begin(RISCV64beTriples), end(RISCV64beTriples));
-    BiarchLibDirs.append(begin(RISCV32beLibDirs), end(RISCV32beLibDirs));
-    BiarchTripleAliases.append(begin(RISCV32beTriples), end(RISCV32beTriples));
-    break;
   case llvm::Triple::sparc:
   case llvm::Triple::sparcel:
     LibDirs.append(begin(SPARCv8LibDirs), end(SPARCv8LibDirs));
@@ -3064,8 +3037,6 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const {
   case llvm::Triple::ppc64le:
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
   case llvm::Triple::x86:
   case llvm::Triple::x86_64:
     return UnwindTableLevel::Asynchronous;

diff  --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 86833e058a819..cdbf21fb90263 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -203,7 +203,7 @@ static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) {
   if (Triple.getArch() == llvm::Triple::x86_64 && Triple.isX32())
     return "libx32";
 
-  if (Triple.isRISCV32())
+  if (Triple.getArch() == llvm::Triple::riscv32)
     return "lib32";
 
   return Triple.isArch32Bit() ? "lib" : "lib64";
@@ -679,9 +679,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
         (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
     break;
   case llvm::Triple::riscv32:
-  case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be: {
+  case llvm::Triple::riscv64: {
     StringRef ArchName = llvm::Triple::getArchTypeName(Arch);
     StringRef ABIName = tools::riscv::getRISCVABI(Args, Triple);
     LibDir = "lib";
@@ -902,7 +900,7 @@ SanitizerMask Linux::getSupportedSanitizers() const {
                          getTriple().getArch() == llvm::Triple::armeb ||
                          getTriple().getArch() == llvm::Triple::thumbeb;
   const bool IsLoongArch64 = getTriple().getArch() == llvm::Triple::loongarch64;
-  const bool IsRISCV64 = getTriple().isRISCV64();
+  const bool IsRISCV64 = getTriple().getArch() == llvm::Triple::riscv64;
   const bool IsSystemZ = getTriple().getArch() == llvm::Triple::systemz;
   const bool IsHexagon = getTriple().getArch() == llvm::Triple::hexagon;
   const bool IsAndroid = getTriple().isAndroid();

diff  --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index d232095e204c7..ba4b25961d70d 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -2117,8 +2117,6 @@ bool Sema::CheckTSBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID,
     return AMDGPU().CheckAMDGCNBuiltinFunctionCall(BuiltinID, TheCall);
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     return RISCV().CheckBuiltinFunctionCall(TI, BuiltinID, TheCall);
   case llvm::Triple::loongarch32:
   case llvm::Triple::loongarch64:

diff  --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 27619df3aed21..d762bcd789bf5 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -6285,8 +6285,6 @@ static void handleInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
     break;
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv32be:
-  case llvm::Triple::riscv64be:
     S.RISCV().handleInterruptAttr(D, AL);
     break;
   default:

diff  --git a/clang/test/CodeGen/riscv-be-data-layout.c b/clang/test/CodeGen/riscv-be-data-layout.c
deleted file mode 100644
index 9f88464da7587..0000000000000
--- a/clang/test/CodeGen/riscv-be-data-layout.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// REQUIRES: riscv-registered-target
-// RUN: %clang_cc1 -triple riscv64be-unknown-elf -emit-llvm %s -o - \
-// RUN:   | FileCheck %s --check-prefix=RV64
-// RUN: %clang_cc1 -triple riscv32be-unknown-elf -emit-llvm %s -o - \
-// RUN:   | FileCheck %s --check-prefix=RV32
-
-// RV64: target datalayout = "E-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
-// RV32: target datalayout = "E-m:e-p:32:32-i64:64-n32-S128"
-
-int foo(void) {
-  return 0;
-}

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/crtbegin.o b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/crtbegin.o
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib32/ilp32/crtbegin.o b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib32/ilp32/crtbegin.o
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib32/ilp32d/crtbegin.o b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib32/ilp32d/crtbegin.o
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64/crtbegin.o b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64/crtbegin.o
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d/crtbegin.o b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d/crtbegin.o
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/riscv64be-unknown-linux-gnu/bin/ld b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/riscv64be-unknown-linux-gnu/bin/ld
deleted file mode 100755
index 25b914c0f79f3..0000000000000
--- a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/riscv64be-unknown-linux-gnu/bin/ld
+++ /dev/null
@@ -1 +0,0 @@
-#\!/bin/true

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32d/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32d/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64d/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64d/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32d/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32d/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64d/.keep b/clang/test/Driver/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64d/.keep
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/clang/test/Driver/riscv-be.c b/clang/test/Driver/riscv-be.c
deleted file mode 100644
index 3344d2eaecbc2..0000000000000
--- a/clang/test/Driver/riscv-be.c
+++ /dev/null
@@ -1,95 +0,0 @@
-// UNSUPPORTED: system-windows
-// REQUIRES: riscv-registered-target
-// RUN: %clang -target riscv64be-unknown-elf -### %s 2>&1 \
-// RUN:   | FileCheck %s
-// RUN: %clang -target riscv64be-unknown-elf -Wno-riscv-be-experimental -### %s 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=NOWARN
-
-// CHECK: warning: big-endian RISC-V target support is experimental
-// CHECK: "-triple" "riscv64be-unknown-unknown-elf"
-// NOWARN-NOT: warning: big-endian RISC-V target support is experimental
-// NOWARN: "-triple" "riscv64be-unknown-unknown-elf"
-
-/// Test dynamic linker for big-endian RISC-V Linux targets
-// RUN: %clang -### %s --target=riscv64be-unknown-linux-gnu \
-// RUN:   -Wno-riscv-be-experimental --rtlib=platform -mabi=lp64d 2>&1 \
-// RUN:   | FileCheck -check-prefix=RV64BE-LINUX-LP64D %s
-// RV64BE-LINUX-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64d.so.1"
-
-// RUN: %clang -### %s --target=riscv64be-unknown-linux-gnu \
-// RUN:   -Wno-riscv-be-experimental --rtlib=platform -mabi=lp64 2>&1 \
-// RUN:   | FileCheck -check-prefix=RV64BE-LINUX-LP64 %s
-// RV64BE-LINUX-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64.so.1"
-
-// RUN: %clang -### %s --target=riscv32be-unknown-linux-gnu \
-// RUN:   -Wno-riscv-be-experimental --rtlib=platform -mabi=ilp32d 2>&1 \
-// RUN:   | FileCheck -check-prefix=RV32BE-LINUX-ILP32D %s
-// RV32BE-LINUX-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32d.so.1"
-
-// RUN: %clang -### %s --target=riscv32be-unknown-linux-gnu \
-// RUN:   -Wno-riscv-be-experimental --rtlib=platform -mabi=ilp32 2>&1 \
-// RUN:   | FileCheck -check-prefix=RV32BE-LINUX-ILP32 %s
-// RV32BE-LINUX-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32.so.1"
-
-/// Test big-endian RISC-V GCC multilib directory layout
-// RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \
-// RUN:   --target=riscv64be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -mabi=lp64 \
-// RUN:   -Wno-riscv-be-experimental \
-// RUN:   --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \
-// RUN:   --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \
-// RUN:   | FileCheck -check-prefix=C-RV64BE-LINUX-MULTI-LP64 %s
-
-// C-RV64BE-LINUX-MULTI-LP64: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/../../../../riscv64be-unknown-linux-gnu/bin/ld"
-// C-RV64BE-LINUX-MULTI-LP64: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot"
-// C-RV64BE-LINUX-MULTI-LP64: "-m" "elf64briscv" "-X"
-// C-RV64BE-LINUX-MULTI-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64.so.1"
-// C-RV64BE-LINUX-MULTI-LP64: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64/crtbegin.o"
-// C-RV64BE-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64"
-// C-RV64BE-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64"
-// C-RV64BE-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64"
-
-// RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \
-// RUN:   --target=riscv64be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -march=rv64imafd \
-// RUN:   -Wno-riscv-be-experimental \
-// RUN:   --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \
-// RUN:   --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \
-// RUN:   | FileCheck -check-prefix=C-RV64BE-LINUX-MULTI-LP64D %s
-
-// C-RV64BE-LINUX-MULTI-LP64D: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/../../../../riscv64be-unknown-linux-gnu/bin/ld"
-// C-RV64BE-LINUX-MULTI-LP64D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot"
-// C-RV64BE-LINUX-MULTI-LP64D: "-m" "elf64briscv"
-// C-RV64BE-LINUX-MULTI-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64be-lp64d.so.1"
-// C-RV64BE-LINUX-MULTI-LP64D: "{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d/crtbegin.o"
-// C-RV64BE-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/lib/gcc/riscv64be-unknown-linux-gnu/7.2.0/lib64/lp64d"
-// C-RV64BE-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib64/lp64d"
-// C-RV64BE-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib64/lp64d"
-
-// RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \
-// RUN:   --target=riscv32be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -mabi=ilp32 \
-// RUN:   -Wno-riscv-be-experimental \
-// RUN:   --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \
-// RUN:   --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \
-// RUN:   | FileCheck -check-prefix=C-RV32BE-LINUX-MULTI-ILP32 %s
-
-// C-RV32BE-LINUX-MULTI-ILP32: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot"
-// C-RV32BE-LINUX-MULTI-ILP32: "-m" "elf32briscv" "-X"
-// C-RV32BE-LINUX-MULTI-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32.so.1"
-// C-RV32BE-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32"
-// C-RV32BE-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32"
-
-// RUN: env "PATH=" %clang -### %s -fuse-ld= -no-pie \
-// RUN:   --target=riscv32be-unknown-linux-gnu --rtlib=platform --unwindlib=platform -march=rv32imafd \
-// RUN:   -Wno-riscv-be-experimental \
-// RUN:   --gcc-toolchain=%S/Inputs/multilib_riscv_linux_sdk_be \
-// RUN:   --sysroot=%S/Inputs/multilib_riscv_linux_sdk_be/sysroot 2>&1 \
-// RUN:   | FileCheck -check-prefix=C-RV32BE-LINUX-MULTI-ILP32D %s
-
-// C-RV32BE-LINUX-MULTI-ILP32D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot"
-// C-RV32BE-LINUX-MULTI-ILP32D: "-m" "elf32briscv"
-// C-RV32BE-LINUX-MULTI-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32be-ilp32d.so.1"
-// C-RV32BE-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/lib32/ilp32d"
-// C-RV32BE-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk_be/sysroot/usr/lib32/ilp32d"
-
-int foo(void) {
-  return 0;
-}


        


More information about the llvm-branch-commits mailing list