aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-10-24 16:58:02 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2017-10-24 16:58:02 +0000
commitacea40ac746971daf5b9e6091b908653407b86ea (patch)
tree99bc19b4dda4e1334a78125b182efe17320df8bd /gcc/fold-const.c
parent02b0c08c2c42c6e4e53525e14953ad4099536773 (diff)
downloadgcc-acea40ac746971daf5b9e6091b908653407b86ea.zip
gcc-acea40ac746971daf5b9e6091b908653407b86ea.tar.gz
gcc-acea40ac746971daf5b9e6091b908653407b86ea.tar.bz2
PR60580: Fix frame pointer option magic
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. 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. From-SVN: r254052
Diffstat (limited to 'gcc/fold-const.c')
0 files changed, 0 insertions, 0 deletions