aboutsummaryrefslogtreecommitdiff
path: root/gcc/common/config/aarch64
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>2018-02-26 09:25:21 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2018-02-26 09:25:21 +0000
commitaf3b4514fcb92b6275ed52e47bb0dd8146f7e304 (patch)
tree061f6dfbf103c37765d8f2d008313fd5039dd4f7 /gcc/common/config/aarch64
parentcc9b241b51c485a746284bf583a99ec68008fc31 (diff)
downloadgcc-af3b4514fcb92b6275ed52e47bb0dd8146f7e304.zip
gcc-af3b4514fcb92b6275ed52e47bb0dd8146f7e304.tar.gz
gcc-af3b4514fcb92b6275ed52e47bb0dd8146f7e304.tar.bz2
[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
Diffstat (limited to 'gcc/common/config/aarch64')
-rw-r--r--gcc/common/config/aarch64/aarch64-common.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/common/config/aarch64/aarch64-common.c b/gcc/common/config/aarch64/aarch64-common.c
index 71d3953..7fd9305 100644
--- a/gcc/common/config/aarch64/aarch64-common.c
+++ b/gcc/common/config/aarch64/aarch64-common.c
@@ -47,6 +47,8 @@ static const struct default_options aarch_option_optimization_table[] =
{
/* Enable section anchors by default at -O1 or higher. */
{ OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 },
+ /* Disable fomit-frame-pointer by default. */
+ { OPT_LEVELS_ALL, OPT_fomit_frame_pointer, NULL, 0 },
/* Enable -fsched-pressure by default when optimizing. */
{ OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 },
/* Enable redundant extension instructions removal at -O2 and higher. */