aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-10-24 11:22:42 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-10-24 11:22:42 +0000
commit40f683e88d5aeef52425f719a7197da4d1d524a7 (patch)
treef437f7ebf06c7ddb56c34be09fee7a257e8d2c20 /gcc/testsuite
parent6a5792b660b24aed969139573707bc20702c81d4 (diff)
downloadgcc-40f683e88d5aeef52425f719a7197da4d1d524a7.zip
gcc-40f683e88d5aeef52425f719a7197da4d1d524a7.tar.gz
gcc-40f683e88d5aeef52425f719a7197da4d1d524a7.tar.bz2
tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore backedges when identifying the single predecessor to take conditional...
2016-10-24 Richard Biener <rguenther@suse.de> * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore backedges when identifying the single predecessor to take conditional info from. Use SCEV to get at ranges for loop IVs. * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to avoid false warning. * gcc.dg/tree-ssa/cunroll-13.c: Disable EVRP. * gcc.dg/tree-ssa/pr21458.c: Likewise. * gcc.dg/tree-ssa/pr21458-2.c: New testcase for EVRP. From-SVN: r241470
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr21458-2.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr21458.c2
4 files changed, 28 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bc9bf67..eb0f976 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-24 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/cunroll-13.c: Disable EVRP.
+ * gcc.dg/tree-ssa/pr21458.c: Likewise.
+ * gcc.dg/tree-ssa/pr21458-2.c: New testcase for EVRP.
+
2016-10-24 Georg-Johann Lay <avr@gjlay.de>
PR target/78093
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c b/gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
index 6e4417a..f3fe8b5 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cunroll-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O3 -fdisable-tree-cunrolli -fdisable-tree-vrp1 -fdump-tree-cunroll-blocks-details" } */
+/* { dg-options "-O3 -fdisable-tree-evrp -fdisable-tree-cunrolli -fdisable-tree-vrp1 -fdump-tree-cunroll-blocks-details" } */
struct a {int a[8];int b;};
void
t(struct a *a)
@@ -8,7 +8,7 @@ t(struct a *a)
a->a[i]++;
}
/* This pass relies on the fact that we do not eliminate the redundant test for i early.
- It is necessary to disable all passes that do so. At the moment it is vrp1 and cunrolli. */
+ It is necessary to disable all passes that do so. At the moment it is evrp, vrp1 and cunrolli. */
/* { dg-final { scan-tree-dump-times "Loop 1 iterates 123454 times" 1 "cunroll" } } */
/* { dg-final { scan-tree-dump-times "Last iteration exit edge was proved true" 1 "cunroll" } } */
/* { dg-final { scan-tree-dump-times "Exit condition of peeled iterations was eliminated" 1 "cunroll" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21458-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21458-2.c
new file mode 100644
index 0000000..2aee42f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21458-2.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-evrp-details" } */
+
+extern void g (void);
+extern void bar (int);
+
+int
+foo (int a)
+{
+ int i;
+
+ for (i = 1; i < 100; i++)
+ {
+ if (i)
+ g ();
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "Predicate evaluates to: 1" 1 "evrp" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
index 20ec9c9..97d17f2 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-vrp1" } */
+/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1" } */
extern void g (void);
extern void bar (int);