* gcc.dg/tree-ssa/
20050314-1.c: Dump and cleanup lim1 pass only.
* gcc.dg/tree-ssa/pr23109.c: Ditto.
* gcc.dg/tree-ssa/loop-7.c: Ditto.
* gcc.dg/tree-ssa/loop-32.c: Ditto.
* gcc.dg/tree-ssa/loop-33.c: Ditto.
* gcc.dg/tree-ssa/loop-34.c: Ditto.
* gcc.dg/tree-ssa/loop-35.c: Ditto.
* gcc.dg/tree-ssa/restrict-3.c: Ditto.
* gcc.dg/tree-ssa/ssa-lim-2.c: Ditto.
* gcc.dg/tree-ssa/ssa-lim-1.c: Ditto.
* gcc.dg/tree-ssa/ssa-lim-3.c: Ditto.
* gcc.dg/tree-ssa/ssa-lim-6.c: Ditto.
* gcc.dg/tree-ssa/structopt-1.c: Ditto.
* g++.dg/tree-ssa/pr33615.C: Ditto.
* g++.dg/tree-ssa/restrict1.C: Ditto.
* c-c++-common/restrict-2.c: Ditto.
* gfortran.dg/pr32921.f: Ditto.
* gcc.dg/tree-ssa/ssa-dse-10.c: Dump and cleanup dse1 pass only.
* gcc.dg/fold-compare-2.c: Dump and cleanup vrp1 pass only.
* gcc.dg/tree-ssa/vrp47.c: Ditto.
* gcc.dg/tree-ssa/pr25501.c: Dump and cleanup mergephi1 pass only.
* gcc.dg/tree-ssa/pr15349.c: Dump and cleanup mergephi2 pass only.
* gcc.dg/tree-ssa/tailrecursion-1.c: Dump and cleanup tailr1 pass only.
* gcc.dg/tree-ssa/tailrecursion-2.c: Ditto.
* gcc.dg/tree-ssa/tailrecursion-3.c: Ditto.
* gcc.dg/tree-ssa/tailrecursion-4.c: Ditto.
* gcc.dg/tree-ssa/tailrecursion-6.c: Ditto.
From-SVN: r176978
+2011-07-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/tree-ssa/20050314-1.c: Dump and cleanup lim1 pass only.
+ * gcc.dg/tree-ssa/pr23109.c: Ditto.
+ * gcc.dg/tree-ssa/loop-7.c: Ditto.
+ * gcc.dg/tree-ssa/loop-32.c: Ditto.
+ * gcc.dg/tree-ssa/loop-33.c: Ditto.
+ * gcc.dg/tree-ssa/loop-34.c: Ditto.
+ * gcc.dg/tree-ssa/loop-35.c: Ditto.
+ * gcc.dg/tree-ssa/restrict-3.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-lim-2.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-lim-1.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-lim-3.c: Ditto.
+ * gcc.dg/tree-ssa/ssa-lim-6.c: Ditto.
+ * gcc.dg/tree-ssa/structopt-1.c: Ditto.
+ * g++.dg/tree-ssa/pr33615.C: Ditto.
+ * g++.dg/tree-ssa/restrict1.C: Ditto.
+ * c-c++-common/restrict-2.c: Ditto.
+ * gfortran.dg/pr32921.f: Ditto.
+ * gcc.dg/tree-ssa/ssa-dse-10.c: Dump and cleanup dse1 pass only.
+ * gcc.dg/fold-compare-2.c: Dump and cleanup vrp1 pass only.
+ * gcc.dg/tree-ssa/vrp47.c: Ditto.
+ * gcc.dg/tree-ssa/pr25501.c: Dump and cleanup mergephi1 pass only.
+ * gcc.dg/tree-ssa/pr15349.c: Dump and cleanup mergephi2 pass only.
+ * gcc.dg/tree-ssa/tailrecursion-1.c: Dump and cleanup tailr1 pass only.
+ * gcc.dg/tree-ssa/tailrecursion-2.c: Ditto.
+ * gcc.dg/tree-ssa/tailrecursion-3.c: Ditto.
+ * gcc.dg/tree-ssa/tailrecursion-4.c: Ditto.
+ * gcc.dg/tree-ssa/tailrecursion-6.c: Ditto.
+
2011-07-31 Uros Bizjak <ubizjak@gmail.com>
* lib/gcc-dg.exp (cleanup-dump): Also remove .exe. and
/* { dg-do compile } */
-/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim-details" } */
+/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim1-details" } */
void foo (float * __restrict__ a, float * __restrict__ b, int n, int j)
{
/* We should move the RHS of the store out of the loop. */
/* { dg-final { scan-tree-dump-times "Moving statement" 11 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O -fnon-call-exceptions -fdump-tree-lim-details -w" } */
+/* { dg-options "-O -fnon-call-exceptions -fdump-tree-lim1-details -w" } */
extern volatile int y;
// The expression 1.0 / 0.0 should not be treated as a loop invariant
// if it may throw an exception.
// { dg-final { scan-tree-dump-times "invariant up to" 0 "lim1" } }
-// { dg-final { cleanup-tree-dump "lim\[1-2\]" } }
+// { dg-final { cleanup-tree-dump "lim1" } }
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
struct Foo
{
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-vrp" } */
+/* { dg-options "-O2 -fdump-tree-vrp1" } */
extern void abort (void);
}
/* { dg-final { scan-tree-dump-times "Removing basic block" 2 "vrp1" } } */
-/* { dg-final { cleanup-tree-dump "vrp\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "vrp1" } } */
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-lim-details" } */
+/* { dg-options "-O1 -fdump-tree-lim1-details" } */
float a[100];
cannot read nor write the memory. */
/* { dg-final { scan-tree-dump-times "Moving statement" 1 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x;
int a[100];
}
/* { dg-final { scan-tree-dump-times "Executing store motion of" 3 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x;
int a[100];
}
/* { dg-final { scan-tree-dump-times "Executing store motion of" 4 "lim1" { xfail lp64 } } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int r[6];
/* { dg-final { scan-tree-dump-times "Executing store motion of r" 6 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x;
int a[100];
/* long index not hoisted for avr target PR 36561 */
/* { dg-final { scan-tree-dump-times "Executing store motion of" 8 "lim1" { xfail { "avr-*-*" } } } } */
/* { dg-final { scan-tree-dump-times "Executing store motion of" 6 "lim1" { target { "avr-*-*" } } } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* PR tree-optimization/19828 */
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-lim-details" } */
+/* { dg-options "-O1 -fdump-tree-lim1-details" } */
int cst_fun1 (int) __attribute__((__const__));
int cst_fun2 (int) __attribute__((__const__));
with k = 0 may be invalid. */
/* { dg-final { scan-tree-dump-times "Moving statement" 2 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* PR 15349. Merge two PHI nodes. */
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-mergephi" } */
+/* { dg-options "-O1 -fdump-tree-mergephi2" } */
int
foo (int a, int b)
}
/* { dg-final { scan-tree-dump-times "PHI" 1 "mergephi2"} } */
-/* { dg-final { cleanup-tree-dump "mergephi\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "mergephi2" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -funsafe-math-optimizations -ftrapping-math -fdump-tree-recip -fdump-tree-lim" } */
+/* { dg-options "-O2 -funsafe-math-optimizations -ftrapping-math -fdump-tree-recip -fdump-tree-lim1" } */
/* { dg-warning "-fassociative-math disabled" "" { target *-*-* } 1 } */
double F[2] = { 0., 0. }, e = 0.;
/* { dg-final { scan-tree-dump-not "reciptmp" "lim1" } } */
/* { dg-final { scan-tree-dump-not "reciptmp" "recip" } } */
/* { dg-final { cleanup-tree-dump "recip" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
actually merged, causing a segfault later. Make sure that does not
happen any more. */
-/* { dg-options "-O1 -fdump-tree-mergephi" } */
+/* { dg-options "-O1 -fdump-tree-mergephi1" } */
int
foo (int a)
}
/* { dg-final { scan-tree-dump-times "Removing basic block" 0 "mergephi1"} } */
-/* { dg-final { cleanup-tree-dump "mergephi\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "mergephi1" } } */
/* { dg-do compile } */
-/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim-details" } */
+/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim1-details" } */
void f(int * __restrict__ r,
int a[__restrict__ 16][16],
/* We should apply store motion to the store to *r. */
/* { dg-final { scan-tree-dump "Executing store motion of \\\*r" "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O -w -fdump-tree-dse-vops" } */
+/* { dg-options "-O -w -fdump-tree-dse1-vops" } */
__extension__ typedef __SIZE_TYPE__ size_t;
typedef struct _IO_FILE FILE;
}
/* { dg-final { scan-tree-dump-times " xxxinfo = {}" 1 "dse1"} } */
-/* { dg-final { cleanup-tree-dump "dse\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "dse1" } } */
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim" } */
+/* { dg-options "-O -fdump-tree-lim1" } */
/* This is a variant that does cause fold to place a cast to
int before testing bit 1. */
}
/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim" } */
+/* { dg-options "-O -fdump-tree-lim1" } */
/* This is a variant that doesn't cause fold to place a cast to
int before testing bit 1. */
}
/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim-details" } */
+/* { dg-options "-O -fdump-tree-lim1-details" } */
struct { int x; int y; } global;
void foo(int n)
/* { dg-final { scan-tree-dump "Executing store motion of global.y" "lim1" } } */
/* { dg-final { scan-tree-dump "Moving statement.*global.x.*out of loop 1" "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
double a[16][64], y[64], x[16];
void foo(void)
}
/* { dg-final { scan-tree-dump "Executing store motion of y" "lim1" } } */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim-details" } */
+/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x; int y;
struct { int x; int y; } global;
int foo() {
/* { dg-final { scan-tree-dump-times "Executing store motion of global.y" 1 "lim1" } } */
/* XXX: We should also check for the load motion of global.x, but there is no easy way to do this. */
-/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "lim1" } } */
/* { dg-do compile } */
-/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr1-details" } */
int
t(int a)
{
return 0;
}
/* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr1"} } */
-/* { dg-final { cleanup-tree-dump "tailr\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "tailr1" } } */
/* { dg-do compile } */
-/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr1-details" } */
int
t(char *a)
{
return 0;
}
/* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr1"} } */
-/* { dg-final { cleanup-tree-dump "tailr\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "tailr1" } } */
/* { dg-do compile } */
-/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr1-details" } */
int
t(int a)
{
return r;
}
/* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr1"} } */
-/* { dg-final { cleanup-tree-dump "tailr\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "tailr1" } } */
/* { dg-do compile } */
-/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr1-details" } */
int
t(int a)
{
return r;
}
/* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 2 "tailr1"} } */
-/* { dg-final { cleanup-tree-dump "tailr\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "tailr1" } } */
/* { dg-do compile } */
-/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr-details" } */
+/* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-tailr1-details" } */
int
foo (int a)
{
return 0;
}
/* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr1"} } */
-/* { dg-final { cleanup-tree-dump "tailr\[1-2\]" } } */
+/* { dg-final { cleanup-tree-dump "tailr1" } } */
jumps when evaluating an && condition. VRP is not able to optimize
this. */
/* { dg-do compile { target { ! "mips*-*-* s390*-*-* avr-*-* mn10300-*-*" } } } */
-/* { dg-options "-O2 -fdump-tree-vrp -fdump-tree-dom" } */
-/* { dg-options "-O2 -fdump-tree-vrp -fdump-tree-dom -march=i586" { target { i?86-*-* && ilp32 } } } */
+/* { dg-options "-O2 -fdump-tree-vrp1 -fdump-tree-dom1" } */
+/* { dg-options "-O2 -fdump-tree-vrp1 -fdump-tree-dom1 -march=i586" { target { i?86-*-* && ilp32 } } } */
int h(int x, int y)
{
/* { dg-final { scan-tree-dump-times "x\[^ \]* \[|\] y" 1 "vrp1" } } */
/* { dg-final { scan-tree-dump-times "x\[^ \]* \\^ 1" 1 "vrp1" } } */
-/* { dg-final { cleanup-tree-dump "vrp\[0-9\]" } } */
-/* { dg-final { cleanup-tree-dump "dom\[0-9\]" } } */
+/* { dg-final { cleanup-tree-dump "vrp1" } } */
+/* { dg-final { cleanup-tree-dump "dom1" } } */
! { dg-do compile }
-! { dg-options "-O2 -fdump-tree-lim" }
+! { dg-options "-O2 -fdump-tree-lim1" }
! gfortran -c -m32 -O2 -S junk.f
!
MODULE LES3D_DATA
RETURN
END
! { dg-final { scan-tree-dump-times "stride" 4 "lim1" } }
-! { dg-final { cleanup-tree-dump "lim\[1-2\]" } }
+! { dg-final { cleanup-tree-dump "lim1" } }
! { dg-final { cleanup-modules "LES3D_DATA" } }