diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/common/config/aarch64/aarch64-common.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/lr_free_2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/spill_1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_11.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_12.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_13.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_14.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_15.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_3.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_5.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/test_frame_9.c | 9 |
13 files changed, 39 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc2bde0..85181cf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +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 Kito Cheng <kito.cheng@gmail.com> Chung-Ju Wu <jasonwucj@gmail.com> 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. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 86fce26..37ae751 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,18 @@ +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. + 2018-02-25 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83633 diff --git a/gcc/testsuite/gcc.target/aarch64/lr_free_2.c b/gcc/testsuite/gcc.target/aarch64/lr_free_2.c index 5d9500f..e2b9490 100644 --- a/gcc/testsuite/gcc.target/aarch64/lr_free_2.c +++ b/gcc/testsuite/gcc.target/aarch64/lr_free_2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-fno-omit-frame-pointer -fno-inline -O2 -ffixed-x2 -ffixed-x3 -ffixed-x4 -ffixed-x5 -ffixed-x6 -ffixed-x7 -ffixed-x8 -ffixed-x9 -ffixed-x10 -ffixed-x11 -ffixed-x12 -ffixed-x13 -ffixed-x14 -ffixed-x15 -ffixed-x16 -ffixed-x17 -ffixed-x18 -ffixed-x19 -ffixed-x20 -ffixed-x21 -ffixed-x22 -ffixed-x23 -ffixed-x24 -ffixed-x25 -ffixed-x26 -ffixed-x27 -ffixed-x28 --save-temps -mgeneral-regs-only -fno-ipa-cp -fdump-rtl-ira" } */ +/* { dg-options "-fno-inline -O2 -ffixed-x2 -ffixed-x3 -ffixed-x4 -ffixed-x5 -ffixed-x6 -ffixed-x7 -ffixed-x8 -ffixed-x9 -ffixed-x10 -ffixed-x11 -ffixed-x12 -ffixed-x13 -ffixed-x14 -ffixed-x15 -ffixed-x16 -ffixed-x17 -ffixed-x18 -ffixed-x19 -ffixed-x20 -ffixed-x21 -ffixed-x22 -ffixed-x23 -ffixed-x24 -ffixed-x25 -ffixed-x26 -ffixed-x27 -ffixed-x28 --save-temps -mgeneral-regs-only -fno-ipa-cp -fdump-rtl-ira" } */ extern void abort (); diff --git a/gcc/testsuite/gcc.target/aarch64/spill_1.c b/gcc/testsuite/gcc.target/aarch64/spill_1.c index c9528cb..8474258 100644 --- a/gcc/testsuite/gcc.target/aarch64/spill_1.c +++ b/gcc/testsuite/gcc.target/aarch64/spill_1.c @@ -14,3 +14,5 @@ foo (void) } /* { dg-final { scan-assembler-times {\tmovi\tv[0-9]+\.4s,} 2 } } */ +/* { dg-final { scan-assembler-not {\tldr\t} } } */ +/* { dg-final { scan-assembler-not {\tstr\t} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_11.c b/gcc/testsuite/gcc.target/aarch64/test_frame_11.c index 67f8582..f162cc0 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_11.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_11.c @@ -5,7 +5,7 @@ * optimized code should use "stp !" for stack adjustment. */ /* { dg-do run } */ -/* { dg-options "-fno-omit-frame-pointer -O2 --save-temps" } */ +/* { dg-options "-O2 --save-temps" } */ #include "test_frame_common.h" diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_12.c b/gcc/testsuite/gcc.target/aarch64/test_frame_12.c index 02e48b4..62761e7 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_12.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_12.c @@ -4,7 +4,7 @@ * number of callee-save reg >= 2. */ /* { dg-do run } */ -/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ +/* { dg-options "-O2 --save-temps" } */ #include "test_frame_common.h" @@ -14,5 +14,5 @@ t_frame_run (test12) /* { dg-final { scan-assembler-times "sub\tsp, sp, #\[0-9\]+" 1 } } */ /* Check epilogue using no write-back. */ -/* { dg-final { scan-assembler "ldr\tx30, \\\[sp, \[0-9\]+\\\]" } } */ +/* { dg-final { scan-assembler "ldp\tx29, x30, \\\[sp, \[0-9\]+\\\]" } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_13.c b/gcc/testsuite/gcc.target/aarch64/test_frame_13.c index 3313936..74b3370 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_13.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_13.c @@ -5,7 +5,7 @@ * Use a single stack adjustment, no writeback. */ /* { dg-do run } */ -/* { dg-options "-fno-omit-frame-pointer -O2 --save-temps" } */ +/* { dg-options "-O2 --save-temps" } */ #include "test_frame_common.h" diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_14.c b/gcc/testsuite/gcc.target/aarch64/test_frame_14.c index 95e2bf3..78818de 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_14.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_14.c @@ -4,12 +4,9 @@ * number of callee-save reg >= 2. */ /* { dg-do run } */ -/* { dg-options "-O2 -fno-omit-frame-pointer --save-temps" } */ +/* { dg-options "-O2" } */ #include "test_frame_common.h" t_frame_pattern_outgoing (test14, 700, , 8, a[8]) t_frame_run (test14) - -/* { dg-final { scan-assembler-times "sub\tsp, sp, #\[0-9\]+" 1 } } */ -/* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, \[0-9\]+\\\]" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_15.c b/gcc/testsuite/gcc.target/aarch64/test_frame_15.c index aebf6d1..bed6714 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_15.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_15.c @@ -6,7 +6,7 @@ * Use a single stack adjustment, no writeback. */ /* { dg-do run } */ -/* { dg-options "-fno-omit-frame-pointer -O2 --save-temps" } */ +/* { dg-options "-O2 --save-temps" } */ #include "test_frame_common.h" diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_3.c b/gcc/testsuite/gcc.target/aarch64/test_frame_3.c index b34a0dd..f90ea4a 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_3.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_3.c @@ -6,12 +6,9 @@ * we can't use "str !" to optimize stack adjustment. */ /* { dg-do run } */ -/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ #include "test_frame_common.h" t_frame_pattern (test3, 400, ) t_frame_run (test3) - -/* { dg-final { scan-assembler-times "sub\tsp, sp, #\[0-9\]+" 1 } } */ -/* { dg-final { scan-assembler "str\tx30, \\\[sp\\\]" } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_5.c b/gcc/testsuite/gcc.target/aarch64/test_frame_5.c index 2d7c83a..0624b5b 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_5.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_5.c @@ -5,12 +5,9 @@ * one subtraction of the whole frame size. */ /* { dg-do run } */ -/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ #include "test_frame_common.h" t_frame_pattern_outgoing (test5, 300, "x19", 8, a[8]) t_frame_run (test5) - -/* { dg-final { scan-assembler-times "sub\tsp, sp, #\[0-9\]+" 1 } } */ -/* { dg-final { scan-assembler "stp\tx\[0-9\]+, x30, \\\[sp, \[0-9\]+\\\]" } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_9.c b/gcc/testsuite/gcc.target/aarch64/test_frame_9.c index a28fbce..0dffbf8 100644 --- a/gcc/testsuite/gcc.target/aarch64/test_frame_9.c +++ b/gcc/testsuite/gcc.target/aarch64/test_frame_9.c @@ -4,15 +4,14 @@ * total frame size > 512. area except outgoing <= 512 * number of callee-saved reg = 1. - * Use a single stack adjustment. */ + * Split stack adjustment into two subtractions. + the first subtractions couldn't be optimized + into "str !" as it's > 256. */ /* { dg-do run } */ -/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ #include "test_frame_common.h" t_frame_pattern_outgoing (test9, 480, , 24, a[8], a[9], a[10]) t_frame_run (test9) - -/* { dg-final { scan-assembler-times "sub\tsp, sp, #\[0-9\]+" 1 } } */ -/* { dg-final { scan-assembler "str\tx30, \\\[sp, \[0-9\]+\\\]" } } */ |