[lld] [lld][ELF] Recognize sparcv9 bitcode (PR #72609)

Brad Smith via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 17 00:53:45 PST 2023


https://github.com/brad0 updated https://github.com/llvm/llvm-project/pull/72609

>From 2364de2810d7ffac02f30fec7ff23b8055761b64 Mon Sep 17 00:00:00 2001
From: Brad Smith <brad at comstyle.com>
Date: Thu, 16 Nov 2023 19:59:10 -0500
Subject: [PATCH] [lld][ELF] Recognize sparcv9 bitcode

---
 lld/ELF/InputFiles.cpp      |  2 ++
 lld/test/ELF/lto/sparcv9.ll | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 lld/test/ELF/lto/sparcv9.ll

diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index 4b4d7d6db93cd57..2d3c216bc1679ca 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -1607,6 +1607,8 @@ static uint16_t getBitcodeMachineKind(StringRef path, const Triple &t) {
   case Triple::riscv32:
   case Triple::riscv64:
     return EM_RISCV;
+  case Triple::sparcv9:
+    return EM_SPARCV9;
   case Triple::x86:
     return t.isOSIAMCU() ? EM_IAMCU : EM_386;
   case Triple::x86_64:
diff --git a/lld/test/ELF/lto/sparcv9.ll b/lld/test/ELF/lto/sparcv9.ll
new file mode 100644
index 000000000000000..a4cdc6eafa4036a
--- /dev/null
+++ b/lld/test/ELF/lto/sparcv9.ll
@@ -0,0 +1,17 @@
+; REQUIRES: sparc
+;; Test we can infer the e_machine value EM_SPARCV9 from a bitcode file.
+
+; RUN: llvm-as %s -o %t.bc
+; RUN: ld.lld %t.bc -o %t
+; RUN: llvm-readobj -h %t | FileCheck %s
+
+; CHECK    Class: 64-bit
+; CHECK:   DataEncoding: BigEndian
+; CHECK: Machine: EM_SPARCV9
+
+target datalayout = "E-m:e-i64:64-n32:64-S128"
+target triple = "sparc64-unknown-elf"
+
+define void @_start() {
+  ret void
+}



More information about the llvm-commits mailing list