[llvm] 12600eb - [RISCV] Add X0_Pair to RISCVDeadRegisterDefinitions. (#141831)
via llvm-commits
llvm-commits at lists.llvm.org
Wed May 28 14:59:31 PDT 2025
Author: Craig Topper
Date: 2025-05-28T14:59:28-07:00
New Revision: 12600ebe0f747daa8d2415efdc4313ccf721987d
URL: https://github.com/llvm/llvm-project/commit/12600ebe0f747daa8d2415efdc4313ccf721987d
DIFF: https://github.com/llvm/llvm-project/commit/12600ebe0f747daa8d2415efdc4313ccf721987d.diff
LOG: [RISCV] Add X0_Pair to RISCVDeadRegisterDefinitions. (#141831)
Added:
Modified:
llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp
llvm/test/CodeGen/RISCV/double-mem.ll
llvm/test/CodeGen/RISCV/zilsd.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp b/llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp
index 47510ec6b0ea8..2f4bdb7b64f4e 100644
--- a/llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp
+++ b/llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp
@@ -99,6 +99,8 @@ bool RISCVDeadRegisterDefinitions::runOnMachineFunction(MachineFunction &MF) {
X0Reg = RISCV::X0_W;
} else if (RC && RC->contains(RISCV::X0_H)) {
X0Reg = RISCV::X0_H;
+ } else if (RC && RC->contains(RISCV::X0_Pair)) {
+ X0Reg = RISCV::X0_Pair;
} else {
LLVM_DEBUG(dbgs() << " Ignoring, register is not a GPR.\n");
continue;
diff --git a/llvm/test/CodeGen/RISCV/double-mem.ll b/llvm/test/CodeGen/RISCV/double-mem.ll
index 0210e0252deca..81ef194da8b47 100644
--- a/llvm/test/CodeGen/RISCV/double-mem.ll
+++ b/llvm/test/CodeGen/RISCV/double-mem.ll
@@ -141,10 +141,10 @@ define dso_local double @fld_fsd_global(double %a, double %b) nounwind {
; RV32IZFINXZDINXZILSD: # %bb.0:
; RV32IZFINXZDINXZILSD-NEXT: lui a4, %hi(G)
; RV32IZFINXZDINXZILSD-NEXT: fadd.d a0, a0, a2
-; RV32IZFINXZDINXZILSD-NEXT: ld a2, %lo(G)(a4)
+; RV32IZFINXZDINXZILSD-NEXT: ld zero, %lo(G)(a4)
; RV32IZFINXZDINXZILSD-NEXT: addi a2, a4, %lo(G)
; RV32IZFINXZDINXZILSD-NEXT: sd a0, %lo(G)(a4)
-; RV32IZFINXZDINXZILSD-NEXT: ld a4, 72(a2)
+; RV32IZFINXZDINXZILSD-NEXT: ld zero, 72(a2)
; RV32IZFINXZDINXZILSD-NEXT: sd a0, 72(a2)
; RV32IZFINXZDINXZILSD-NEXT: ret
; Use %a and %b in an FP op to ensure floating point registers are used, even
diff --git a/llvm/test/CodeGen/RISCV/zilsd.ll b/llvm/test/CodeGen/RISCV/zilsd.ll
index 3eaaffba250dd..bc2f7d486f16b 100644
--- a/llvm/test/CodeGen/RISCV/zilsd.ll
+++ b/llvm/test/CodeGen/RISCV/zilsd.ll
@@ -8,7 +8,7 @@ define i64 @load(ptr %a) nounwind {
; CHECK-LABEL: load:
; CHECK: # %bb.0:
; CHECK-NEXT: ld a2, 80(a0)
-; CHECK-NEXT: ld a0, 0(a0)
+; CHECK-NEXT: ld zero, 0(a0)
; CHECK-NEXT: mv a0, a2
; CHECK-NEXT: mv a1, a3
; CHECK-NEXT: ret
More information about the llvm-commits
mailing list