OSDN Git Service

2009-03-26 Andrew Haley <aph@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / init-regs.c
index 118957f..791b926 100644 (file)
@@ -1,6 +1,5 @@
 /* Initialization of uninitialized regs. 
-   Copyright (C) 2007 Free Software Foundation,
-   Inc.
+   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -70,13 +69,13 @@ initialize_uninitialized_regs (void)
       FOR_BB_INSNS (bb, insn)
        {
          unsigned int uid = INSN_UID (insn);
-         struct df_ref **use_rec;
+         df_ref *use_rec;
          if (!INSN_P (insn))
            continue;
 
          for (use_rec = DF_INSN_UID_USES (uid); *use_rec; use_rec++)
            {
-             struct df_ref *use = *use_rec;
+             df_ref use = *use_rec;
              unsigned int regno = DF_REF_REGNO (use);
 
              /* Only do this for the pseudos.  */
@@ -106,7 +105,7 @@ initialize_uninitialized_regs (void)
                  emit_move_insn (reg, CONST0_RTX (GET_MODE (reg)));
                  move_insn = get_insns ();
                  end_sequence ();
-                 add_insn_before (move_insn, insn, bb);
+                 emit_insn_before (move_insn, insn);
                  if (dump_file)
                    fprintf (dump_file, 
                             "adding initialization in %s of reg %d at in block %d for insn %d.\n", 
@@ -117,7 +116,11 @@ initialize_uninitialized_regs (void)
     }
 
   if (optimize == 1)
-    df_remove_problem (df_live);
+    {
+      if (dump_file) 
+       df_dump (dump_file);
+      df_remove_problem (df_live);
+    }
 
   BITMAP_FREE (already_genned);
 }
@@ -135,8 +138,10 @@ rest_of_handle_initialize_regs (void)
   return 0;
 }
 
-struct tree_opt_pass pass_initialize_regs =
+struct rtl_opt_pass pass_initialize_regs =
 {
+ {
+  RTL_PASS,
   "init-regs",                          /* name */
   gate_initialize_regs,                 /* gate */
   rest_of_handle_initialize_regs,       /* execute */
@@ -149,6 +154,6 @@ struct tree_opt_pass pass_initialize_regs =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_dump_func |
-  TODO_df_finish,                       /* todo_flags_finish */
-  0                                     /* letter */
+  TODO_df_finish                        /* todo_flags_finish */
+ }
 };