]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/54565 (pass_update_address_taken before forwprop1 for vectors)
authorRichard Guenther <rguenther@suse.de>
Fri, 14 Sep 2012 12:22:27 +0000 (12:22 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 14 Sep 2012 12:22:27 +0000 (12:22 +0000)
2012-09-14  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/54565
* passes.c (init_optimization_passes): Adjust comments.
(execute_function_todo): Do not execute execute_update_addresses_taken
before processing TODO_rebuild_alias.
* tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken.

* gcc.dg/tree-ssa/ssa-ccp-17.c: Adjust.
* gcc.dg/tree-ssa/forwprop-6.c: Likewise.  Remove XFAIL.

From-SVN: r191295

gcc/ChangeLog
gcc/passes.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-17.c
gcc/tree-ssa-ccp.c

index f5da3ab6b0c3dbe2569780352322d0d35050325d..f1aedb2361aae48636defdb7618b1dcd173bd645 100644 (file)
@@ -1,3 +1,11 @@
+2012-09-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/54565
+       * passes.c (init_optimization_passes): Adjust comments.
+       (execute_function_todo): Do not execute execute_update_addresses_taken
+       before processing TODO_rebuild_alias.
+       * tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken.
+
 2012-09-14  Richard Guenther  <rguenther@suse.de>
 
        * tree-vrp.c (register_new_assert_for): Simplify for backward
index e6a4f93adfa318477cffea1c2d0040cfeccd3d8c..a47068d25b926eb72e2ea58920a078da810d2a50 100644 (file)
@@ -1297,11 +1297,11 @@ init_optimization_passes (void)
          NEXT_PASS (pass_remove_cgraph_callee_edges);
          NEXT_PASS (pass_rename_ssa_copies);
          NEXT_PASS (pass_ccp);
+         /* After CCP we rewrite no longer addressed locals into SSA
+            form if possible.  */
          NEXT_PASS (pass_forwprop);
          /* pass_build_ealias is a dummy pass that ensures that we
-            execute TODO_rebuild_alias at this point.  Re-building
-            alias information also rewrites no longer addressed
-            locals into SSA form if possible.  */
+            execute TODO_rebuild_alias at this point.  */
          NEXT_PASS (pass_build_ealias);
          NEXT_PASS (pass_sra_early);
          NEXT_PASS (pass_fre);
@@ -1371,11 +1371,11 @@ init_optimization_passes (void)
       NEXT_PASS (pass_rename_ssa_copies);
       NEXT_PASS (pass_complete_unrolli);
       NEXT_PASS (pass_ccp);
+      /* After CCP we rewrite no longer addressed locals into SSA
+        form if possible.  */
       NEXT_PASS (pass_forwprop);
       /* pass_build_alias is a dummy pass that ensures that we
-        execute TODO_rebuild_alias at this point.  Re-building
-        alias information also rewrites no longer addressed
-        locals into SSA form if possible.  */
+        execute TODO_rebuild_alias at this point.  */
       NEXT_PASS (pass_build_alias);
       NEXT_PASS (pass_return_slot);
       NEXT_PASS (pass_phiprop);
@@ -1414,6 +1414,8 @@ init_optimization_passes (void)
       NEXT_PASS (pass_object_sizes);
       NEXT_PASS (pass_strlen);
       NEXT_PASS (pass_ccp);
+      /* After CCP we rewrite no longer addressed locals into SSA
+        form if possible.  */
       NEXT_PASS (pass_copy_prop);
       NEXT_PASS (pass_cse_sincos);
       NEXT_PASS (pass_optimize_bswap);
@@ -1773,13 +1775,10 @@ execute_function_todo (void *data)
       cfun->last_verified &= ~TODO_verify_ssa;
     }
 
-  if (flags & TODO_rebuild_alias)
-    {
-      execute_update_addresses_taken ();
-      if (flag_tree_pta)
-       compute_may_aliases ();
-    }
-  else if (optimize && (flags & TODO_update_address_taken))
+  if (flag_tree_pta && (flags & TODO_rebuild_alias))
+    compute_may_aliases ();
+
+  if (optimize && (flags & TODO_update_address_taken))
     execute_update_addresses_taken ();
 
   if (flags & TODO_remove_unused_locals)
index e27f304c65fd9357ab814a8682ed236061268e9b..e274bc348c70af4781399402d21fa5f5ea9089e7 100644 (file)
@@ -1,3 +1,9 @@
+2012-09-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/54565
+       * gcc.dg/tree-ssa/ssa-ccp-17.c: Adjust.
+       * gcc.dg/tree-ssa/forwprop-6.c: Likewise.  Remove XFAIL.
+
 2012-09-14  Ulrich Weigand  <ulrich.weigand@linaro.org>
 
        * gcc.target/arm/combine-movs.c: Add missing space.
index 54e51097e4cfb67930b59da13fbedb5374897e65..a7a4a41d876831015a61de5c0776a08c0930ce3e 100644 (file)
@@ -22,6 +22,7 @@ void f(void)
    particular situation before doing this transformation we have to
    assure that a is killed by a dominating store via type float for
    it to be valid.  Then we might as well handle the situation by
-   value-numbering, removing the load alltogether.  */
-/* { dg-final { scan-tree-dump-times "VIEW_CONVERT_EXPR" 1 "forwprop1" { xfail *-*-* } } } */
+   value-numbering, removing the load alltogether.
+   ???  We now do this after CPP re-writes a into SSA form.  */
+/* { dg-final { scan-tree-dump-times "VIEW_CONVERT_EXPR" 1 "forwprop1" } } */
 /* { dg-final { cleanup-tree-dump "forwprop1" } } */
index aece3c7cdc77a353cc424d8292cc222495f563bc..338d8a862979b861a2465734e5a49fdd17111f23 100644 (file)
@@ -26,7 +26,7 @@ int foobar(void)
   return ((const struct Foo *)p)->i;
 }
 
-/* { dg-final { scan-tree-dump "= i;" "ccp1" } } */
+/* { dg-final { scan-tree-dump "= i_.;" "ccp1" } } */
 /* { dg-final { scan-tree-dump "= f.i;" "ccp1" } } */
 /* { dg-final { scan-tree-dump "= g.i;" "ccp1" } } */
 /* { dg-final { cleanup-tree-dump "ccp1" } } */
index 830f6f334603d9c9f225ca90774c9b242b7a78ce..bf68474992682fb6c14b59a0e79f98e21cc1077a 100644 (file)
@@ -2134,6 +2134,7 @@ struct gimple_opt_pass pass_ccp =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_verify_ssa
+  | TODO_update_address_taken
   | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */
  }
 };
This page took 0.12737 seconds and 5 git commands to generate.