Author: Brad Smith
Date: 2026-05-07T17:04:46-04:00
New Revision: 119f3385099b38aadc715d5352a4dd2d18a9264f

URL: 
https://github.com/llvm/llvm-project/commit/119f3385099b38aadc715d5352a4dd2d18a9264f
DIFF: 
https://github.com/llvm/llvm-project/commit/119f3385099b38aadc715d5352a4dd2d18a9264f.diff

LOG: [clang][RISCV] Remove some of the bits added with RISC-V big endian 
support (#192903)

- FreeBSD will not have any new 32-bit archs
- *BSD's are unlikely to touch BE RISC-V
- Keep the BE and LE targets separate

Added: 
    

Modified: 
    clang/lib/Basic/Targets.cpp
    clang/lib/Basic/Targets/OSTargets.h
    clang/lib/Driver/ToolChains/FreeBSD.cpp
    clang/test/Driver/freebsd.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 99fab175016ab..4c6d900d88980 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -437,7 +437,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,
@@ -448,8 +447,15 @@ std::unique_ptr<TargetInfo> AllocateTarget(const 
llvm::Triple &Triple,
       return std::make_unique<RISCV32TargetInfo>(Triple, Opts);
     }
 
+  case llvm::Triple::riscv32be:
+    switch (os) {
+    case llvm::Triple::Linux:
+      return std::make_unique<LinuxTargetInfo<RISCV32TargetInfo>>(Triple, 
Opts);
+    default:
+      return std::make_unique<RISCV32TargetInfo>(Triple, Opts);
+    }
+
   case llvm::Triple::riscv64:
-  case llvm::Triple::riscv64be:
     switch (os) {
     case llvm::Triple::FreeBSD:
       return std::make_unique<FreeBSDTargetInfo<RISCV64TargetInfo>>(Triple,
@@ -488,6 +494,14 @@ std::unique_ptr<TargetInfo> AllocateTarget(const 
llvm::Triple &Triple,
       return std::make_unique<RISCV64TargetInfo>(Triple, Opts);
     }
 
+  case llvm::Triple::riscv64be:
+    switch (os) {
+    case llvm::Triple::Linux:
+      return std::make_unique<LinuxTargetInfo<RISCV64TargetInfo>>(Triple, 
Opts);
+    default:
+      return std::make_unique<RISCV64TargetInfo>(Triple, Opts);
+    }
+
   case llvm::Triple::sparc:
     switch (os) {
     case llvm::Triple::Linux:

diff  --git a/clang/lib/Basic/Targets/OSTargets.h 
b/clang/lib/Basic/Targets/OSTargets.h
index c89104e2cd02b..235004d69c5cc 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/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/test/Driver/freebsd.c b/clang/test/Driver/freebsd.c
index 77310bed4c30f..62ded2336199b 100644
--- a/clang/test/Driver/freebsd.c
+++ b/clang/test/Driver/freebsd.c
@@ -226,3 +226,6 @@
 // PASS:      "--eh-frame-hdr"
 // PASS-SAME: "-export-dynamic"
 // PASS-SAME: "-s" "-t" "-T" "a.lds"
+
+// RUN: %clang -target riscv32be-unknown-freebsd -### -c %s 2>&1 | FileCheck 
%s --check-prefix=RV32BE
+// RV32BE-NOT: elf32briscv


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to