]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/56321 (ICE:segfault in midend for -funsafe-math-optimizations...
authorRichard Biener <rguenther@suse.de>
Mon, 18 Feb 2013 12:11:47 +0000 (12:11 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 18 Feb 2013 12:11:47 +0000 (12:11 +0000)
2013-02-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56321
* tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
order SSA name release and virtual operand unlinking.

* gcc.dg/torture/pr56321.c: New testcase.

From-SVN: r196117

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr56321.c [new file with mode: 0644]
gcc/tree-ssa-reassoc.c

index dbf8a17332818f5149bfc25c76d2cba84f652e17..044ca29cfaa9bdb8edccd5dfafe02c5a3264dc2b 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-18  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/56321
+       * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
+       order SSA name release and virtual operand unlinking.
+
 2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
 
        * config/microblaze/microblaze.md (save_stack_block): Define.
index 2377db0a2e88e44a431b0fb76bb6ca270036ae46..ac25824326e176f1ab57fe8cdcb54ef5ecca24ea 100644 (file)
@@ -1,3 +1,8 @@
+2013-02-18  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/56321
+       * gcc.dg/torture/pr56321.c: New testcase.
+
 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
 
        * gcc.dg/20020312-2.c: Define MicroBlaze PIC register
diff --git a/gcc/testsuite/gcc.dg/torture/pr56321.c b/gcc/testsuite/gcc.dg/torture/pr56321.c
new file mode 100644 (file)
index 0000000..a8c4634
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-ffast-math" } */
+
+void foo(int n, int nreps, float tdgefa, float tdgesl)
+{
+  float kflops,ops;
+  ops=((2.0*n*n*n)/3.0+2.0*n*n);
+  kflops=2.*nreps*ops/(1000.*(tdgefa+tdgesl));
+
+  __builtin_printf ("%f\n", kflops);
+}
index eb19f38ee63235a05378203eb148bc4f88a0668b..f53526b56d39661eec80ba5b4f569dfa8f47a344 100644 (file)
@@ -1062,11 +1062,9 @@ propagate_op_to_single_use (tree op, gimple stmt, tree *def)
   if (TREE_CODE (op) != SSA_NAME)
     update_stmt (use_stmt);
   gsi = gsi_for_stmt (stmt);
+  unlink_stmt_vdef (stmt);
   gsi_remove (&gsi, true);
   release_defs (stmt);
-
-  if (is_gimple_call (stmt))
-    unlink_stmt_vdef (stmt);
 }
 
 /* Walks the linear chain with result *DEF searching for an operation
This page took 0.094505 seconds and 5 git commands to generate.