re PR c/91526 (Unnecessary SSE and other instructions generated when compiling in...
authorRichard Biener <rguenther@suse.de>
Mon, 26 Aug 2019 09:29:07 +0000 (09:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 26 Aug 2019 09:29:07 +0000 (09:29 +0000)
2019-08-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/91526
* passes.def: Note that after late FRE we do TODO_update_address_taken.
* tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
TODO_update_address_taken.

From-SVN: r274922

gcc/ChangeLog
gcc/passes.def
gcc/tree-ssa-sccvn.c

index f751920478298cfcd6f9c23e0732b01fb760e51b..705c993bc158eb230529f4f7fdca95adffadb651 100644 (file)
@@ -1,3 +1,10 @@
+2019-08-26  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/91526
+       * passes.def: Note that after late FRE we do TODO_update_address_taken.
+       * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
+       TODO_update_address_taken.
+
 2019-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
 
        * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
index 1a7fd144f87d366f6bb3f63fae7f588628f9fce4..fe5a411504defd658bc38e599dba78aacc6b1e1c 100644 (file)
@@ -313,6 +313,8 @@ along with GCC; see the file COPYING3.  If not see
       NEXT_PASS (pass_split_paths);
       NEXT_PASS (pass_tracer);
       NEXT_PASS (pass_fre, false /* may_iterate */);
+      /* After late FRE we rewrite no longer addressed locals into SSA
+         form if possible.  */
       NEXT_PASS (pass_thread_jumps);
       NEXT_PASS (pass_dominator, false /* may_peel_loop_headers_p */);
       NEXT_PASS (pass_strlen);
index 76cad432ea4243ce4390d74af221a29f3bf3b762..336a7c72c48789783c1d9233aa3091a8f28d0b8c 100644 (file)
@@ -7312,6 +7312,11 @@ pass_fre::execute (function *fun)
   if (iterate_p)
     loop_optimizer_finalize ();
 
+  /* For late FRE after IVOPTs and unrolling, see if we can
+     remove some TREE_ADDRESSABLE and rewrite stuff into SSA.  */
+  if (!may_iterate)
+    todo |= TODO_update_address_taken;
+
   return todo;
 }