re PR tree-optimization/57000 (ICE with -Ofast and -frounding-math)
authorRichard Biener <rguenther@suse.de>
Fri, 19 Apr 2013 10:15:15 +0000 (10:15 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 19 Apr 2013 10:15:15 +0000 (10:15 +0000)
2013-04-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57000
* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.

* gcc.dg/tree-ssa/reassoc-27.c: New testcase.

From-SVN: r198087

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

index 77b8e2b9bb3040d825c7fd8acf18e5d6fcb1f821..b8c89cfc60d2276795176749426b2f8b8e06e0f4 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-19  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/57000
+       * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
+
 2013-04-19  Terry Guo  <terry.guo@arm.com>
 
        * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
index 930fb254e01c1c16ac9f0ade74befd88519e98a5..159848624055dccfd84459434d40856189f54c9c 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-19  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/57000
+       * gcc.dg/tree-ssa/reassoc-27.c: New testcase.
+
 2013-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
            Mikael Morin  <mikael@gcc.gnu.org>
 
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c
new file mode 100644 (file)
index 0000000..f406beb
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O -ffast-math -frounding-math -fdump-tree-optimized" } */
+
+double baz (double foo, double bar)
+{
+  return foo * foo * foo * foo * bar * bar * bar * bar;
+}
+
+/* We should re-associate this as (foo * bar)**3.  */
+/* { dg-final { scan-tree-dump-times " \\\* " 3 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
index 534c51cdb96e00fa790343638f1fb7dda3fe9e35..0089dc515dec03b20da974a8e579476bd1f94bbb 100644 (file)
@@ -4293,6 +4293,7 @@ struct gimple_opt_pass pass_reassoc =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_verify_ssa
-    | TODO_verify_flow                 /* todo_flags_finish */
+  | TODO_update_ssa_only_virtuals
+  | TODO_verify_flow                   /* todo_flags_finish */
  }
 };