This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][AArch64] PR60580: Fix frame pointer option magic


On Fri, Aug 04, 2017 at 04:46:09PM +0100, Wilco Dijkstra wrote:
> To fix PR60580 simplify the logic in aarch64_override_options_after_change_1 (). 
> If the frame pointer is enabled, set it to a special value that behaves similar
> to frame pointer omission.  If we don't do this all leaf functions will get a
> frame pointer even if flag_omit_leaf_frame_pointer is set.
> 
> If flag_omit_frame_pointer has this special value, we must force the frame
> pointer if not in a leaf function.  We also need to force it in a leaf function
> if flag_omit_frame_pointer is not set or if LR is used.
> 
> Doing this allows both -fomit-frame-pointer and -fomit-leaf-frame-pointer to be
> independently set and changed in each function with the expected behaviour.
> 
> OK for commit and backport to GCC7/GCC6?

OK for trunk, please wait before backporting.

This code is a mess, would macroing your magic number 2 help at all? All the
double negatives give me a massive headache!

Reviewed by: James Greenhalgh <james.greenhalgh@arm.com>

Thanks,
James

> 
> ChangeLog:
> 2017-08-04  Wilco Dijkstra  <wdijkstr@arm.com>
> 
>     gcc/
> 	PR middle-end/60580
> 	* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
> 	Check special value of flag_omit_frame_pointer.
> 	(aarch64_can_eliminate): Likewise.
> 	(aarch64_override_options_after_change_1): Simplify handling of
> 	-fomit-frame-pointer and -fomit-leaf-frame-pointer.
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]