diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ec85f097c15..0e0267a845d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-04-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/60785 + * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat + default defs properly. + 2014-04-08 Nathan Sidwell <nathan@codesourcery.com> * doc/invoke (Wnon-virtual-dtor): Update to match implementation. diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index d4a1bb2df9a..28447e4b6fe 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -2250,6 +2250,7 @@ rewrite_phi_out_of_ssa (scop_p scop, gimple_stmt_iterator *psi) /* Avoid the insertion of code in the loop latch to please the pattern matching of the vectorizer. */ if (TREE_CODE (arg) == SSA_NAME + && !SSA_NAME_IS_DEFAULT_DEF (arg) && e->src == bb->loop_father->latch) insert_out_of_ssa_copy (scop, zero_dim_array, arg, SSA_NAME_DEF_STMT (arg)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 526686b87f2..bfc27226e98 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-04-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/60785 + * gcc.dg/graphite/pr60785.c: New testcase. + 2014-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/60602 diff --git a/gcc/testsuite/gcc.dg/graphite/pr60785.c b/gcc/testsuite/gcc.dg/graphite/pr60785.c new file mode 100644 index 00000000000..87c1c685b0a --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr60785.c @@ -0,0 +1,27 @@ +/* { dg-options "-O2 -floop-interchange" } */ + +static int +aqc(void) +{ + return 1; +} + +void +gkd(void) +{ + int wu0; + static int b1y; + static int gw2; + static int *ydw = &gw2; + static int **m3l = &ydw; + **m3l = 0; + for (b1y = 0; b1y < 1; ++b1y) + { + int *cpj = &gw2; + if (*ydw |= aqc()) + { + *cpj = 0; + *ydw = wu0; + } + } +}