]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/29879 (ICE: verify_flow_info: loop_father but no loops)
authorAndrew Pinski <pinskia@gmail.com>
Mon, 20 Nov 2006 04:51:47 +0000 (20:51 -0800)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Mon, 20 Nov 2006 04:51:47 +0000 (20:51 -0800)
2006-11-19  Andrew Pinski  <pinskia@gmail.com>

        PR rtl-opt/29879
        * fwprop.c (loops): Remove.
        (forward_propagate_into): Use current_loops instead of
        loops.
        (fwprop_init): Call loop_optimizer_init instead of
        flow_loops_find.
        (fwprop_done): Call loop_optimizer_finalize instead of
        flow_loops_free.
        (fwprop): Use current_loops instead of loo

From-SVN: r119010

gcc/ChangeLog
gcc/fwprop.c

index 4496ea2f6d7a6a2126b674250ed7e2869ca8f9fa..9742a6c0c2bad4b489c1c1c0cf5442c165d85b11 100644 (file)
@@ -1,3 +1,15 @@
+2006-11-19  Andrew Pinski  <pinskia@gmail.com>
+
+       PR rtl-opt/29879
+       * fwprop.c (loops): Remove.
+       (forward_propagate_into): Use current_loops instead of
+       loops.
+       (fwprop_init): Call loop_optimizer_init instead of
+       flow_loops_find.
+       (fwprop_done): Call loop_optimizer_finalize instead of
+       flow_loops_free.
+       (fwprop): Use current_loops instead of loops.
+
 2006-11-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
        PR c++/8586
index fb601e1a4f00367b6fb7e160af35b5c768bbfb30..9dbf4749e2efe26ca5b2eda7a0f217ac7c2e5a86 100644 (file)
@@ -104,7 +104,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
    where the first two insns are now dead.  */
 
 
-static struct loops loops;
 static struct df *df;
 static int num_changes;
 
@@ -859,7 +858,7 @@ forward_propagate_into (struct df_ref *use)
 
   /* Do not propagate loop invariant definitions inside the loop if
      we are going to unroll.  */
-  if (loops.num > 0
+  if (current_loops
       && DF_REF_BB (def)->loop_father != DF_REF_BB (use)->loop_father)
     return;
 
@@ -896,7 +895,7 @@ fwprop_init (void)
      before df_analyze, because flow_loops_find may introduce new jump
      insns (sadly) if we are not working in cfglayout mode.  */
   if (flag_rerun_cse_after_loop && (flag_unroll_loops || flag_peel_loops))
-    flow_loops_find (&loops);
+    loop_optimizer_init (0);
 
   /* Now set up the dataflow problem (we only want use-def chains) and
      put the dataflow solver to work.  */
@@ -912,10 +911,7 @@ fwprop_done (void)
   df_finish (df);
 
   if (flag_rerun_cse_after_loop && (flag_unroll_loops || flag_peel_loops))
-    {
-      flow_loops_free (&loops);
-      loops.num = 0;
-    }
+    loop_optimizer_finalize ();
 
   free_dominance_info (CDI_DOMINATORS);
   cleanup_cfg (0);
@@ -955,7 +951,7 @@ fwprop (void)
     {
       struct df_ref *use = DF_USES_GET (df, i);
       if (use)
-       if (loops.num == 0
+       if (!current_loops 
            || DF_REF_TYPE (use) == DF_REF_REG_USE
            || DF_REF_BB (use)->loop_father == NULL)
          forward_propagate_into (use);