re PR tree-optimization/70729 (Loop marked with omp simd pragma is not vectorized)
2016-05-19 Richard Biener <rguenther@suse.de> PR tree-optimization/70729 * passes.def: Move LIM pass before PRE. Remove no longer required copyprop and move first DCE out of the loop pipeline. * gcc.dg/autopar/outer-6.c: Adjust to avoid redundant store. * gcc.dg/graphite/scop-18.c: Likewise. * gcc.dg/pr41783.c: Disable LIM. * gcc.dg/tree-ssa/loadpre10.c: Likewise. * gcc.dg/tree-ssa/loadpre23.c: Likewise. * gcc.dg/tree-ssa/loadpre24.c: Likewise. * gcc.dg/tree-ssa/loadpre25.c: Likewise. * gcc.dg/tree-ssa/loadpre4.c: Likewise. * gcc.dg/tree-ssa/loadpre8.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-16.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-18.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-20.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-3.c: Likewise. * gfortran.dg/pr42108.f90: Likewise. From-SVN: r236440
This commit is contained in:
parent
70f25790a1
commit
43c0068e60
17 changed files with 41 additions and 18 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-05-19 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/70729
|
||||
* passes.def: Move LIM pass before PRE. Remove no longer
|
||||
required copyprop and move first DCE out of the loop pipeline.
|
||||
|
||||
2016-05-18 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
PR driver/69265
|
||||
|
|
|
@ -243,12 +243,14 @@ along with GCC; see the file COPYING3. If not see
|
|||
NEXT_PASS (pass_cse_sincos);
|
||||
NEXT_PASS (pass_optimize_bswap);
|
||||
NEXT_PASS (pass_laddress);
|
||||
NEXT_PASS (pass_lim);
|
||||
NEXT_PASS (pass_split_crit_edges);
|
||||
NEXT_PASS (pass_pre);
|
||||
NEXT_PASS (pass_sink_code);
|
||||
NEXT_PASS (pass_sancov);
|
||||
NEXT_PASS (pass_asan);
|
||||
NEXT_PASS (pass_tsan);
|
||||
NEXT_PASS (pass_dce);
|
||||
/* Pass group that runs when 1) enabled, 2) there are loops
|
||||
in the function. Make sure to run pass_fix_loops before
|
||||
to discover/remove loops before running the gate function
|
||||
|
@ -257,9 +259,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
NEXT_PASS (pass_tree_loop);
|
||||
PUSH_INSERT_PASSES_WITHIN (pass_tree_loop)
|
||||
NEXT_PASS (pass_tree_loop_init);
|
||||
NEXT_PASS (pass_lim);
|
||||
NEXT_PASS (pass_copy_prop);
|
||||
NEXT_PASS (pass_dce);
|
||||
NEXT_PASS (pass_tree_unswitch);
|
||||
NEXT_PASS (pass_scev_cprop);
|
||||
NEXT_PASS (pass_record_bounds);
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
2016-05-19 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/70729
|
||||
* gcc.dg/autopar/outer-6.c: Adjust to avoid redundant store.
|
||||
* gcc.dg/graphite/scop-18.c: Likewise.
|
||||
* gcc.dg/pr41783.c: Disable LIM.
|
||||
* gcc.dg/tree-ssa/loadpre10.c: Likewise.
|
||||
* gcc.dg/tree-ssa/loadpre23.c: Likewise.
|
||||
* gcc.dg/tree-ssa/loadpre24.c: Likewise.
|
||||
* gcc.dg/tree-ssa/loadpre25.c: Likewise.
|
||||
* gcc.dg/tree-ssa/loadpre4.c: Likewise.
|
||||
* gcc.dg/tree-ssa/loadpre8.c: Likewise.
|
||||
* gcc.dg/tree-ssa/ssa-pre-16.c: Likewise.
|
||||
* gcc.dg/tree-ssa/ssa-pre-18.c: Likewise.
|
||||
* gcc.dg/tree-ssa/ssa-pre-20.c: Likewise.
|
||||
* gcc.dg/tree-ssa/ssa-pre-3.c: Likewise.
|
||||
* gfortran.dg/pr42108.f90: Likewise.
|
||||
|
||||
2016-05-18 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
PR driver/69265
|
||||
|
|
|
@ -24,7 +24,7 @@ void parloop (int N)
|
|||
for (i = 0; i < N; i++)
|
||||
{
|
||||
for (j = 0; j < N; j++)
|
||||
y[i]=x[i][j];
|
||||
y[i]+=x[i][j];
|
||||
sum += y[i];
|
||||
}
|
||||
g_sum = sum;
|
||||
|
|
|
@ -13,13 +13,13 @@ void test (void)
|
|||
for (i = 0; i < 24; i++)
|
||||
for (j = 0; j < 24; j++)
|
||||
for (k = 0; k < 24; k++)
|
||||
A[i][j] = B[i][k] * C[k][j];
|
||||
A[i][j] += B[i][k] * C[k][j];
|
||||
|
||||
/* These loops should still be strip mined. */
|
||||
for (i = 0; i < 1000; i++)
|
||||
for (j = 0; j < 1000; j++)
|
||||
for (k = 0; k < 1000; k++)
|
||||
A[i][j] = B[i][k] * C[k][j];
|
||||
A[i][j] += B[i][k] * C[k][j];
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite"} } */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3 -fdump-tree-pre" } */
|
||||
/* { dg-options "-O3 -fdump-tree-pre -fno-tree-loop-im" } */
|
||||
int db[100];
|
||||
int a_global_var, fact;
|
||||
int main()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
struct tree_common
|
||||
{
|
||||
int code;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
|
||||
struct {
|
||||
int a;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
|
||||
int a;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
struct X { int i; };
|
||||
int foo(struct X *a, int argc)
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
int main(int *a, int argc)
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -std=gnu89" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -std=gnu89 -fno-tree-loop-im" } */
|
||||
typedef union tree_node *tree;
|
||||
struct tree_common
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -std=c99" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -std=c99 -fno-tree-loop-im" } */
|
||||
int foo(int k, int *x)
|
||||
{
|
||||
int j=0;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-details" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-details -fno-tree-loop-im" } */
|
||||
|
||||
struct Bar { int a; int b; };
|
||||
struct Foo { int x; struct Bar y; };
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
|
||||
double pcheck;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
||||
/* { dg-options "-O2 -fdump-tree-pre-stats -fno-tree-loop-im" } */
|
||||
unsigned foo1 (unsigned a, unsigned b, unsigned j, unsigned k)
|
||||
{
|
||||
unsigned i;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-O2 -fdump-tree-fre1 -fdump-tree-pre-details" }
|
||||
! { dg-options "-O2 -fdump-tree-fre1 -fdump-tree-pre-details -fno-tree-loop-im" }
|
||||
|
||||
subroutine eval(foo1,foo2,foo3,foo4,x,n,nnd)
|
||||
implicit real*8 (a-h,o-z)
|
||||
|
|
Loading…
Add table
Reference in a new issue