[llvm] Mips/GlobalISel: Update hand written call MIR to mark $ra dead (PR #227647)

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 30 03:28:42 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-globalisel

Author: Matt Arsenault (arsenm)

<details>
<summary>Changes</summary>

The call lowering marks the implicit $ra def of JAL/JALRPseudo dead, so
update the hand written MIR inputs and the corresponding checks to match
what the IRTranslator now produces.

Co-Authored-By: Claude Opus 5 <noreply@<!-- -->anthropic.com>

---

Patch is 41.62 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/227647.diff


17 Files Affected:

- (modified) llvm/test/CodeGen/Mips/GlobalISel/instruction-select/float_args.mir (+12-12) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address_pic.mir (+4-4) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/instruction-select/implicit_def.mir (+8-8) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/instruction-select/stack_args.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/instruction-select/var_arg.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/global_address.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/implicit_def.mir (+8-8) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/stack_args.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/legalizer/var_arg.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/regbankselect/float_args.mir (+12-12) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/regbankselect/global_address.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/regbankselect/global_address_pic.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/regbankselect/implicit_def.mir (+8-8) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/regbankselect/stack_args.mir (+2-2) 
- (modified) llvm/test/CodeGen/Mips/GlobalISel/regbankselect/var_arg.mir (+2-2) 


``````````diff
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/float_args.mir b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/float_args.mir
index 226b42eebd051..78e52013e1aa3 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/float_args.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/float_args.mir
@@ -136,7 +136,7 @@ body:             |
     ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $f12 = COPY [[COPY]]
     ; FP32: $f14 = COPY [[COPY1]]
-    ; FP32: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
+    ; FP32: JAL @float_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
     ; FP32: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0
     ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $f0 = COPY [[COPY2]]
@@ -148,7 +148,7 @@ body:             |
     ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $f12 = COPY [[COPY]]
     ; FP64: $f14 = COPY [[COPY1]]
-    ; FP64: JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
+    ; FP64: JAL @float_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
     ; FP64: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0
     ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $f0 = COPY [[COPY2]]
@@ -158,7 +158,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $f12 = COPY %0(s32)
     $f14 = COPY %1(s32)
-    JAL @float_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
+    JAL @float_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12, implicit $f14, implicit-def $f0
     %2:fprb(s32) = COPY $f0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $f0 = COPY %2(s32)
@@ -182,7 +182,7 @@ body:             |
     ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $d6 = COPY [[COPY]]
     ; FP32: $d7 = COPY [[COPY1]]
-    ; FP32: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
+    ; FP32: JAL @double_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
     ; FP32: [[COPY2:%[0-9]+]]:afgr64 = COPY $d0
     ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $d0 = COPY [[COPY2]]
@@ -194,7 +194,7 @@ body:             |
     ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $d6 = COPY [[COPY]]
     ; FP64: $d7 = COPY [[COPY1]]
-    ; FP64: JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
+    ; FP64: JAL @double_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
     ; FP64: [[COPY2:%[0-9]+]]:fgr64 = COPY $d0
     ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $d0 = COPY [[COPY2]]
@@ -204,7 +204,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $d6 = COPY %0(s64)
     $d7 = COPY %1(s64)
-    JAL @double_in_fpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
+    JAL @double_in_fpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6, implicit $d7, implicit-def $d0
     %2:fprb(s64) = COPY $d0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $d0 = COPY %2(s64)
@@ -228,7 +228,7 @@ body:             |
     ; FP32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $a0 = COPY [[COPY]]
     ; FP32: $a1 = COPY [[COPY1]]
-    ; FP32: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0
+    ; FP32: JAL @float_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $f0
     ; FP32: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0
     ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $f0 = COPY [[COPY2]]
@@ -240,7 +240,7 @@ body:             |
     ; FP64: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $a0 = COPY [[COPY]]
     ; FP64: $a1 = COPY [[COPY1]]
-    ; FP64: JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0
+    ; FP64: JAL @float_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $f0
     ; FP64: [[COPY2:%[0-9]+]]:fgr32 = COPY $f0
     ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $f0 = COPY [[COPY2]]
@@ -250,7 +250,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %0(s32)
     $a1 = COPY %1(s32)
-    JAL @float_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $f0
+    JAL @float_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $f0
     %2:fprb(s32) = COPY $f0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $f0 = COPY %2(s32)
@@ -276,7 +276,7 @@ body:             |
     ; FP32: $a0 = COPY [[COPY]]
     ; FP32: $a2 = COPY [[COPY1]]
     ; FP32: $a3 = COPY [[COPY2]]
-    ; FP32: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0
+    ; FP32: JAL @double_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $d0
     ; FP32: [[COPY3:%[0-9]+]]:afgr64 = COPY $d0
     ; FP32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP32: $d0 = COPY [[COPY3]]
@@ -290,7 +290,7 @@ body:             |
     ; FP64: $a0 = COPY [[COPY]]
     ; FP64: $a2 = COPY [[COPY1]]
     ; FP64: $a3 = COPY [[COPY2]]
-    ; FP64: JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0
+    ; FP64: JAL @double_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $d0
     ; FP64: [[COPY3:%[0-9]+]]:fgr64 = COPY $d0
     ; FP64: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; FP64: $d0 = COPY [[COPY3]]
@@ -302,7 +302,7 @@ body:             |
     $a0 = COPY %0(s32)
     $a2 = COPY %2(s32)
     $a3 = COPY %3(s32)
-    JAL @double_in_gpr, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $d0
+    JAL @double_in_gpr, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $d0
     %4:fprb(s64) = COPY $d0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $d0 = COPY %4(s64)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address.mir b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address.mir
index 94eb203d96a02..b627f9743cd91 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address.mir
@@ -25,7 +25,7 @@ body:             |
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $a0 = COPY [[ADDiu]]
     ; MIPS32: $a1 = COPY [[ORi]]
-    ; MIPS32: JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+    ; MIPS32: JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $v0 = COPY [[ORi1]]
     ; MIPS32: RetRA implicit $v0
@@ -36,7 +36,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %1(p0)
     $a1 = COPY %3(s32)
-    JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+    JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
     %0:gprb(s32) = COPY $v0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $v0 = COPY %4(s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address_pic.mir b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address_pic.mir
index 13f76532cb8ef..83ddb9e4ff224 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address_pic.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address_pic.mir
@@ -58,7 +58,7 @@ body:             |
     ; MIPS32: $a0 = COPY [[COPY]]
     ; MIPS32: $a1 = COPY [[COPY1]]
     ; MIPS32: $gp = COPY [[ADDu1]]
-    ; MIPS32: JALRPseudo [[LW]], csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
+    ; MIPS32: JALRPseudo [[LW]], csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
     ; MIPS32: [[COPY2:%[0-9]+]]:gpr32 = COPY $v0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $v0 = COPY [[COPY2]]
@@ -71,7 +71,7 @@ body:             |
     $a0 = COPY %0(s32)
     $a1 = COPY %1(s32)
     $gp = COPY %4
-    JALRPseudo %3(p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
+    JALRPseudo %3(p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
     %2:gprb(s32) = COPY $v0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $v0 = COPY %2(s32)
@@ -100,7 +100,7 @@ body:             |
     ; MIPS32: $a0 = COPY [[COPY]]
     ; MIPS32: $a1 = COPY [[COPY1]]
     ; MIPS32: $gp = COPY [[ADDu1]]
-    ; MIPS32: JALRPseudo [[ADDiu]], csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
+    ; MIPS32: JALRPseudo [[ADDiu]], csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
     ; MIPS32: [[COPY2:%[0-9]+]]:gpr32 = COPY $v0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $v0 = COPY [[COPY2]]
@@ -113,7 +113,7 @@ body:             |
     $a0 = COPY %0(s32)
     $a1 = COPY %1(s32)
     $gp = COPY %4
-    JALRPseudo %3(p0), csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
+    JALRPseudo %3(p0), csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $gp, implicit-def $v0
     %2:gprb(s32) = COPY $v0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $v0 = COPY %2(s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/implicit_def.mir b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/implicit_def.mir
index 8d94db80fddc9..5ee7cf94d4f46 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/implicit_def.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/implicit_def.mir
@@ -27,13 +27,13 @@ body:             |
     ; MIPS32: [[DEF:%[0-9]+]]:gpr32 = IMPLICIT_DEF
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $a0 = COPY [[DEF]]
-    ; MIPS32: JAL @f_i32, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0
+    ; MIPS32: JAL @f_i32, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: RetRA
     %0:gprb(s32) = G_IMPLICIT_DEF
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %0(s32)
-    JAL @f_i32, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0
+    JAL @f_i32, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     RetRA
 
@@ -52,7 +52,7 @@ body:             |
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $a0 = COPY [[DEF]]
     ; MIPS32: $a1 = COPY [[DEF1]]
-    ; MIPS32: JAL @f_i64, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1
+    ; MIPS32: JAL @f_i64, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: RetRA
     %3:gprb(s32) = G_IMPLICIT_DEF
@@ -60,7 +60,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %3(s32)
     $a1 = COPY %4(s32)
-    JAL @f_i64, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1
+    JAL @f_i64, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     RetRA
 
@@ -77,13 +77,13 @@ body:             |
     ; MIPS32: [[DEF:%[0-9]+]]:fgr32 = IMPLICIT_DEF
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $f12 = COPY [[DEF]]
-    ; MIPS32: JAL @f_float, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12
+    ; MIPS32: JAL @f_float, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: RetRA
     %0:fprb(s32) = G_IMPLICIT_DEF
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $f12 = COPY %0(s32)
-    JAL @f_float, csr_o32, implicit-def $ra, implicit-def $sp, implicit $f12
+    JAL @f_float, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $f12
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     RetRA
 
@@ -100,13 +100,13 @@ body:             |
     ; MIPS32: [[DEF:%[0-9]+]]:afgr64 = IMPLICIT_DEF
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $d6 = COPY [[DEF]]
-    ; MIPS32: JAL @f_double, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6
+    ; MIPS32: JAL @f_double, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: RetRA
     %0:fprb(s64) = G_IMPLICIT_DEF
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $d6 = COPY %0(s64)
-    JAL @f_double, csr_o32, implicit-def $ra, implicit-def $sp, implicit $d6
+    JAL @f_double, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $d6
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     RetRA
 
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/stack_args.mir b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/stack_args.mir
index b43f69e45c2bd..1b59c4ed1e375 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/stack_args.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/stack_args.mir
@@ -33,7 +33,7 @@ body:             |
     ; MIPS32: $a3 = COPY [[COPY3]]
     ; MIPS32: [[COPY4:%[0-9]+]]:gpr32 = COPY $sp
     ; MIPS32: SW [[LW]], [[COPY4]], 16 :: (store (s32) into stack + 16)
-    ; MIPS32: JAL @f, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+    ; MIPS32: JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
     ; MIPS32: [[COPY5:%[0-9]+]]:gpr32 = COPY $v0
     ; MIPS32: ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $v0 = COPY [[COPY5]]
@@ -53,7 +53,7 @@ body:             |
     %8:gprb(s32) = G_CONSTANT i32 16
     %9:gprb(p0) = G_PTR_ADD %7, %8(s32)
     G_STORE %4(s32), %9(p0) :: (store (s32) into stack + 16, align 4)
-    JAL @f, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
+    JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0
     %6:gprb(s32) = COPY $v0
     ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp
     $v0 = COPY %6(s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/var_arg.mir b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/var_arg.mir
index fd3d9ae8554fe..0201d6853a4e1 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/var_arg.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/instruction-select/var_arg.mir
@@ -87,7 +87,7 @@ body:             |
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $a0 = COPY [[ADDiu3]]
     ; MIPS32: $a1 = COPY [[LW3]]
-    ; MIPS32: JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+    ; MIPS32: JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: RetRA
     %0:gprb(p0) = COPY $a0
@@ -120,7 +120,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %17(p0)
     $a1 = COPY %15(p0)
-    JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+    JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     RetRA
 
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir
index 47a2c43e2bc5e..4e600b586bb6e 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/dyn_stackalloc.mir
@@ -56,7 +56,7 @@ body:             |
     ; MIPS32: G_STORE [[C1]](s32), [[COPY4]](p0) :: (store (s8) into %ir.arrayidx)
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $a0 = COPY [[COPY3]](p0)
-    ; MIPS32: JAL @puts, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $v0
+    ; MIPS32: JAL @puts, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $v0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: RetRA
     %2:_(s32) = COPY $a0
@@ -77,7 +77,7 @@ body:             |
     G_STORE %13(s8), %12(p0) :: (store (s8) into %ir.arrayidx)
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %10(p0)
-    JAL @puts, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit-def $v0
+    JAL @puts, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit-def $v0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     RetRA
 
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/global_address.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/global_address.mir
index b1129f52b923a..73db7436f0cef 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/global_address.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/global_address.mir
@@ -22,7 +22,7 @@ body:             |
     ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $a0 = COPY [[COPY]](p0)
     ; MIPS32: $a1 = COPY [[C]](s32)
-    ; MIPS32: JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+    ; MIPS32: JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
     ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $v0
     ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32: $v0 = COPY [[C1]](s32)
@@ -34,7 +34,7 @@ body:             |
     ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     $a0 = COPY %1(p0)
     $a1 = COPY %3(s32)
-    JAL @printf, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
+    JAL @printf, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit-def $v0
     %0:_(s32) = COPY $v0
     ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp
     $v0 = COPY %4(s32)
diff --git a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/implicit_def.mir b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/implicit_def.mir
index 7e1f5d3ea73d7..78fbf23c8c08a 100644
--- a/llvm/test/CodeGen/Mips/GlobalISel/legalizer/implicit_def.mir
+++ b/llvm/test/CodeGen/Mips/GlobalISel/legalizer/implicit_def.mir
@@ -25,13 +25,13 @@ body:             |
     ; MIPS32: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
     ; MIPS32-NEXT: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp
     ; MIPS32-NEXT: $a0 = COPY [[DEF]](s32)
-    ; MIPS32-NEXT: JAL @f_i32, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0
+    ; MIPS32-NEXT: JAL @f_i32, csr_o32, implicit-def dead ...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/227647


More information about the llvm-commits mailing list