[Patch AArch64] Turn on frame pointer / partial fix for PR84521
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Mon, 26 Feb 2018 09:25:21 +0000 (09:25 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Mon, 26 Feb 2018 09:25:21 +0000 (09:25 +0000)
commitaf3b4514fcb92b6275ed52e47bb0dd8146f7e304
tree061f6dfbf103c37765d8f2d008313fd5039dd4f7
parentcc9b241b51c485a746284bf583a99ec68008fc31
[Patch AArch64] Turn on frame pointer / partial fix for PR84521

This fixes a GCC-8 regression that we accidentally switched off frame
pointers in the AArch64 backend when changing the defaults in the common
parts of the code. This breaks an ABI decision that was made in GCC at
the dawn of the port with respect to having a frame pointer at all
times.  If we really want to turn this off lets have a discussion around
that separately.

For now turn this back on and I believe this will leave PR84521 latent
again with -fomit-frame-pointer and (hopefully) make the ruby issue go
away. I'm asking Sudi to pick that up.

Bootstrapped and regression tested on AArch64-none-linux-gnu but I see
one regression in gcc.c-torture/execute/960419-2.c which needs to be
looked at next (PR84528, thanks Kyrill).

Ok to put in and then look at PR84528 ?

2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/84521
* common/config/aarch64/aarch64-common.c
(aarch_option_optimization_table[]): Switch
off fomit-frame-pointer

2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/84521
* gcc.target/aarch64/lr_free_2.c: Revert changes in
r254814 disabling -fomit-frame-pointer by default.
* gcc.target/aarch64/spill_1.c: Likewise.
* gcc.target/aarch64/test_frame_11.c: Likewise.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_14.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.
* gcc.target/aarch64/test_frame_3.c: Likewise.
* gcc.target/aarch64/test_frame_5.c: Likewise.
* gcc.target/aarch64/test_frame_9.c: Likewise.

From-SVN: r257984
13 files changed:
gcc/ChangeLog
gcc/common/config/aarch64/aarch64-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/lr_free_2.c
gcc/testsuite/gcc.target/aarch64/spill_1.c
gcc/testsuite/gcc.target/aarch64/test_frame_11.c
gcc/testsuite/gcc.target/aarch64/test_frame_12.c
gcc/testsuite/gcc.target/aarch64/test_frame_13.c
gcc/testsuite/gcc.target/aarch64/test_frame_14.c
gcc/testsuite/gcc.target/aarch64/test_frame_15.c
gcc/testsuite/gcc.target/aarch64/test_frame_3.c
gcc/testsuite/gcc.target/aarch64/test_frame_5.c
gcc/testsuite/gcc.target/aarch64/test_frame_9.c