OSDN Git Service

* regclass.c (reg_scan_update): Remove.
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Mar 2006 05:58:50 +0000 (05:58 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Mar 2006 05:58:50 +0000 (05:58 +0000)
(reg_scan_mark_refs): Remove the last argument.
* rtl.h: Remove the prototype for reg_scan_update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111729 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/regclass.c
gcc/rtl.h

index e6fa683..5491d5b 100644 (file)
@@ -1,3 +1,9 @@
+2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
+
+       * regclass.c (reg_scan_update): Remove.
+       (reg_scan_mark_refs): Remove the last argument.
+       * rtl.h: Remove the prototype for reg_scan_update.
+
 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
 
        * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
index e12e1ac..0b9fd32 100644 (file)
@@ -856,7 +856,7 @@ static void record_address_regs (rtx, enum reg_class, int);
 #ifdef FORBIDDEN_INC_DEC_CLASSES
 static int auto_inc_dec_reg_p (rtx, enum machine_mode);
 #endif
-static void reg_scan_mark_refs (rtx, rtx, int, unsigned int);
+static void reg_scan_mark_refs (rtx, rtx, int);
 
 /* Return the reg_class in which pseudo reg number REGNO is best allocated.
    This function is sometimes called before the info has been computed.
@@ -2277,10 +2277,10 @@ reg_scan (rtx f, unsigned int nregs)
        if (GET_CODE (pat) == PARALLEL
            && XVECLEN (pat, 0) > max_parallel)
          max_parallel = XVECLEN (pat, 0);
-       reg_scan_mark_refs (pat, insn, 0, 0);
+       reg_scan_mark_refs (pat, insn, 0);
 
        if (REG_NOTES (insn))
-         reg_scan_mark_refs (REG_NOTES (insn), insn, 1, 0);
+         reg_scan_mark_refs (REG_NOTES (insn), insn, 1);
       }
 
   max_parallel += max_set_parallel;
@@ -2288,39 +2288,11 @@ reg_scan (rtx f, unsigned int nregs)
   timevar_pop (TV_REG_SCAN);
 }
 
-/* Update 'regscan' information by looking at the insns
-   from FIRST to LAST.  Some new REGs have been created,
-   and any REG with number greater than OLD_MAX_REGNO is
-   such a REG.  We only update information for those.  */
-
-void
-reg_scan_update (rtx first, rtx last, unsigned int old_max_regno)
-{
-  rtx insn;
-
-  allocate_reg_info (max_reg_num (), FALSE, FALSE);
-
-  for (insn = first; insn != last; insn = NEXT_INSN (insn))
-    if (INSN_P (insn))
-      {
-       rtx pat = PATTERN (insn);
-       if (GET_CODE (pat) == PARALLEL
-           && XVECLEN (pat, 0) > max_parallel)
-         max_parallel = XVECLEN (pat, 0);
-       reg_scan_mark_refs (pat, insn, 0, old_max_regno);
-
-       if (REG_NOTES (insn))
-         reg_scan_mark_refs (REG_NOTES (insn), insn, 1, old_max_regno);
-      }
-}
-
 /* X is the expression to scan.  INSN is the insn it appears in.
-   NOTE_FLAG is nonzero if X is from INSN's notes rather than its body.
-   We should only record information for REGs with numbers
-   greater than or equal to MIN_REGNO.  */
+   NOTE_FLAG is nonzero if X is from INSN's notes rather than its body.  */
 
 static void
-reg_scan_mark_refs (rtx x, rtx insn, int note_flag, unsigned int min_regno)
+reg_scan_mark_refs (rtx x, rtx insn, int note_flag)
 {
   enum rtx_code code;
   rtx dest;
@@ -2347,43 +2319,35 @@ reg_scan_mark_refs (rtx x, rtx insn, int note_flag, unsigned int min_regno)
       {
        unsigned int regno = REGNO (x);
 
-       if (regno >= min_regno)
-         {
-           if (!note_flag)
-             REGNO_LAST_UID (regno) = INSN_UID (insn);
-           if (REGNO_FIRST_UID (regno) == 0)
-             REGNO_FIRST_UID (regno) = INSN_UID (insn);
-           /* If we are called by reg_scan_update() (indicated by min_regno
-              being set), we also need to update the reference count.  */
-           if (min_regno)
-             REG_N_REFS (regno)++;
-         }
+       if (!note_flag)
+         REGNO_LAST_UID (regno) = INSN_UID (insn);
+       if (REGNO_FIRST_UID (regno) == 0)
+         REGNO_FIRST_UID (regno) = INSN_UID (insn);
       }
       break;
 
     case EXPR_LIST:
       if (XEXP (x, 0))
-       reg_scan_mark_refs (XEXP (x, 0), insn, note_flag, min_regno);
+       reg_scan_mark_refs (XEXP (x, 0), insn, note_flag);
       if (XEXP (x, 1))
-       reg_scan_mark_refs (XEXP (x, 1), insn, note_flag, min_regno);
+       reg_scan_mark_refs (XEXP (x, 1), insn, note_flag);
       break;
 
     case INSN_LIST:
       if (XEXP (x, 1))
-       reg_scan_mark_refs (XEXP (x, 1), insn, note_flag, min_regno);
+       reg_scan_mark_refs (XEXP (x, 1), insn, note_flag);
       break;
 
     case CLOBBER:
       {
        rtx reg = XEXP (x, 0);
-       if (REG_P (reg)
-           && REGNO (reg) >= min_regno)
+       if (REG_P (reg))
          {
            REG_N_SETS (REGNO (reg))++;
            REG_N_REFS (REGNO (reg))++;
          }
        else if (MEM_P (reg))
-         reg_scan_mark_refs (XEXP (reg, 0), insn, note_flag, min_regno);
+         reg_scan_mark_refs (XEXP (reg, 0), insn, note_flag);
       }
       break;
 
@@ -2400,8 +2364,7 @@ reg_scan_mark_refs (rtx x, rtx insn, int note_flag, unsigned int min_regno)
       if (GET_CODE (dest) == PARALLEL)
        max_set_parallel = MAX (max_set_parallel, XVECLEN (dest, 0) - 1);
 
-      if (REG_P (dest)
-         && REGNO (dest) >= min_regno)
+      if (REG_P (dest))
        {
          REG_N_SETS (REGNO (dest))++;
          REG_N_REFS (REGNO (dest))++;
@@ -2421,7 +2384,6 @@ reg_scan_mark_refs (rtx x, rtx insn, int note_flag, unsigned int min_regno)
 
       if (REG_P (SET_DEST (x))
          && REGNO (SET_DEST (x)) >= FIRST_PSEUDO_REGISTER
-         && REGNO (SET_DEST (x)) >= min_regno
          /* If the destination pseudo is set more than once, then other
             sets might not be to a pointer value (consider access to a
             union in two threads of control in the presence of global
@@ -2482,12 +2444,12 @@ reg_scan_mark_refs (rtx x, rtx insn, int note_flag, unsigned int min_regno)
        for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
          {
            if (fmt[i] == 'e')
-             reg_scan_mark_refs (XEXP (x, i), insn, note_flag, min_regno);
+             reg_scan_mark_refs (XEXP (x, i), insn, note_flag);
            else if (fmt[i] == 'E' && XVEC (x, i) != 0)
              {
                int j;
                for (j = XVECLEN (x, i) - 1; j >= 0; j--)
-                 reg_scan_mark_refs (XVECEXP (x, i, j), insn, note_flag, min_regno);
+                 reg_scan_mark_refs (XVECEXP (x, i, j), insn, note_flag);
              }
          }
       }
index a6cd580..3d182f5 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2168,7 +2168,6 @@ extern void init_reg_sets (void);
 extern void regclass_init (void);
 extern void regclass (rtx, int);
 extern void reg_scan (rtx, unsigned int);
-extern void reg_scan_update (rtx, rtx, unsigned int);
 extern void fix_register (const char *, int, int);
 extern void init_subregs_of_mode (void);
 extern void record_subregs_of_mode (rtx);