aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-08-14 11:18:50 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2017-08-14 11:18:50 +0000
commit5316dd1b63913e390fb2a5d7b335aeacd9da3001 (patch)
tree438c15e4f1577cbd6142da5d6768ca7946821048 /gcc
parent250db3f9b2182fd7dabce50b7b3fb7e2ee85bf3d (diff)
downloadgcc-5316dd1b63913e390fb2a5d7b335aeacd9da3001.zip
gcc-5316dd1b63913e390fb2a5d7b335aeacd9da3001.tar.gz
gcc-5316dd1b63913e390fb2a5d7b335aeacd9da3001.tar.bz2
Add check_effective_target_autoincdec.
Add check_effective_target_autoincdec that returns true if a target runs the auto_inc_dec optimization pass. gcc/ * doc/sourcebuild.texi (autoincdec): Add autoincdec description. gcc/testsuite/ PR middle-end/46932 * gcc.dg/pr46932.c: Use dg-require-effective-target autoincdec. * lib/target-supports.exp: Add check_effective_target_autoincdec. From-SVN: r251087
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/doc/sourcebuild.texi3
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/pr46932.c4
-rw-r--r--gcc/testsuite/lib/target-supports.exp15
5 files changed, 30 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5fe0a90..19bb575 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
+
+ PR middle-end/46932
+ * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
+
2017-08-14 Georg-Johann Lay <avr@gjlay.de>
PR target/81754
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 85af877..e6313dc 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1846,6 +1846,9 @@ PowerPC target supports executing VSX instructions (ISA 2.06).
@c Please keep this table sorted alphabetically.
@table @code
+@item autoincdec
+Target supports autoincrement/decrement addressing.
+
@item avx
Target supports compiling @code{avx} instructions.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b6f6f1d..8995806 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
+
+ PR middle-end/46932
+ * gcc.dg/pr46932.c: Use dg-require-effective-target autoincdec.
+ * lib/target-supports.exp: Add check_effective_target_autoincdec.
+
2017-08-14 Szabolcs Nagy <szabolcs.nagy@arm.com>
* gcc.target/aarch64/dbl_mov_immediate_1.c: Add
diff --git a/gcc/testsuite/gcc.dg/pr46932.c b/gcc/testsuite/gcc.dg/pr46932.c
index 4eb1a99..2b39990 100644
--- a/gcc/testsuite/gcc.dg/pr46932.c
+++ b/gcc/testsuite/gcc.dg/pr46932.c
@@ -1,7 +1,5 @@
/* { dg-options "-O2 -fdump-rtl-auto_inc_dec" } */
-
-/* Build on targets which have pre increment. */
-/* { dg-do compile { target aarch64*-*-* arm*-*-* rs6000-*-* powerpc*-*-* arc*-*-* m32r-*-* tic6x-*-* } } */
+/* { dg-require-effective-target autoincdec } */
/* Check that accesses based on the frame pointer do not
use auto increment. */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 5a65627..5219fbf 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -8482,3 +8482,18 @@ proc check_effective_target_arm_coproc4_ok { } {
return [check_cached_effective_target arm_coproc4_ok \
check_effective_target_arm_coproc4_ok_nocache]
}
+
+# Return 1 if the target supports the auto_inc_dec optimization pass.
+proc check_effective_target_autoincdec { } {
+ if { ![check_no_compiler_messages auto_incdec assembly { void f () { }
+ } "-O2 -fdump-rtl-auto_inc_dec" ] } {
+ return 0
+ }
+
+ set dumpfile [glob -nocomplain "auto_incdec[pid].c.\[0-9\]\[0-9\]\[0-9\]r.auto_inc_dec"]
+ if { [file exists $dumpfile ] } {
+ file delete $dumpfile
+ return 1
+ }
+ return 0
+}