[llvm] [llvm][RISCV] Use zilsd for callee-saved register spill/restore on RV32 (PR #184794)
Brandon Wu via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 5 09:18:30 PST 2026
================
@@ -1255,6 +1259,237 @@ define void @callee() {
; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 160
; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0
; RV64IZCMP-WITH-FP-NEXT: ret
+;
+; RV32I-ZILSD-LABEL: callee:
+; RV32I-ZILSD: # %bb.0:
+; RV32I-ZILSD-NEXT: addi sp, sp, -80
+; RV32I-ZILSD-NEXT: .cfi_def_cfa_offset 80
+; RV32I-ZILSD-NEXT: sw ra, 76(sp) # 4-byte Folded Spill
+; RV32I-ZILSD-NEXT: sd s0, 64(sp) # 8-byte Folded Spill
----------------
4vtomat wrote:
that's right, I've prevented s0 to be combined when it's used as frame pointer
https://github.com/llvm/llvm-project/pull/184794
More information about the llvm-commits
mailing list