aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr80359.c12
-rw-r--r--gcc/tree-ssa-dse.c3
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d59a0e9..1f98b88 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,11 @@
2017-04-12 Richard Biener <rguenther@suse.de>
+ Jeff Law <law@redhat.com>
+
+ PR tree-optimization/80359
+ * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
+ trim stores to TARGET_MEM_REFs.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/79390
* gimple-ssa-split-paths.c (is_feasible_trace): Restrict
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 115e123..bc2424a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,10 @@
2017-04-12 Richard Biener <rguenther@suse.de>
+ Jeff Law <law@redhat.com>
+
+ PR tree-optimization/80359
+ * gcc.dg/torture/pr80359.c: New testcase.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
Bernd Edlinger <bernd.edlinger@hotmail.de>
PR middle-end/79671
diff --git a/gcc/testsuite/gcc.dg/torture/pr80359.c b/gcc/testsuite/gcc.dg/torture/pr80359.c
new file mode 100644
index 0000000..89b3d53
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr80359.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+
+void FFT(_Complex *X, int length)
+{
+ unsigned i, j;
+ for (; i < length; i++)
+ {
+ X[i] = 0;
+ for (j = 0; j < length; j++)
+ X[i] = X[i] / length;
+ }
+}
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 53feaf3..90230ab 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -451,7 +451,8 @@ maybe_trim_memstar_call (ao_ref *ref, sbitmap live, gimple *stmt)
static void
maybe_trim_partially_dead_store (ao_ref *ref, sbitmap live, gimple *stmt)
{
- if (is_gimple_assign (stmt))
+ if (is_gimple_assign (stmt)
+ && TREE_CODE (gimple_assign_lhs (stmt)) != TARGET_MEM_REF)
{
switch (gimple_assign_rhs_code (stmt))
{