OSDN Git Service

2006-04-08 Andreas Tobler <a.tobler@schweiz.ch>
[pf3gnuchains/gcc-fork.git] / gcc / regmove.c
index 0bda55b..31f1851 100644 (file)
@@ -76,12 +76,12 @@ static void flags_set_1 (rtx, rtx, void *);
 static int try_auto_increment (rtx, rtx, rtx, rtx, HOST_WIDE_INT, int);
 static int find_matches (rtx, struct match *);
 static void replace_in_call_usage (rtx *, unsigned int, rtx, rtx);
-static int fixup_match_1 (rtx, rtx, rtx, rtx, rtx, int, int, int, FILE *);
+static int fixup_match_1 (rtx, rtx, rtx, rtx, rtx, int, int, int);
 static int reg_is_remote_constant_p (rtx, rtx, rtx);
 static int stable_and_no_regs_but_for_p (rtx, rtx, rtx);
 static int regclass_compatible_p (int, int);
 static int replacement_quality (rtx);
-static int fixup_match_2 (rtx, rtx, rtx, rtx, FILE *);
+static int fixup_match_2 (rtx, rtx, rtx, rtx);
 
 /* Return nonzero if registers with CLASS1 and CLASS2 can be merged without
    causing too much register allocation problems.  */
@@ -916,7 +916,7 @@ reg_is_remote_constant_p (rtx reg, rtx insn, rtx first)
    hard register as ultimate source, like the frame pointer.  */
 
 static int
-fixup_match_2 (rtx insn, rtx dst, rtx src, rtx offset, FILE *regmove_dump_file)
+fixup_match_2 (rtx insn, rtx dst, rtx src, rtx offset)
 {
   rtx p, dst_death = 0;
   int length, num_calls = 0;
@@ -965,8 +965,8 @@ fixup_match_2 (rtx insn, rtx dst, rtx src, rtx offset, FILE *regmove_dump_file)
                  REG_N_CALLS_CROSSED (REGNO (dst)) += num_calls;
                }
 
-             if (regmove_dump_file)
-               fprintf (regmove_dump_file,
+             if (dump_file)
+               fprintf (dump_file,
                         "Fixed operand of insn %d.\n",
                          INSN_UID (insn));
 
@@ -1038,7 +1038,7 @@ fixup_match_2 (rtx insn, rtx dst, rtx src, rtx offset, FILE *regmove_dump_file)
    (or 0 if none should be output).  */
 
 static void
-regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
+regmove_optimize (rtx f, int nregs)
 {
   int old_max_uid = get_max_uid ();
   rtx insn;
@@ -1072,8 +1072,8 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
       if (! flag_regmove && pass >= flag_expensive_optimizations)
        goto done;
 
-      if (regmove_dump_file)
-       fprintf (regmove_dump_file, "Starting %s pass...\n",
+      if (dump_file)
+       fprintf (dump_file, "Starting %s pass...\n",
                 pass ? "backward" : "forward");
 
       for (insn = pass ? get_last_insn () : f; insn;
@@ -1209,8 +1209,7 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
                continue;
 
              if (fixup_match_1 (insn, set, src, src_subreg, dst, pass,
-                                op_no, match_no,
-                                regmove_dump_file))
+                                op_no, match_no))
                break;
            }
        }
@@ -1218,8 +1217,8 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
 
   /* A backward pass.  Replace input operands with output operands.  */
 
-  if (regmove_dump_file)
-    fprintf (regmove_dump_file, "Starting backward pass...\n");
+  if (dump_file)
+    fprintf (dump_file, "Starting backward pass...\n");
 
   for (insn = get_last_insn (); insn; insn = PREV_INSN (insn))
     {
@@ -1308,8 +1307,7 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
                      && GET_CODE (XEXP (SET_SRC (set), 1)) == CONST_INT
                      && XEXP (SET_SRC (set), 0) == src
                      && fixup_match_2 (insn, dst, src,
-                                       XEXP (SET_SRC (set), 1),
-                                       regmove_dump_file))
+                                       XEXP (SET_SRC (set), 1)))
                    break;
                  continue;
                }
@@ -1368,8 +1366,8 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
                }
 
 
-             if (regmove_dump_file)
-               fprintf (regmove_dump_file,
+             if (dump_file)
+               fprintf (dump_file,
                         "Could fix operand %d of insn %d matching operand %d.\n",
                         op_no, INSN_UID (insn), match_no);
 
@@ -1472,8 +1470,8 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
                        REG_LIVE_LENGTH (srcno) = 2;
                    }
 
-                 if (regmove_dump_file)
-                   fprintf (regmove_dump_file,
+                 if (dump_file)
+                   fprintf (dump_file,
                             "Fixed operand %d of insn %d matching operand %d.\n",
                             op_no, INSN_UID (insn), match_no);
 
@@ -1643,8 +1641,7 @@ replace_in_call_usage (rtx *loc, unsigned int dst_reg, rtx src, rtx insn)
 
 static int
 fixup_match_1 (rtx insn, rtx set, rtx src, rtx src_subreg, rtx dst,
-              int backward, int operand_number, int match_number,
-              FILE *regmove_dump_file)
+              int backward, int operand_number, int match_number)
 {
   rtx p;
   rtx post_inc = 0, post_inc_set = 0, search_end = 0;
@@ -1679,8 +1676,8 @@ fixup_match_1 (rtx insn, rtx set, rtx src, rtx src_subreg, rtx dst,
        code = NOTE;
     }
 
-  if (regmove_dump_file)
-    fprintf (regmove_dump_file,
+  if (dump_file)
+    fprintf (dump_file,
             "Could fix operand %d of insn %d matching operand %d.\n",
             operand_number, INSN_UID (insn), match_number);
 
@@ -2020,8 +2017,8 @@ fixup_match_1 (rtx insn, rtx set, rtx src, rtx src_subreg, rtx dst,
       if (REG_LIVE_LENGTH (REGNO (dst)) < 2)
        REG_LIVE_LENGTH (REGNO (dst)) = 2;
     }
-  if (regmove_dump_file)
-    fprintf (regmove_dump_file,
+  if (dump_file)
+    fprintf (dump_file,
             "Fixed operand %d of insn %d matching operand %d.\n",
             operand_number, INSN_UID (insn), match_number);
   return 1;
@@ -2473,11 +2470,12 @@ gate_handle_regmove (void)
 
 /* Register allocation pre-pass, to reduce number of moves necessary
    for two-address machines.  */
-static void
+static unsigned int
 rest_of_handle_regmove (void)
 {
-  regmove_optimize (get_insns (), max_reg_num (), dump_file);
+  regmove_optimize (get_insns (), max_reg_num ());
   cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_UPDATE_LIFE);
+  return 0;
 }
 
 struct tree_opt_pass pass_regmove =
@@ -2505,10 +2503,10 @@ gate_handle_stack_adjustments (void)
   return (optimize > 0);
 }
 
-static void
+static unsigned int
 rest_of_handle_stack_adjustments (void)
 {
-  life_analysis (dump_file, PROP_POSTRELOAD);
+  life_analysis (PROP_POSTRELOAD);
   cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_UPDATE_LIFE
                | (flag_crossjumping ? CLEANUP_CROSSJUMP : 0));
 
@@ -2520,6 +2518,7 @@ rest_of_handle_stack_adjustments (void)
   if (!ACCUMULATE_OUTGOING_ARGS)
 #endif
     combine_stack_adjustments ();
+  return 0;
 }
 
 struct tree_opt_pass pass_stack_adjustments =