aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/autopar/pr57185.c29
-rw-r--r--gcc/tree-parloops.c6
4 files changed, 43 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6621de1..def2c1e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-05-06 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/57185
+ * tree-parloops.c (add_field_for_reduction): Handle anonymous
+ SSA names properly.
+
2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a3b6da7..a7ac2db 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-06 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/57185
+ * gcc.dg/autopar/pr57185.c: New testcase.
+
2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.dg/tree-ssa/slsr-32.c: Re-enable.
diff --git a/gcc/testsuite/gcc.dg/autopar/pr57185.c b/gcc/testsuite/gcc.dg/autopar/pr57185.c
new file mode 100644
index 0000000..b465757
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/autopar/pr57185.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -ftree-parallelize-loops=2 -fipa-pta" } */
+
+int a, b;
+int *d;
+void f(void)
+{
+ int c;
+ b %= 1;
+
+ if(1 - (b < 1))
+ {
+ int *q = 0;
+
+ if(a)
+ {
+ c = 0;
+lbl:
+ for(*d; *d; ++*d)
+ if(c ? : a ? : (c = 1) ? : 0)
+ *q &= 1;
+ return;
+ }
+
+ q = (int *)1;
+ }
+ goto lbl;
+}
+
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 4a4b02b..cea6f03 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -964,9 +964,9 @@ add_field_for_reduction (reduction_info **slot, tree type)
{
struct reduction_info *const red = *slot;
- tree var = SSA_NAME_VAR (gimple_assign_lhs (red->reduc_stmt));
- tree field = build_decl (gimple_location (red->reduc_stmt),
- FIELD_DECL, DECL_NAME (var), TREE_TYPE (var));
+ tree var = gimple_assign_lhs (red->reduc_stmt);
+ tree field = build_decl (gimple_location (red->reduc_stmt), FIELD_DECL,
+ SSA_NAME_IDENTIFIER (var), TREE_TYPE (var));
insert_field_into_struct (type, field);