[llvm] [RISCV][CFI] add function epilogue cfi information (PR #110810)
Sam Elliott via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 29 12:34:51 PDT 2024
================
@@ -49,42 +43,42 @@ define void @foo2(i32 %x, float %y) {
; RV32: # %bb.0: # %entry
; RV32-NEXT: cm.push {ra, s0}, -32
; RV32-NEXT: .cfi_def_cfa_offset 32
-; RV32-NEXT: fsw fs0, 12(sp) # 4-byte Folded Spill
; RV32-NEXT: .cfi_offset ra, -8
; RV32-NEXT: .cfi_offset s0, -4
+; RV32-NEXT: fsw fs0, 12(sp) # 4-byte Folded Spill
; RV32-NEXT: .cfi_offset fs0, -20
; RV32-NEXT: fmv.s fs0, fa0
; RV32-NEXT: mv s0, a0
; RV32-NEXT: call bar
; RV32-NEXT: mv a0, s0
; RV32-NEXT: fmv.s fa0, fs0
; RV32-NEXT: flw fs0, 12(sp) # 4-byte Folded Reload
+; RV32-NEXT: .cfi_restore fs0
; RV32-NEXT: cm.pop {ra, s0}, 32
-; RV32-NEXT: .cfi_def_cfa_offset 0
; RV32-NEXT: .cfi_restore ra
; RV32-NEXT: .cfi_restore s0
-; RV32-NEXT: .cfi_restore fs0
+; RV32-NEXT: .cfi_def_cfa_offset 0
; RV32-NEXT: tail func
;
; RV64-LABEL: foo2:
; RV64: # %bb.0: # %entry
; RV64-NEXT: cm.push {ra, s0}, -32
; RV64-NEXT: .cfi_def_cfa_offset 32
-; RV64-NEXT: fsw fs0, 12(sp) # 4-byte Folded Spill
; RV64-NEXT: .cfi_offset ra, -16
; RV64-NEXT: .cfi_offset s0, -8
+; RV64-NEXT: fsw fs0, 12(sp) # 4-byte Folded Spill
; RV64-NEXT: .cfi_offset fs0, -20
; RV64-NEXT: fmv.s fs0, fa0
; RV64-NEXT: mv s0, a0
; RV64-NEXT: call bar
; RV64-NEXT: mv a0, s0
; RV64-NEXT: fmv.s fa0, fs0
; RV64-NEXT: flw fs0, 12(sp) # 4-byte Folded Reload
+; RV64-NEXT: .cfi_restore fs0
; RV64-NEXT: cm.pop {ra, s0}, 32
-; RV64-NEXT: .cfi_def_cfa_offset 0
; RV64-NEXT: .cfi_restore ra
; RV64-NEXT: .cfi_restore s0
-; RV64-NEXT: .cfi_restore fs0
+; RV64-NEXT: .cfi_def_cfa_offset 0
----------------
lenary wrote:
This looks better too.
https://github.com/llvm/llvm-project/pull/110810
More information about the llvm-commits
mailing list