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 <[email protected]>
Sent: Saturday, June 3, 2023 10:43 AM
To: Wang, Yanzhang <[email protected]>; [email protected] 
<[email protected]>
Cc: [email protected] <[email protected]>; [email protected] 
<[email protected]>; Li, Pan2 <[email protected]>
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 <[email protected]>
>
> 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

Reply via email to