[llvm] Mips/GlobalISel: Mark call's implicit RA def dead (PR #227233)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 29 02:13:00 PDT 2026
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/227233
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
>From 27b9976e24333d62912ec54452b3be06effc1e73 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Tue, 29 Sep 2026 06:55:43 +0200
Subject: [PATCH] Mips/GlobalISel: Mark call's implicit RA def dead
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
---
llvm/lib/Target/Mips/MipsCallLowering.cpp | 1 +
.../irtranslator/aggregate_struct_return.ll | 4 ++--
.../Mips/GlobalISel/irtranslator/call.ll | 16 +++++++--------
.../GlobalISel/irtranslator/extend_args.ll | 12 +++++------
.../GlobalISel/irtranslator/float_args.ll | 20 +++++++++----------
.../GlobalISel/irtranslator/global_address.ll | 2 +-
.../irtranslator/global_address_pic.ll | 4 ++--
.../GlobalISel/irtranslator/sret_pointer.ll | 2 +-
.../GlobalISel/irtranslator/stack_args.ll | 2 +-
.../Mips/GlobalISel/irtranslator/var_arg.ll | 2 +-
.../GlobalISel/legalizer/ceil_and_floor.mir | 16 +++++++--------
.../GlobalISel/legalizer/dyn_stackalloc.mir | 2 +-
.../legalizer/fptosi_and_fptoui.mir | 16 +++++++--------
.../Mips/GlobalISel/legalizer/rem_and_div.mir | 8 ++++----
.../legalizer/sitofp_and_uitofp.mir | 16 +++++++--------
15 files changed, 62 insertions(+), 61 deletions(-)
diff --git a/llvm/lib/Target/Mips/MipsCallLowering.cpp b/llvm/lib/Target/Mips/MipsCallLowering.cpp
index 8b0a85bdfe61ae..c1407917fbb21b 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 205fbba4f50e31..1d912ff3c14a5e 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 7780e532df4e88..fb8e47e10b12fa 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 1eb5d8db69ded9..8c6dfb40e4fb52 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 204594eee881c9..d2af56cd8eace6 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 c48514e91f1cad..cc21b55851388b 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-NEXT: JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: $v0 = COPY [[C1]](s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address_pic.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address_pic.ll
index 1987337789cfbf..a61e24610292d1 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address_pic.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/global_address_pic.ll
@@ -29,7 +29,7 @@ define i32 @call_global(i32 %a, i32 %b) {
; MIPS32_PIC: $a0 = COPY [[COPY]](s32)
; MIPS32_PIC: $a1 = COPY [[COPY1]](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: [[COPY2:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32_PIC: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: $v0 = COPY [[COPY2]](s32)
@@ -51,7 +51,7 @@ define i32 @call_global_with_local_linkage(i32 %a, i32 %b) {
; MIPS32_PIC: $a0 = COPY [[COPY]](s32)
; MIPS32_PIC: $a1 = COPY [[COPY1]](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: [[COPY2:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32_PIC: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32_PIC: $v0 = COPY [[COPY2]](s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/sret_pointer.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/sret_pointer.ll
index 133c79178f1162..8a0f4829023ec5 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/sret_pointer.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/sret_pointer.ll
@@ -31,7 +31,7 @@ define void @CallZeroInit(ptr noalias sret(%struct.S) %agg.result) {
; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
; MIPS32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: $a0 = COPY [[COPY]](p0)
- ; MIPS32-NEXT: JAL @ZeroInit, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0
+ ; MIPS32-NEXT: JAL @ZeroInit, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0
; MIPS32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: RetRA
entry:
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/stack_args.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/stack_args.ll
index 1cc2e31d86b2d3..5bf2d4ded8dcd1 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/stack_args.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/stack_args.ll
@@ -23,7 +23,7 @@ define i32 @g(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i32 %x5){
; MIPS32-NEXT: $a1 = COPY [[COPY1]](s32)
; MIPS32-NEXT: $a2 = COPY [[COPY2]](s32)
; MIPS32-NEXT: $a3 = COPY [[COPY3]](s32)
- ; MIPS32-NEXT: JAL @f, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+ ; MIPS32-NEXT: JAL @f, 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: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: $v0 = COPY [[COPY5]](s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/var_arg.ll b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/var_arg.ll
index d8c155497e788d..16e848780a1d6a 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/var_arg.ll
+++ b/llvm/test/CodeGen/Mips/GlobalISel/irtranslator/var_arg.ll
@@ -39,7 +39,7 @@ define void @testVaCopyArg(ptr %fmt, ...) {
; MIPS32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: $a0 = COPY [[GV]](p0)
; MIPS32-NEXT: $a1 = COPY [[LOAD2]](p0)
- ; MIPS32-NEXT: JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+ ; MIPS32-NEXT: JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
; MIPS32-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32-NEXT: RetRA
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/ceil_and_floor.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/ceil_and_floor.mir
index d1570fb8bb1d60..f32367f3386d18 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/ceil_and_floor.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/ceil_and_floor.mir
@@ -22,7 +22,7 @@ body: |
; FP32: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $f12 = COPY [[COPY]](s32)
- ; FP32: JAL &ceilf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $f0
+ ; FP32: JAL &ceilf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $f0
; FP32: [[COPY1:%[0-9]+]]:_(s32) = COPY $f0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $f0 = COPY [[COPY1]](s32)
@@ -32,7 +32,7 @@ body: |
; FP64: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $f12 = COPY [[COPY]](s32)
- ; FP64: JAL &ceilf, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $f0
+ ; FP64: JAL &ceilf, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $f0
; FP64: [[COPY1:%[0-9]+]]:_(s32) = COPY $f0
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $f0 = COPY [[COPY1]](s32)
@@ -56,7 +56,7 @@ body: |
; FP32: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $d6 = COPY [[COPY]](s64)
- ; FP32: JAL &ceil, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit-def $d0
+ ; FP32: JAL &ceil, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit-def $d0
; FP32: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $d0 = COPY [[COPY1]](s64)
@@ -66,7 +66,7 @@ body: |
; FP64: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $d12_64 = COPY [[COPY]](s64)
- ; FP64: JAL &ceil, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $d12_64, implicit-def $d0_64
+ ; FP64: JAL &ceil, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $d12_64, implicit-def $d0_64
; FP64: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $d0 = COPY [[COPY1]](s64)
@@ -90,7 +90,7 @@ body: |
; FP32: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $f12 = COPY [[COPY]](s32)
- ; FP32: JAL &floorf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $f0
+ ; FP32: JAL &floorf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $f0
; FP32: [[COPY1:%[0-9]+]]:_(s32) = COPY $f0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $f0 = COPY [[COPY1]](s32)
@@ -100,7 +100,7 @@ body: |
; FP64: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $f12 = COPY [[COPY]](s32)
- ; FP64: JAL &floorf, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $f0
+ ; FP64: JAL &floorf, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $f0
; FP64: [[COPY1:%[0-9]+]]:_(s32) = COPY $f0
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $f0 = COPY [[COPY1]](s32)
@@ -124,7 +124,7 @@ body: |
; FP32: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $d6 = COPY [[COPY]](s64)
- ; FP32: JAL &floor, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit-def $d0
+ ; FP32: JAL &floor, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit-def $d0
; FP32: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $d0 = COPY [[COPY1]](s64)
@@ -134,7 +134,7 @@ body: |
; FP64: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $d12_64 = COPY [[COPY]](s64)
- ; FP64: JAL &floor, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $d12_64, implicit-def $d0_64
+ ; FP64: JAL &floor, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $d12_64, implicit-def $d0_64
; FP64: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $d0 = COPY [[COPY1]](s64)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir
index 43b2803a36e2a7..47a2c43e2bc5ee 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir
@@ -49,7 +49,7 @@ body: |
; MIPS32: $a0 = COPY [[COPY3]](p0)
; MIPS32: $a1 = COPY [[COPY]](s32)
; MIPS32: $a2 = COPY [[COPY1]](s32)
- ; MIPS32: JAL &memset, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2
+ ; MIPS32: JAL &memset, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; MIPS32: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY3]], [[COPY1]](s32)
; MIPS32: [[COPY4:%[0-9]+]]:_(p0) = COPY [[PTR_ADD]](p0)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/fptosi_and_fptoui.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/fptosi_and_fptoui.mir
index cac2dea3f5fd85..970e1f0351264e 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/fptosi_and_fptoui.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/fptosi_and_fptoui.mir
@@ -35,7 +35,7 @@ body: |
; FP32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $f12 = COPY [[COPY]](s32)
- ; FP32-NEXT: JAL &__fixsfdi, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
+ ; FP32-NEXT: JAL &__fixsfdi, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
; FP32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -49,7 +49,7 @@ body: |
; FP64-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $f12 = COPY [[COPY]](s32)
- ; FP64-NEXT: JAL &__fixsfdi, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
+ ; FP64-NEXT: JAL &__fixsfdi, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
; FP64-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -179,7 +179,7 @@ body: |
; FP32-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $d6 = COPY [[COPY]](s64)
- ; FP32-NEXT: JAL &__fixdfdi, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit-def $v0, implicit-def $v1
+ ; FP32-NEXT: JAL &__fixdfdi, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit-def $v0, implicit-def $v1
; FP32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -193,7 +193,7 @@ body: |
; FP64-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $d12_64 = COPY [[COPY]](s64)
- ; FP64-NEXT: JAL &__fixdfdi, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $d12_64, implicit-def $v0, implicit-def $v1
+ ; FP64-NEXT: JAL &__fixdfdi, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $d12_64, implicit-def $v0, implicit-def $v1
; FP64-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -323,7 +323,7 @@ body: |
; FP32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $f12 = COPY [[COPY]](s32)
- ; FP32-NEXT: JAL &__fixunssfdi, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
+ ; FP32-NEXT: JAL &__fixunssfdi, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
; FP32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -337,7 +337,7 @@ body: |
; FP64-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f12
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $f12 = COPY [[COPY]](s32)
- ; FP64-NEXT: JAL &__fixunssfdi, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
+ ; FP64-NEXT: JAL &__fixunssfdi, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit-def $v0, implicit-def $v1
; FP64-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -505,7 +505,7 @@ body: |
; FP32-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32-NEXT: $d6 = COPY [[COPY]](s64)
- ; FP32-NEXT: JAL &__fixunsdfdi, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit-def $v0, implicit-def $v1
+ ; FP32-NEXT: JAL &__fixunsdfdi, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit-def $v0, implicit-def $v1
; FP32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP32-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -519,7 +519,7 @@ body: |
; FP64-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d6
; FP64-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64-NEXT: $d12_64 = COPY [[COPY]](s64)
- ; FP64-NEXT: JAL &__fixunsdfdi, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $d12_64, implicit-def $v0, implicit-def $v1
+ ; FP64-NEXT: JAL &__fixunsdfdi, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $d12_64, implicit-def $v0, implicit-def $v1
; FP64-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
; FP64-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $v1
; FP64-NEXT: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/rem_and_div.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/rem_and_div.mir
index 3010bee87d1b68..8de113eae3e5c4 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/rem_and_div.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/rem_and_div.mir
@@ -125,7 +125,7 @@ body: |
; MIPS32: $a1 = COPY [[COPY3]](s32)
; MIPS32: $a2 = COPY [[COPY]](s32)
; MIPS32: $a3 = COPY [[COPY1]](s32)
- ; MIPS32: JAL &__divdi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
+ ; MIPS32: JAL &__divdi3, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -246,7 +246,7 @@ body: |
; MIPS32: $a1 = COPY [[COPY3]](s32)
; MIPS32: $a2 = COPY [[COPY]](s32)
; MIPS32: $a3 = COPY [[COPY1]](s32)
- ; MIPS32: JAL &__moddi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
+ ; MIPS32: JAL &__moddi3, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -369,7 +369,7 @@ body: |
; MIPS32: $a1 = COPY [[COPY3]](s32)
; MIPS32: $a2 = COPY [[COPY]](s32)
; MIPS32: $a3 = COPY [[COPY1]](s32)
- ; MIPS32: JAL &__udivdi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
+ ; MIPS32: JAL &__udivdi3, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
@@ -492,7 +492,7 @@ body: |
; MIPS32: $a1 = COPY [[COPY3]](s32)
; MIPS32: $a2 = COPY [[COPY]](s32)
; MIPS32: $a3 = COPY [[COPY1]](s32)
- ; MIPS32: JAL &__umoddi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
+ ; MIPS32: JAL &__umoddi3, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1
; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0
; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1
; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/sitofp_and_uitofp.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/sitofp_and_uitofp.mir
index fcc5c63bb88b8d..561a33267bcd0d 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/sitofp_and_uitofp.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/sitofp_and_uitofp.mir
@@ -36,7 +36,7 @@ body: |
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $a0 = COPY [[COPY]](s32)
; FP32: $a1 = COPY [[COPY1]](s32)
- ; FP32: JAL &__floatdisf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
+ ; FP32: JAL &__floatdisf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
; FP32: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $f0 = COPY [[COPY2]](s32)
@@ -48,7 +48,7 @@ body: |
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $a0 = COPY [[COPY]](s32)
; FP64: $a1 = COPY [[COPY1]](s32)
- ; FP64: JAL &__floatdisf, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
+ ; FP64: JAL &__floatdisf, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
; FP64: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $f0 = COPY [[COPY2]](s32)
@@ -168,7 +168,7 @@ body: |
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $a0 = COPY [[COPY]](s32)
; FP32: $a1 = COPY [[COPY1]](s32)
- ; FP32: JAL &__floatdidf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0
+ ; FP32: JAL &__floatdidf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0
; FP32: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $d0 = COPY [[COPY2]](s64)
@@ -180,7 +180,7 @@ body: |
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $a0 = COPY [[COPY]](s32)
; FP64: $a1 = COPY [[COPY1]](s32)
- ; FP64: JAL &__floatdidf, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0_64
+ ; FP64: JAL &__floatdidf, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0_64
; FP64: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $d0 = COPY [[COPY2]](s64)
@@ -300,7 +300,7 @@ body: |
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $a0 = COPY [[COPY]](s32)
; FP32: $a1 = COPY [[COPY1]](s32)
- ; FP32: JAL &__floatundisf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
+ ; FP32: JAL &__floatundisf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
; FP32: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $f0 = COPY [[COPY2]](s32)
@@ -312,7 +312,7 @@ body: |
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $a0 = COPY [[COPY]](s32)
; FP64: $a1 = COPY [[COPY1]](s32)
- ; FP64: JAL &__floatundisf, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
+ ; FP64: JAL &__floatundisf, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $f0
; FP64: [[COPY2:%[0-9]+]]:_(s32) = COPY $f0
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $f0 = COPY [[COPY2]](s32)
@@ -452,7 +452,7 @@ body: |
; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP32: $a0 = COPY [[COPY]](s32)
; FP32: $a1 = COPY [[COPY1]](s32)
- ; FP32: JAL &__floatundidf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0
+ ; FP32: JAL &__floatundidf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0
; FP32: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0
; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP32: $d0 = COPY [[COPY2]](s64)
@@ -464,7 +464,7 @@ body: |
; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
; FP64: $a0 = COPY [[COPY]](s32)
; FP64: $a1 = COPY [[COPY1]](s32)
- ; FP64: JAL &__floatundidf, csr_o32_fp64, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0_64
+ ; FP64: JAL &__floatundidf, csr_o32_fp64, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $d0_64
; FP64: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0_64
; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
; FP64: $d0 = COPY [[COPY2]](s64)
More information about the llvm-commits
mailing list