summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-07 06:05:11 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-07 06:05:11 +0000
commitebebeee379dd8b985e6877e56bc124041907038b (patch)
tree32a2ce6c6b8ce5f11172be301cb81225d5d5cbac /gcc/testsuite/gcc.dg
parent588bbfff28d00a54a71f2d751fb75767b6b1b3cb (diff)
downloadgcc-ebebeee379dd8b985e6877e56bc124041907038b.tar.gz
2009-04-07 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r145646 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@145649 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r--gcc/testsuite/gcc.dg/memcpy-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr19633-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/pr38984.c6
-rw-r--r--gcc/testsuite/gcc.dg/pragma-isr-trapa2.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr30375.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr33560.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr33563.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr33870.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr39074-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr39074.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pta-callused-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c37
-rw-r--r--gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c34
-rw-r--r--gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c61
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/alias-15.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/alias-16.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/alias-18.c8
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/alias-19.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/alias-20.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr13146.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr23086.c35
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr23382.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr2480.c53
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr26421.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr38895.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c26
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c26
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/sra-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-4.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-5.c15
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-12.c12
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-15.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-18.c28
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-19.c31
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-20.c20
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-23.c21
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-23.c13
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c20
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-25.c23
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/uninit-B.c2
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pr19430.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c5
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c2
54 files changed, 589 insertions, 80 deletions
diff --git a/gcc/testsuite/gcc.dg/memcpy-1.c b/gcc/testsuite/gcc.dg/memcpy-1.c
index 2b11098b286..cc602423793 100644
--- a/gcc/testsuite/gcc.dg/memcpy-1.c
+++ b/gcc/testsuite/gcc.dg/memcpy-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fdump-tree-optimized --param sra-max-structure-size=32" } */
/* PR36598 AVR fail maybe due to cost metrics */
/* { dg-final { scan-tree-dump-times "nasty_local" 0 "optimized" { xfail { "avr-*-*" } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/pr19633-1.c b/gcc/testsuite/gcc.dg/pr19633-1.c
index 6370ff59b23..c05e46aef64 100644
--- a/gcc/testsuite/gcc.dg/pr19633-1.c
+++ b/gcc/testsuite/gcc.dg/pr19633-1.c
@@ -1,9 +1,5 @@
/* { dg-do run } */
-
-/* The max-aliased-vops setting is a temporary workaround to avoid the
- random failures as described in PR 30194. This test case does not
- need alias sets bigger than 13 elements. */
-/* { dg-options "-O2 --param max-aliased-vops=15" } */
+/* { dg-options "-O2" } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/pr38984.c b/gcc/testsuite/gcc.dg/pr38984.c
index 0ba72739942..11f1e7f211a 100644
--- a/gcc/testsuite/gcc.dg/pr38984.c
+++ b/gcc/testsuite/gcc.dg/pr38984.c
@@ -10,10 +10,8 @@ int f(int *p)
return *p == a;
}
-/* Currently fails because of PR38985. */
-
-/* { dg-final { scan-tree-dump-times " = \\\*p" 2 "optimized" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-not "return 1" "optimized" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "\\\*p" 2 "optimized" } } */
+/* { dg-final { scan-tree-dump-not "return 1" "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c b/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
index 7b68185fc03..a1165893be5 100644
--- a/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
+++ b/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
@@ -1,4 +1,6 @@
/* { dg-do compile { target { { sh-*-* sh4*-*-* } && nonpic } } } */
+/* { dg-skip-if "FPU Required" { "sh*-*-*" } { "-m*nofpu*" } { "" } } */
+/* { dg-skip-if "FPU Required" { "sh*-*-*" } { "-m4al*" } { "" } } */
/* { dg-options "-O -m4" } */
extern void foo ();
diff --git a/gcc/testsuite/gcc.dg/torture/pr30375.c b/gcc/testsuite/gcc.dg/torture/pr30375.c
index ea63f97c98d..435c38f13b8 100644
--- a/gcc/testsuite/gcc.dg/torture/pr30375.c
+++ b/gcc/testsuite/gcc.dg/torture/pr30375.c
@@ -1,5 +1,4 @@
/* { dg-do run } */
-/* { dg-options "--param max-aliased-vops=0" } */
typedef struct _s {
int a;
diff --git a/gcc/testsuite/gcc.dg/torture/pr33560.c b/gcc/testsuite/gcc.dg/torture/pr33560.c
index 5b2359b3dc0..7eea1e3f601 100644
--- a/gcc/testsuite/gcc.dg/torture/pr33560.c
+++ b/gcc/testsuite/gcc.dg/torture/pr33560.c
@@ -1,5 +1,4 @@
/* { dg-do run } */
-/* { dg-options "--param max-aliased-vops=0" } */
struct T
{
diff --git a/gcc/testsuite/gcc.dg/torture/pr33563.c b/gcc/testsuite/gcc.dg/torture/pr33563.c
index 47907db7ea6..33e78521c50 100644
--- a/gcc/testsuite/gcc.dg/torture/pr33563.c
+++ b/gcc/testsuite/gcc.dg/torture/pr33563.c
@@ -1,5 +1,4 @@
/* { dg-do run } */
-/* { dg-options "--param max-aliased-vops=0" } */
struct T
{
diff --git a/gcc/testsuite/gcc.dg/torture/pr33870.c b/gcc/testsuite/gcc.dg/torture/pr33870.c
index 519efd3a592..9c0e30d94be 100644
--- a/gcc/testsuite/gcc.dg/torture/pr33870.c
+++ b/gcc/testsuite/gcc.dg/torture/pr33870.c
@@ -1,5 +1,4 @@
/* { dg-do run } */
-/* { dg-options "--param max-aliased-vops=1" } */
struct X {
int i;
diff --git a/gcc/testsuite/gcc.dg/torture/pr39074-2.c b/gcc/testsuite/gcc.dg/torture/pr39074-2.c
index 89f7ebf8cd8..a90c5643dca 100644
--- a/gcc/testsuite/gcc.dg/torture/pr39074-2.c
+++ b/gcc/testsuite/gcc.dg/torture/pr39074-2.c
@@ -30,5 +30,5 @@ int main()
return 0;
}
-/* { dg-final { scan-tree-dump "y.._., name memory tag: NMT..., is dereferenced, points-to vars: { i }" "alias" } } */
+/* { dg-final { scan-tree-dump "y.._., points-to vars: { i }" "alias" } } */
/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/torture/pr39074.c b/gcc/testsuite/gcc.dg/torture/pr39074.c
index cc37c8e08ec..7be7e227b25 100644
--- a/gcc/testsuite/gcc.dg/torture/pr39074.c
+++ b/gcc/testsuite/gcc.dg/torture/pr39074.c
@@ -27,5 +27,5 @@ int main()
return 0;
}
-/* { dg-final { scan-tree-dump "y.._., name memory tag: NMT..., is dereferenced, points-to vars: { i }" "alias" } } */
+/* { dg-final { scan-tree-dump "y.._., points-to vars: { i }" "alias" } } */
/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/torture/pta-callused-1.c b/gcc/testsuite/gcc.dg/torture/pta-callused-1.c
index dfe994b7a84..dfbde86c65b 100644
--- a/gcc/testsuite/gcc.dg/torture/pta-callused-1.c
+++ b/gcc/testsuite/gcc.dg/torture/pta-callused-1.c
@@ -21,5 +21,5 @@ int main()
return 0;
}
-/* { dg-final { scan-tree-dump "p.._., name memory tag: NMT..., is dereferenced, points-to vars: { i j }" "alias" } } */
+/* { dg-final { scan-tree-dump "p.._., points-to vars: { i j }" "alias" } } */
/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c b/gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c
new file mode 100644
index 00000000000..6c08319d8c5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c
@@ -0,0 +1,37 @@
+/* { dg-do run } */
+/* { dg-options "-fdump-tree-alias" } */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+
+extern void abort (void);
+struct X {
+ int *p;
+ int *q;
+ int *r;
+};
+int __attribute__((noinline))
+foo(int i, int j, int k, int off)
+{
+ struct X x;
+ int **p, *q;
+ x.p = &i;
+ x.q = &j;
+ x.r = &k;
+ p = &x.q;
+ p += off;
+ /* *p points to { i, j, k } */
+ q = *p;
+ return *q;
+}
+int main()
+{
+ if (foo(1, 2, 3, -1) != 1)
+ abort ();
+ if (foo(1, 2, 3, 0) != 2)
+ abort ();
+ if (foo(1, 2, 3, 1) != 3)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "q_., points-to vars: { i j k }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c b/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
new file mode 100644
index 00000000000..bdb2acb0464
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pta-structcopy-1.c
@@ -0,0 +1,34 @@
+/* { dg-do run } */
+/* { dg-options "-fno-tree-sra -fdump-tree-alias" } */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+
+struct X
+{
+ long l1;
+ struct Y
+ {
+ long l2;
+ int *p;
+ } y;
+};
+int i;
+static int
+foo (struct X *x)
+{
+ struct Y y = x->y;
+ *y.p = 0;
+ i = 1;
+ return *y.p;
+}
+extern void abort (void);
+int main()
+{
+ struct X x;
+ x.y.p = &i;
+ if (foo(&x) != 1)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "points-to vars: { i }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c b/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
new file mode 100644
index 00000000000..21d36dc60f2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
@@ -0,0 +1,61 @@
+/* { dg-do run } */
+/* { dg-options "-fdump-tree-alias" } */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+
+extern void abort (void);
+int *glob;
+
+int * __attribute__((noinline,const))
+foo_const(int *p) { return p; }
+
+int * __attribute__((noinline,pure))
+foo_pure(int *p) { return glob; }
+
+int * __attribute__((noinline))
+foo_normal(int *p) { glob = p; return p; }
+
+void test_const(void)
+{
+ int i;
+ int *p = &i;
+ int *q_const = foo_const(p);
+ *p = 1;
+ *q_const = 2;
+ if (*p != 2)
+ abort ();
+}
+
+void test(void)
+{
+ int i;
+ int *p = &i;
+ int *q_normal = foo_normal(p);
+ *p = 1;
+ *q_normal = 2;
+ if (*p != 2)
+ abort ();
+}
+
+void test_pure(void)
+{
+ int i;
+ int *p = &i;
+ int *q_pure = foo_pure(p);
+ *p = 1;
+ *q_pure = 2;
+ if (*p != 2)
+ abort ();
+}
+
+int main()
+{
+ test_const();
+ test();
+ test_pure();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump "q_const_., points-to non-local, points-to vars: { i }" "alias" } } */
+/* { dg-final { scan-tree-dump "q_pure_., points-to non-local, points-to escaped, points-to vars: { i }" "alias" } } */
+/* { dg-final { scan-tree-dump "q_normal_., points-to non-local, points-to escaped, points-to vars: { }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
index ab8e38e1dd6..4b148f23df5 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-xfail-if "" { *-*-* } { "*" } { "" } } See PR34743. */
/* { dg-options "-O2" } */
struct A
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-15.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-15.c
deleted file mode 100644
index 617af0fd154..00000000000
--- a/gcc/testsuite/gcc.dg/tree-ssa/alias-15.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O -fno-early-inlining -fdump-tree-alias-vops-details" } */
-
-struct foo {
- int a;
- struct X {
- int b[4];
- } b;
-} m;
-static inline struct X *wrap(struct X *p) { return p; }
-int test2(void)
-{
- struct X *p = wrap(&m.b);
- /* Both memory references need to alias the same tags. */
- return p->b[3] - m.b.b[3];
-}
-
-/* { dg-final { scan-tree-dump-times "VUSE <m_.\\\(D\\\)>" 2 "alias" } } */
-/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-16.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-16.c
index cf10fa913ce..c71486c26c2 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/alias-16.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-16.c
@@ -1,9 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-O --param max-aliased-vops=1" } */
-/* Compile with -O --param max-aliased-vops=1. This partitions all
- the initial SFTs for 'm' which was causing the operand scanner to
- miss adding the right SFTs to p->b[2]. */
extern void abort (void);
struct X {
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c
index 84d884effb5..e86acbc1900 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fre-details -fdump-tree-optimized --param max-aliased-vops=0" } */
+/* { dg-options "-O2 -fdump-tree-fre-details -fdump-tree-optimized" } */
struct A {
int i;
@@ -77,11 +77,11 @@ int test8 (struct A *p, int *q)
}
/* { dg-final { scan-tree-dump "with 0" "fre" } } */
-/* { dg-final { scan-tree-dump "with 1" "fre" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump "with 3" "fre" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump "with 1" "fre" } } */
+/* { dg-final { scan-tree-dump "with 3" "fre" } } */
/* { dg-final { scan-tree-dump "with 4" "fre" } } */
/* { dg-final { scan-tree-dump "with 5" "fre" } } */
-/* { dg-final { scan-tree-dump "with 8" "fre" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump "with 8" "fre" } } */
/* { dg-final { scan-tree-dump-not "return 2;" "optimized" } } */
/* { dg-final { scan-tree-dump-not "return 6;" "optimized" } } */
/* { dg-final { scan-tree-dump-not "return 7;" "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-19.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-19.c
index b92df4343c2..7b3689049ac 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/alias-19.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-19.c
@@ -26,6 +26,5 @@ int main()
}
/* { dg-final { scan-tree-dump "q_. = { a b }" "alias" } } */
-/* { dg-final { scan-tree-dump "q_., name memory tag: NMT..., is dereferenced, points-to vars: { a b }" "alias" } } */
-/* { dg-final { scan-tree-dump "# VUSE <a_.\\\(D\\\), b_.>" "alias" } } */
+/* { dg-final { scan-tree-dump "q_., points-to vars: { a b }" "alias" } } */
/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-20.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-20.c
new file mode 100644
index 00000000000..7991c52fd0a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-20.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fstrict-aliasing -fdump-tree-optimized" } */
+
+struct S { float f; int i; };
+struct R { int x; int i; };
+
+/* Strict-aliasing rules say that int and float do not alias. */
+int bar(struct S *s, int *i)
+{
+ *i = 0;
+ s->f = 1.0;
+ return *i;
+}
+
+/* Strict-aliasing rules say that S and R do not alias. */
+int foo(struct S *s, struct R *r)
+{
+ r->i = 0;
+ s->i = 1;
+ return r->i;
+}
+
+/* { dg-final { scan-tree-dump-times "return 0;" 2 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr13146.c b/gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
new file mode 100644
index 00000000000..b556457678c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fstrict-aliasing -fdump-tree-optimized" } */
+
+struct A
+{
+ int i;
+};
+struct B
+{
+ struct A a;
+ int j;
+};
+
+int foo (struct A *p, struct B *q)
+{
+ p->i = 0;
+ q->j = 1;
+ return p->i;
+}
+
+/* { dg-final { scan-tree-dump "return 0;" "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23086.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23086.c
new file mode 100644
index 00000000000..206b92de147
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23086.c
@@ -0,0 +1,35 @@
+/* { dg-do run } */
+/* { dg-options "-O -fdump-tree-optimized" } */
+
+extern void link_error (void);
+extern void abort (void);
+
+int *t;
+int __attribute__((noinline)) g(int *a)
+{
+ t = a;
+ *a = 2;
+}
+
+void __attribute__((noinline)) f(int *a)
+{
+ int b;
+ b = 1;
+ g(&b);
+ b = 2;
+ *a = 1;
+ if (b != 2)
+ link_error();
+}
+
+int main(void)
+{
+ int t;
+ f(&t);
+ if (t != 1)
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump-not "link_error" "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
index 331e01b5ae3..fd74af8d6a1 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-alias-vops" } */
+/* { dg-options "-O2 -fdump-tree-pre-details" } */
struct a
{
int length;
@@ -13,5 +13,5 @@ int f(void)
struct a *a = malloc(sizeof(struct a));
return a->length;
}
-/* { dg-final { scan-tree-dump-times "VDEF <HEAP" 1 "alias"} } */
-/* { dg-final { cleanup-tree-dump "alias" } } */
+/* { dg-final { scan-tree-dump-times "Variable: HEAP" 1 "pre"} } */
+/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr2480.c b/gcc/testsuite/gcc.dg/tree-ssa/pr2480.c
new file mode 100644
index 00000000000..d7f7af4d295
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr2480.c
@@ -0,0 +1,53 @@
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+
+/* We have enough cascading at -O2 to cover the missed control-dependence
+ in SCCVN (which considers the link_error calls to clobber the structs). */
+
+struct example
+{
+ char a;
+ int b;
+ char c;
+} *ex1;
+
+extern void link_error(void);
+
+void
+bar (void)
+{
+ ex1->a = 1;
+ ex1->b = 2;
+ ex1->c = 3;
+
+ if (ex1->a != 1)
+ link_error ();
+ if (ex1->b != 2)
+ link_error ();
+ if (ex1->c != 3)
+ link_error ();
+
+}
+
+void
+foo (struct example *ex2)
+{
+ ex2->a = 1;
+ ex2->b = 2;
+ ex2->c = 3;
+
+ if (ex2->a != 1)
+ link_error ();
+ if (ex2->b != 2)
+ link_error ();
+ if (ex2->c != 3)
+ link_error ();
+
+}
+
+int main (void)
+{
+ bar ();
+ foo (ex1);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr26421.c b/gcc/testsuite/gcc.dg/tree-ssa/pr26421.c
index 73db85c17da..70f123158af 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr26421.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr26421.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-alias-vops" } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
typedef struct {
int i;
@@ -18,5 +18,5 @@ int foo(void)
/* Verify the call clobbers all of a. */
-/* { dg-final { scan-tree-dump-times "VDEF <a_" 2 "alias" } } */
-/* { dg-final { cleanup-tree-dump "alias" } } */
+/* { dg-final { scan-tree-dump-not "return 1;" "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr38895.c b/gcc/testsuite/gcc.dg/tree-ssa/pr38895.c
new file mode 100644
index 00000000000..0a96e53348a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr38895.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fstrict-aliasing -fdump-tree-optimized" } */
+
+struct A {
+ int i;
+ int j;
+};
+struct B {
+ struct A a1;
+ struct A a2;
+};
+struct C {
+ struct A a1;
+ struct B b;
+};
+int foo(struct C *c, struct B *b)
+{
+ c->a1.i = 1;
+ b->a1.i = 0;
+ return c->a1.i;
+}
+
+/* { dg-final { scan-tree-dump "return 1;" "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
new file mode 100644
index 00000000000..b61674dff3a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fno-tree-ccp -fdump-tree-alias" } */
+
+extern void abort (void);
+struct X {
+ int *p;
+ int *q;
+ int *r;
+};
+int __attribute__((noinline))
+foo(int i, int j, int k, int off)
+{
+ struct X x;
+ int **p, *q;
+ x.p = &i;
+ x.q = &j;
+ x.r = &k;
+ p = &x.q;
+ p += 1;
+ /* *p points to { k } */
+ q = *p;
+ return *q;
+}
+
+/* { dg-final { scan-tree-dump "q_., points-to vars: { k }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
new file mode 100644
index 00000000000..adb01b23165
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fno-tree-ccp -fdump-tree-alias" } */
+
+extern void abort (void);
+struct X {
+ int *p;
+ int *q;
+ int *r;
+};
+int __attribute__((noinline))
+foo(int i, int j, int k, int off)
+{
+ struct X x;
+ int **p, *q;
+ x.p = &i;
+ x.q = &j;
+ x.r = &k;
+ p = &x.q;
+ p -= 1;
+ /* *p points to { i } */
+ q = *p;
+ return *q;
+}
+
+/* { dg-final { scan-tree-dump "q_., points-to vars: { i }" "alias" } } */
+/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c b/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
index 732dc302deb..661dc58ff09 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
@@ -24,5 +24,5 @@ copystruct1 (void)
}
/* There should be no reference to link_error. */
-/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-4.c
new file mode 100644
index 00000000000..89118a62621
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-4.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-cddce1" } */
+
+int foo(int b)
+{
+ int a[128];
+ a[b] = 1;
+ if (b)
+ {
+ b = 2;
+ a[2] = 0;
+ }
+ a[2] = 3;
+ return a[2] + b;
+}
+
+/* { dg-final { scan-tree-dump-times "a\\\[\[^\n\]\\\]" 2 "cddce1" } } */
+/* { dg-final { cleanup-tree-dump "cddce1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-5.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-5.c
new file mode 100644
index 00000000000..11c9e666b3c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-5.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fno-tree-sra -fdump-tree-cddce1" } */
+
+struct X { int i; };
+struct X foo(int b)
+{
+ struct X x;
+ if (b)
+ x.i = 0;
+ x.i = 1;
+ return x;
+}
+
+/* { dg-final { scan-tree-dump-times "x.i =" 1 "cddce1" } } */
+/* { dg-final { cleanup-tree-dump "cddce1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-12.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-12.c
new file mode 100644
index 00000000000..dd8f69c8aea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-12.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-dse1" } */
+
+void foo (int *p, int b)
+{
+ if (b)
+ *p = 1;
+ *p = 0;
+}
+
+/* { dg-final { scan-tree-dump-times "\\\*p" 1 "dse1" } } */
+/* { dg-final { cleanup-tree-dump "dse1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
index a27f2d6c023..34217a0298a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
@@ -18,5 +18,9 @@ void __frame_state_for (volatile char *state_in, int x)
}
}
-/* { dg-final { scan-tree-dump "Insertions: 2" "pre" } } */
+/* This is a weird testcase. It should need PPRE to hoist the loop
+ invariants and the volatileness of state_in prevents DSE of the
+ first store. Thus, this is XFAILed. */
+
+/* { dg-final { scan-tree-dump "Insertions: 2" "pre" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c
index 3253afe2927..ae9eb5a2002 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c
@@ -1,9 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O -fstrict-aliasing -fno-tree-sra --param max-aliased-vops=0 --param max-fields-for-field-sensitive=0 -fdump-tree-fre-details" } */
+/* { dg-options "-O -fstrict-aliasing -fno-tree-sra -fdump-tree-fre-details" } */
-/* Should be optimized, propagating &a into (*p)[i] with parameters
- --param max-aliased-vops=0 --param max-fields-for-field-sensitive=0
- which means max 1 VOP per stmt and no SFTs. */
+/* Should be optimized, propagating &a into (*p)[i]. */
/* For this testcase we need TBAA to work. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c
index d2d5e01bcc4..24b58ee941a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c
@@ -1,9 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O -fno-tree-sra --param max-aliased-vops=0 --param max-fields-for-field-sensitive=0 -fdump-tree-fre-details" } */
+/* { dg-options "-O -fno-tree-sra -fdump-tree-fre-details" } */
-/* Should be optimized, propagating &a into (*p)[i] with parameters
- --param max-aliased-vops=0 --param max-fields-for-field-sensitive=0
- which means max 1 VOP per stmt and no SFTs. */
+/* Should be optimized, propagating &a into (*p)[i]. */
struct Foo
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-15.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-15.c
index 1a286f1e1cb..a557f27f319 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-15.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-15.c
@@ -1,9 +1,7 @@
/* { dg-do compile } */
-/* { dg-options "-O -fno-tree-sra --param max-aliased-vops=0 --param max-fields-for-field-sensitive=0 -fdump-tree-fre-details" } */
+/* { dg-options "-O -fno-tree-sra -fdump-tree-fre-details" } */
-/* Should be optimized, propagating &a into (*p)[i] with parameters
- --param max-aliased-vops=0 --param max-fields-for-field-sensitive=0
- which means max 1 VOP per stmt and no SFTs. */
+/* Should be optimized, propagating &a into (*p)[i]. */
struct Foo
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-18.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-18.c
new file mode 100644
index 00000000000..392b1f6cf7d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-18.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-fre" } */
+
+struct a
+{
+ union
+ {
+ int a;
+ int b;
+ };
+ union
+ {
+ int c;
+ int d;
+ };
+};
+
+int f(struct a *c)
+{
+ int d = c->a;
+ c->c = 1;
+ return c->a + d;
+}
+
+/* We should have CSEd the load from c->a. */
+
+/* { dg-final { scan-tree-dump-times "c_.*\\\.a" 1 "fre" } } */
+/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-19.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-19.c
new file mode 100644
index 00000000000..688fe86403e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-19.c
@@ -0,0 +1,31 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-fre" } */
+
+struct a
+{
+ union
+ {
+ int a;
+ int b;
+ };
+ union
+ {
+ int c;
+ int d;
+ };
+ int e;
+};
+
+int f(struct a *c)
+{
+ int d;
+ c->e = 2;
+ d = c->a;
+ c->c = 1;
+ return c->a + d;
+}
+
+/* We should have CSEd the load from c->a. */
+
+/* { dg-final { scan-tree-dump-times "c_.*\\\.a" 1 "fre" } } */
+/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-20.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-20.c
new file mode 100644
index 00000000000..f73ad36c5b7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-20.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-optimized" } */
+
+int i, j;
+int foo(int b)
+{
+ j = 0;
+ if (b)
+ goto L2;
+L1:
+ i = i + 1;
+L2:
+ i = i + 1;
+ if (i == 1)
+ goto L1;
+ return j;
+}
+
+/* { dg-final { scan-tree-dump "return 0;" "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-23.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-23.c
new file mode 100644
index 00000000000..491836d28ef
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-23.c
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-fre" } */
+
+int f(int t, int a, int b)
+{
+ int c, d;
+ if (t)
+ {
+ c = a;
+ d = a;
+ }
+ else
+ {
+ c = b;
+ d = b;
+ }
+ return c+d;
+}
+
+/* { dg-final { scan-tree-dump-times "PHI" 1 "fre" } } */
+/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
index b88a1e58af6..91956017898 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O -fdump-tree-lim-details" } */
struct { int x; int y; } global;
void foo(int n)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-23.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-23.c
new file mode 100644
index 00000000000..88c8bb71eb9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-23.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-pre-stats" } */
+
+struct { int x; int y; } global;
+void foo(int n)
+{
+ int i;
+ for ( i=0; i<n; i++)
+ global.y += global.x*global.x;
+}
+
+/* { dg-final { scan-tree-dump "Eliminated: 2" "pre" } } */
+/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c
new file mode 100644
index 00000000000..6729e2a297e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-24.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-pre" } */
+
+void foo(int *p, double *x, int n)
+{
+ int i;
+ for (i = 0; i < n; ++i)
+ *(x + *p * i) = 0.0;
+}
+
+/* We should remove the unnecessary insertion of a phi-node and
+ _not_ end up using the phi result for replacement *p.
+ The issue here is that when PHI-translating the virtual operands
+ we assign different value-numbers to the load. Re-running VN
+ after insertion or trying to be clever and doing this on the
+ fly during PHI translation would solve this. The next copyprop
+ fixes this anyway. */
+
+/* { dg-final { scan-tree-dump-not "= prephitmp" "pre" { xfail *-*-* } } } */
+/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-25.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-25.c
new file mode 100644
index 00000000000..32b068275c1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-25.c
@@ -0,0 +1,23 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-pre-stats" } */
+
+struct X { int i; };
+
+int foo (int x)
+{
+ struct X a;
+ struct X b;
+ struct X *p;
+ a.i = 1;
+ b.i = 2;
+ if (x)
+ p = &a;
+ else
+ p = &b;
+ return p->i;
+}
+
+/* We should eliminate the load from p for a PHI node with values 1 and 2. */
+
+/* { dg-final { scan-tree-dump "Eliminated: 1" "pre" } } */
+/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-1.c
index 263124b646e..65cd83d7cde 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-1.c
@@ -17,5 +17,5 @@ void vnum_test8(int *data)
}
}
/* We should eliminate m - n, and set n = n + k into n = m. */
-/* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "fre"} } */
+/* { dg-final { scan-tree-dump-times "Eliminated: 3" 1 "fre"} } */
/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-2.c
index 2c73a678b78..cc3661cc6d7 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-2.c
@@ -21,5 +21,5 @@ int vnum_test8(int *data)
}
/* We should eliminate m - n, and set n = n + k into n = m, and
set p to 0 */
-/* { dg-final { scan-tree-dump-times "Eliminated: 3" 1 "fre"} } */
+/* { dg-final { scan-tree-dump-times "Eliminated: 4" 1 "fre"} } */
/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c
index 7caf4eec6f8..27ccda5264a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sccvn-4.c
@@ -23,5 +23,5 @@ int vnum_test8(int *data)
}
/* We should eliminate m - n, n + k, set data[5] = 0, eliminate the
address arithmetic for data[5], and set p = 0.
-/* { dg-final { scan-tree-dump-times "Eliminated: 5" 1 "fre"} } */
+/* { dg-final { scan-tree-dump-times "Eliminated: 6" 1 "fre"} } */
/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc/testsuite/gcc.dg/uninit-B.c b/gcc/testsuite/gcc.dg/uninit-B.c
index adb1461d951..f03dd701853 100644
--- a/gcc/testsuite/gcc.dg/uninit-B.c
+++ b/gcc/testsuite/gcc.dg/uninit-B.c
@@ -9,7 +9,7 @@ void
baz (void)
{
int i;
- if (i) /* { dg-warning "is used uninitialized" "uninit i warning" } */
+ if (i) /* { dg-warning "is used uninitialized" "uninit i warning" { xfail *-*-* } } */
bar (i);
foo (&i);
}
diff --git a/gcc/testsuite/gcc.dg/uninit-pr19430.c b/gcc/testsuite/gcc.dg/uninit-pr19430.c
index ecf9c009627..53810c553e1 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr19430.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr19430.c
@@ -29,7 +29,7 @@ void frob(int *pi);
int main(void)
{
int i;
- printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" } */
+ printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" "" { xfail *-*-* } } */
frob(&i);
return 0;
@@ -38,6 +38,6 @@ int main(void)
void foo3(int*);
void bar3(void) {
int x;
- if(x) /* { dg-warning "'x' is used uninitialized in this function" "uninitialized" } */
+ if(x) /* { dg-warning "'x' is used uninitialized in this function" "uninitialized" { xfail *-*-* } } */
foo3(&x);
}
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
index b64427f6d0b..d9bb114d416 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
@@ -28,7 +28,8 @@ main1 (float *pa)
float pb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
float pc[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- /* Not vectorizable: pa may alias pb and/or pc, since their addresses escape. */
+ /* Vectorizable: pa may not alias pb and/or pc, even though their
+ addresses escape. &pa would need to escape to point to escaped memory. */
for (i = 0; i < N; i++)
{
pa[i] = pb[i] * pc[i];
@@ -74,6 +75,6 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target vect_no_align } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
index 6c336754159..f61dff6e341 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c
@@ -58,5 +58,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
index 02926b0f577..fe04694f657 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c
@@ -59,5 +59,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
index 8d630b89a02..b7ef4b43017 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
@@ -59,5 +59,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
index 61cfec2bc80..39491a882e5 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
@@ -61,5 +61,5 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */