[llvm] Mips/GlobalISel: Mark call's implicit RA def dead (PR #227233)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 29 02:13:41 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-mips
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
Co-Authored-By: Claude Opus 5 <noreply@<!-- -->anthropic.com>
---
Patch is 43.70 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/227233.diff
15 Files Affected:
- (modified) llvm/lib/Target/Mips/MipsCallLowering.cpp (+1)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/aggregate_struct_return.ll (+2-2)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll (+8-8)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/extend_args.ll (+6-6)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/float_args.ll (+10-10)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address.ll (+1-1)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address_pic.ll (+2-2)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/sret_pointer.ll (+1-1)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/stack_args.ll (+1-1)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/irtranslator/var_arg.ll (+1-1)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/ceil_and_floor.mir (+8-8)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir (+1-1)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/fptosi_and_fptoui.mir (+8-8)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/rem_and_div.mir (+4-4)
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/sitofp_and_uitofp.mir (+8-8)
``````````diff
diff --git a/llvm/lib/Target/Mips/MipsCallLowering.cpp b/llvm/lib/Target/Mips/MipsCallLowering.cpp
index 8b0a85bdfe61a..c1407917fbb21 100644
--- a/llvm/lib/Target/Mips/MipsCallLowering.cpp
+++ b/llvm/lib/Target/Mips/MipsCallLowering.cpp
@@ -419,6 +419,7 @@ bool MipsCallLowering::lowerCall(MachineIRBuilder &MIRBuilder,
MachineInstrBuilder MIB = MIRBuilder.buildInstrNoInsert(
Info.Callee.isReg() || IsCalleeGlobalPIC ? Mips::JALRPseudo : Mips::JAL);
+ MIB.setOperandDead(0); // implicit-def $ra
MIB.addDef(Mips::SP, RegState::Implicit);
if (IsCalleeGlobalPIC) {
Register CalleeReg =
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/aggregate_struct_return.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/aggregate_struct_return.ll
index 205fbba4f50e3..1d912ff3c14a5 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/aggregate_struct_return.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/aggregate_struct_return.ll
@@ -82,7 +82,7 @@ define void @call_ret_complex_float(ptr %z) {
; MIPS32-NEXT: {{ $}}
; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
; MIPS32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
- ; MIPS32-NEXT: JAL @ret_complex_float, csr_o32, implicit-def $ra, implicit-def $sp, implicit-def $f0, implicit-def $f2
+ ; MIPS32-NEXT: JAL @ret_complex_float, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def $f0, implicit-def $f2
; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $f0
; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $f2
; MIPS32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -110,7 +110,7 @@ define void @call_ret_complex_double(ptr %z) {
; MIPS32-NEXT: {{ $}}
; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
; MIPS32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
- ; MIPS32-NEXT: JAL @ret_complex_double, csr_o32, implicit-def $ra, implicit-def $sp, implicit-def $d0, implicit-def $d1
+ ; MIPS32-NEXT: JAL @ret_complex_double, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def $d0, implicit-def $d1
; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0
; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $d1
; MIPS32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll
index 7780e532df4e8..fb8e47e10b12f 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll
@@ -15,7 +15,7 @@ define i32 @call_global(i32 %a0, i32 %a1, i32 %x, i32 %y) {
; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32: $a0 = COPY [[COPY2]](s32)
; MIPS32: $a1 = COPY [[COPY3]](s32)
- ; MIPS32: JAL @f, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+ ; MIPS32: JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY4]], [[COPY4]]
@@ -34,7 +34,7 @@ define i32 @call_global(i32 %a0, i32 %a1, i32 %x, i32 %y) {
; MIPS32_PIC: $a0 = COPY [[COPY2]](s32)
; MIPS32_PIC: $a1 = COPY [[COPY3]](s32)
; MIPS32_PIC: $gp = COPY [[ADDu]]
- ; MIPS32_PIC: JALRPseudo [[GV]](p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
+ ; MIPS32_PIC: JALRPseudo [[GV]](p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
; MIPS32_PIC: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32_PIC: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY4]], [[COPY4]]
@@ -79,7 +79,7 @@ define i32 @call_global_with_local_linkage(i32 %a0, i32 %a1, i32 %x, i32 %y) {
; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32: $a0 = COPY [[COPY2]](s32)
; MIPS32: $a1 = COPY [[COPY3]](s32)
- ; MIPS32: JAL @f_with_local_linkage, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+ ; MIPS32: JAL @f_with_local_linkage, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY4]], [[COPY4]]
@@ -98,7 +98,7 @@ define i32 @call_global_with_local_linkage(i32 %a0, i32 %a1, i32 %x, i32 %y) {
; MIPS32_PIC: $a0 = COPY [[COPY2]](s32)
; MIPS32_PIC: $a1 = COPY [[COPY3]](s32)
; MIPS32_PIC: $gp = COPY [[ADDu]]
- ; MIPS32_PIC: JALRPseudo [[GV]](p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
+ ; MIPS32_PIC: JALRPseudo [[GV]](p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
; MIPS32_PIC: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32_PIC: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY4]], [[COPY4]]
@@ -120,7 +120,7 @@ define i32 @call_reg(ptr %f_ptr, i32 %x, i32 %y) {
; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32: $a0 = COPY [[COPY1]](s32)
; MIPS32: $a1 = COPY [[COPY2]](s32)
- ; MIPS32: JALRPseudo [[COPY]](p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+ ; MIPS32: JALRPseudo [[COPY]](p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32: $v0 = COPY [[COPY3]](s32)
@@ -134,7 +134,7 @@ define i32 @call_reg(ptr %f_ptr, i32 %x, i32 %y) {
; MIPS32_PIC: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: $a0 = COPY [[COPY1]](s32)
; MIPS32_PIC: $a1 = COPY [[COPY2]](s32)
- ; MIPS32_PIC: JALRPseudo [[COPY]](p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+ ; MIPS32_PIC: JALRPseudo [[COPY]](p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
; MIPS32_PIC: [[COPY3:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32_PIC: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: $v0 = COPY [[COPY3]](s32)
@@ -174,7 +174,7 @@ define void @call_f_with_void_ret() {
; MIPS32-LABEL: name: call_f_with_void_ret
; MIPS32: bb.1.entry:
; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
- ; MIPS32: JAL @f_with_void_ret, csr_o32, implicit-def $ra, implicit-def $sp
+ ; MIPS32: JAL @f_with_void_ret, csr_o32, implicit-def dead $ra, implicit-def $sp
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32: RetRA
; MIPS32_PIC-LABEL: name: call_f_with_void_ret
@@ -184,7 +184,7 @@ define void @call_f_with_void_ret() {
; MIPS32_PIC: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: [[GV:%[0-9]+]]:gpr32(p0) = G_GLOBAL_VALUE target-flags(mips-got-call) @f_with_void_ret
; MIPS32_PIC: $gp = COPY [[ADDu]]
- ; MIPS32_PIC: JALRPseudo [[GV]](p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit-def $gp
+ ; MIPS32_PIC: JALRPseudo [[GV]](p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def $gp
; MIPS32_PIC: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: RetRA
entry:
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/extend_args.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/extend_args.ll
index 1eb5d8db69ded..8c6dfb40e4fb5 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/extend_args.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/extend_args.ll
@@ -74,7 +74,7 @@ define signext i8 @call_sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @sext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @sext_stack_arg_i8, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
; MIPS32-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: [[ASSERT_SEXT1:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY5]], 8
; MIPS32-NEXT: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT1]](s32)
@@ -110,7 +110,7 @@ define zeroext i8 @call_zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @zext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @zext_stack_arg_i8, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
; MIPS32-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY5]], 8
; MIPS32-NEXT: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT1]](s32)
@@ -145,7 +145,7 @@ define i8 @call_aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a) {
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @aext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @aext_stack_arg_i8, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
; MIPS32-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY5]](s32)
; MIPS32-NEXT: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
@@ -229,7 +229,7 @@ define signext i16 @call_sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4,
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @sext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @sext_stack_arg_i16, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
; MIPS32-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: [[ASSERT_SEXT1:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY5]], 16
; MIPS32-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT1]](s32)
@@ -265,7 +265,7 @@ define zeroext i16 @call_zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4,
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @zext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @zext_stack_arg_i16, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
; MIPS32-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY5]], 16
; MIPS32-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT1]](s32)
@@ -300,7 +300,7 @@ define i16 @call_aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @aext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @aext_stack_arg_i16, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
; MIPS32-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY5]](s32)
; MIPS32-NEXT: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/float_args.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/float_args.ll
index 204594eee881c..d2af56cd8eace 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/float_args.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/float_args.ll
@@ -135,7 +135,7 @@ define float @call_float_in_fpr(float %a, float %b) {
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $f12 = COPY [[COPY]](s32)
; FP32-NEXT: $f14 = COPY [[COPY1]](s32)
- ; FP32-NEXT: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
+ ; FP32-NEXT: JAL @float_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $f0 = COPY [[COPY2]](s32)
@@ -150,7 +150,7 @@ define float @call_float_in_fpr(float %a, float %b) {
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $f12 = COPY [[COPY]](s32)
; FP64-NEXT: $f14 = COPY [[COPY1]](s32)
- ; FP64-NEXT: JAL @float_in_fpr, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
+ ; FP64-NEXT: JAL @float_in_fpr, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $f0 = COPY [[COPY2]](s32)
@@ -170,7 +170,7 @@ define double @call_double_in_fpr(double %a, double %b) {
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $d6 = COPY [[COPY]](s64)
; FP32-NEXT: $d7 = COPY [[COPY1]](s64)
- ; FP32-NEXT: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
+ ; FP32-NEXT: JAL @double_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $d0 = COPY [[COPY2]](s64)
@@ -185,7 +185,7 @@ define double @call_double_in_fpr(double %a, double %b) {
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $d12_64 = COPY [[COPY]](s64)
; FP64-NEXT: $d14_64 = COPY [[COPY1]](s64)
- ; FP64-NEXT: JAL @double_in_fpr, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $d12_64, implicit $d14_64, implicit-def $d0_64
+ ; FP64-NEXT: JAL @double_in_fpr, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $d12_64, implicit $d14_64, implicit-def $d0_64
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $d0_64 = COPY [[COPY2]](s64)
@@ -205,7 +205,7 @@ define float @call_float_in_gpr(i32 %a, float %b) {
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $a0 = COPY [[COPY]](s32)
; FP32-NEXT: $a1 = COPY [[COPY1]](s32)
- ; FP32-NEXT: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
+ ; FP32-NEXT: JAL @float_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $f0 = COPY [[COPY2]](s32)
@@ -220,7 +220,7 @@ define float @call_float_in_gpr(i32 %a, float %b) {
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $a0 = COPY [[COPY]](s32)
; FP64-NEXT: $a1 = COPY [[COPY1]](s32)
- ; FP64-NEXT: JAL @float_in_gpr, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
+ ; FP64-NEXT: JAL @float_in_gpr, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $f0 = COPY [[COPY2]](s32)
@@ -245,7 +245,7 @@ define double @call_double_in_gpr(i32 %a, double %b) {
; FP32-NEXT: $a0 = COPY [[COPY]](s32)
; FP32-NEXT: $a2 = COPY [[UV]](s32)
; FP32-NEXT: $a3 = COPY [[UV1]](s32)
- ; FP32-NEXT: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0
+ ; FP32-NEXT: JAL @double_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0
; FP32-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d0
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $d0 = COPY [[COPY3]](s64)
@@ -264,7 +264,7 @@ define double @call_double_in_gpr(i32 %a, double %b) {
; FP64-NEXT: $a0 = COPY [[COPY]](s32)
; FP64-NEXT: $a2 = COPY [[UV]](s32)
; FP64-NEXT: $a3 = COPY [[UV1]](s32)
- ; FP64-NEXT: JAL @double_in_gpr, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0_64
+ ; FP64-NEXT: JAL @double_in_gpr, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0_64
; FP64-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $d0_64 = COPY [[COPY3]](s64)
@@ -288,7 +288,7 @@ define double @call_double_fpr_to_gpr(double %a) {
; FP32-NEXT: $a0 = COPY [[C]](s32)
; FP32-NEXT: $a2 = COPY [[UV]](s32)
; FP32-NEXT: $a3 = COPY [[UV1]](s32)
- ; FP32-NEXT: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0
+ ; FP32-NEXT: JAL @double_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0
; FP32-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $d0 = COPY [[COPY1]](s64)
@@ -305,7 +305,7 @@ define double @call_double_fpr_to_gpr(double %a) {
; FP64-NEXT: $a0 = COPY [[C]](s32)
; FP64-NEXT: $a2 = COPY [[UV]](s32)
; FP64-NEXT: $a3 = COPY [[UV1]](s32)
- ; FP64-NEXT: JAL @double_in_gpr, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0_64
+ ; FP64-NEXT: JAL @double_in_gpr, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a2, implicit $a3, implicit $a0, implicit-def $d0_64
; FP64-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $d0_64 = COPY [[COPY1]](s64)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address.ll
index c48514e91f1ca..cc21b55851388 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address.ll
@@ -12,7 +12,7 @@ define i32 @main() {
; MIPS32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: $a0 = COPY [[GV]](p0)
; MIPS32-NEXT: $a1 = COPY [[C]](s32)
- ; MIPS32-NEXT: JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+ ; MIPS32...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/227233
More information about the llvm-commits
mailing list