Hi Jeff, Yes, there's a requirement to support backtrace based on the fp+ra. And the unwind/cfa is not acceptable because it will add additional sections to the binary. Currently, -fno-omit-frame-pointer can not save the ra for the leaf function. So we need to add another option like ARM/X86 to support consistent fp+ra stack layout for the leaf and non-leaf functions. Thanks, Yanzhang ________________________________ From: Jeff Law Sent: Saturday, June 3, 2023 10:43 AM To: Wang, Yanzhang ; gcc-patches@gcc.gnu.org Cc: juzhe.zhong@rivai.ai ; kito.cheng@sifive.com ; Li, Pan2 Subject: Re: [PATCH] RISCV: Add -m(no)-omit-leaf-frame-pointer support. On 6/2/23 01:07, yanzhang.wang--- via Gcc-patches wrote: > From: Yanzhang Wang > > gcc/ChangeLog: > > * config/riscv/riscv.cc (riscv_save_reg_p): Save ra for leaf > when enabling -mno-omit-leaf-frame-pointer > (riscv_option_override): Override omit-frame-pointer. > (riscv_frame_pointer_required): Save s0 for non-leaf function > (TARGET_FRAME_POINTER_REQUIRED): Override defination > * config/riscv/riscv.opt: Add option support. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/omit-frame-pointer-1.c: New test. > * gcc.target/riscv/omit-frame-pointer-2.c: New test. > * gcc.target/riscv/omit-frame-pointer-3.c: New test. > * gcc.target/riscv/omit-frame-pointer-4.c: New test. > * gcc.target/riscv/omit-frame-pointer-test.c: New test. Not ACKing or NAKing at this time. Why do you want this feature? jeff