20050314-1.c: Dump and cleanup lim1 pass only.

* 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
This commit is contained in:
Uros Bizjak 2011-07-31 19:33:29 +02:00 committed by Uros Bizjak
parent 360dffa36f
commit ba4a11ba52
28 changed files with 85 additions and 55 deletions

View File

@ -1,3 +1,33 @@
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

View File

@ -1,5 +1,5 @@
/* { 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)
{
@ -11,4 +11,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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;
@ -17,4 +17,4 @@ foo (double a, int x)
// 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" } }

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-lim-details" } */
/* { dg-options "-O2 -fdump-tree-lim1-details" } */
struct Foo
{

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp" } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */
extern void abort (void);
@ -16,5 +16,5 @@ main(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" } } */

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-lim-details" } */
/* { dg-options "-O1 -fdump-tree-lim1-details" } */
float a[100];
@ -18,4 +18,4 @@ void xxx (void)
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" } } */

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-lim-details" } */
/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x;
int a[100];
@ -43,4 +43,4 @@ void test3(struct a *A)
}
/* { 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" } } */

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-lim-details" } */
/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x;
int a[100];
@ -37,4 +37,4 @@ void test5(struct a *A, unsigned b)
}
/* { 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" } } */

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-lim-details" } */
/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int r[6];
@ -18,4 +18,4 @@ void f (int n)
/* { 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" } } */

View File

@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-lim-details" } */
/* { dg-options "-O2 -fdump-tree-lim1-details" } */
int x;
int a[100];
@ -62,4 +62,4 @@ void test4(struct a *A, unsigned long b)
/* 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" } } */

View File

@ -1,6 +1,6 @@
/* 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__));
@ -32,4 +32,4 @@ int xxx (void)
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" } } */

View File

@ -1,6 +1,6 @@
/* 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)
@ -23,4 +23,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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.;
@ -32,5 +32,5 @@ int main()
/* { 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" } } */

View File

@ -3,7 +3,7 @@
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)
@ -33,4 +33,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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],
@ -15,4 +15,4 @@ void f(int * __restrict__ r,
/* 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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;
@ -1520,4 +1520,4 @@ void func_encode(void)
}
/* { dg-final { scan-tree-dump-times " xxxinfo = {}" 1 "dse1"} } */
/* { dg-final { cleanup-tree-dump "dse\[1-2\]" } } */
/* { dg-final { cleanup-tree-dump "dse1" } } */

View File

@ -1,5 +1,5 @@
/* { 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. */
@ -19,4 +19,4 @@ quantum_toffoli (int control1, int control2, int target,
}
/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim1" } } */
/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
/* { dg-final { cleanup-tree-dump "lim1" } } */

View File

@ -1,5 +1,5 @@
/* { 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. */
@ -19,4 +19,4 @@ int size)
}
/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim1" } } */
/* { dg-final { cleanup-tree-dump "lim\[1-2\]" } } */
/* { dg-final { cleanup-tree-dump "lim1" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
@ -11,4 +11,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
@ -11,4 +11,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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() {
@ -12,4 +12,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
{
@ -9,4 +9,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
{
@ -10,4 +10,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
{
@ -13,4 +13,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
{
@ -15,4 +15,4 @@ 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" } } */

View File

@ -1,5 +1,5 @@
/* { 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)
{
@ -9,4 +9,4 @@ 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" } } */

View File

@ -4,8 +4,8 @@
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)
{
@ -44,5 +44,5 @@ int f(int x)
/* { 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" } } */

View File

@ -1,5 +1,5 @@
! { 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
@ -46,5 +46,5 @@
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" } }