aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-11-16 11:30:43 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2017-11-16 11:30:43 +0000
commit9e780144ce070e286c4a0d467ed170408e1b3b47 (patch)
tree5e8c6884ebabe877e93dae60f92979cd392fb3a9 /gcc
parent8e43e9cd6064351db0015596cdafc225b75d975f (diff)
downloadgcc-9e780144ce070e286c4a0d467ed170408e1b3b47.zip
gcc-9e780144ce070e286c4a0d467ed170408e1b3b47.tar.gz
gcc-9e780144ce070e286c4a0d467ed170408e1b3b47.tar.bz2
[AArch64] Fix frame tests
Improve the AArch64 frame tests - add -f(no-)omit-frame-pointer, update checks and add missing tests. As a result all tests now pass. gcc/testsuite/ * gcc.target/aarch64/lr_free_2.c: Fix test. * 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: r254814
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog13
-rw-r--r--gcc/testsuite/gcc.target/aarch64/lr_free_2.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/spill_1.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_11.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_12.c4
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_13.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_14.c5
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_15.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_3.c5
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_5.c5
-rw-r--r--gcc/testsuite/gcc.target/aarch64/test_frame_9.c9
11 files changed, 36 insertions, 15 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 455b241..2c3e979 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2017-11-16 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * gcc.target/aarch64/lr_free_2.c: Fix test.
+ * 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.
+
2017-11-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70383
diff --git a/gcc/testsuite/gcc.target/aarch64/lr_free_2.c b/gcc/testsuite/gcc.target/aarch64/lr_free_2.c
index e2b9490..5d9500f 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-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-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" } */
extern void abort ();
diff --git a/gcc/testsuite/gcc.target/aarch64/spill_1.c b/gcc/testsuite/gcc.target/aarch64/spill_1.c
index 8474258..c9528cb 100644
--- a/gcc/testsuite/gcc.target/aarch64/spill_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/spill_1.c
@@ -14,5 +14,3 @@ 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 f162cc0..67f8582 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 "-O2 --save-temps" } */
+/* { dg-options "-fno-omit-frame-pointer -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 62761e7..02e48b4 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 --save-temps" } */
+/* { dg-options "-O2 -fomit-frame-pointer --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 "ldp\tx29, x30, \\\[sp, \[0-9\]+\\\]" } } */
+/* { dg-final { scan-assembler "ldr\tx30, \\\[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 74b3370..3313936 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 "-O2 --save-temps" } */
+/* { dg-options "-fno-omit-frame-pointer -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 78818de..95e2bf3 100644
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_14.c
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_14.c
@@ -4,9 +4,12 @@
* number of callee-save reg >= 2. */
/* { dg-do run } */
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -fno-omit-frame-pointer --save-temps" } */
#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 bed6714..aebf6d1 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 "-O2 --save-temps" } */
+/* { dg-options "-fno-omit-frame-pointer -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 f90ea4a..b34a0dd 100644
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_3.c
@@ -6,9 +6,12 @@
* we can't use "str !" to optimize stack adjustment. */
/* { dg-do run } */
-/* { dg-options "-O2 -fomit-frame-pointer" } */
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */
#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 0624b5b..2d7c83a 100644
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_5.c
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_5.c
@@ -5,9 +5,12 @@
* one subtraction of the whole frame size. */
/* { dg-do run } */
-/* { dg-options "-O2 -fomit-frame-pointer" } */
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */
#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 0dffbf8..a28fbce 100644
--- a/gcc/testsuite/gcc.target/aarch64/test_frame_9.c
+++ b/gcc/testsuite/gcc.target/aarch64/test_frame_9.c
@@ -4,14 +4,15 @@
* total frame size > 512.
area except outgoing <= 512
* number of callee-saved reg = 1.
- * Split stack adjustment into two subtractions.
- the first subtractions couldn't be optimized
- into "str !" as it's > 256. */
+ * Use a single stack adjustment. */
/* { dg-do run } */
-/* { dg-options "-O2 -fomit-frame-pointer" } */
+/* { dg-options "-O2 -fomit-frame-pointer --save-temps" } */
#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\]+\\\]" } } */