* alias.c (find_base_value): Use new_reg_base_value if it's live.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Nov 2002 00:51:17 +0000 (00:51 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Nov 2002 00:51:17 +0000 (00:51 +0000)
        (copying_arguments): Make boolean.

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

gcc/ChangeLog
gcc/alias.c

index 04a4f7a..bcb5208 100644 (file)
@@ -1,3 +1,8 @@
+2002-11-25  Richard Henderson  <rth@redhat.com>
+
+       * alias.c (find_base_value): Use new_reg_base_value if it's live.
+       (copying_arguments): Make boolean.
+
 2002-11-25  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * gcc.c (static_spec_functions): Add if-exists-else spec
index ca560b6..45e868c 100644 (file)
@@ -199,7 +199,7 @@ char *reg_known_equiv_p;
 
 /* True when scanning insns from the start of the rtl to the
    NOTE_INSN_FUNCTION_BEG note.  */
-static int copying_arguments;
+static bool copying_arguments;
 
 /* The splay-tree used to store the various alias set entries.  */
 static splay_tree alias_sets;
@@ -781,9 +781,16 @@ find_base_value (src)
         The test above is not sufficient because the scheduler may move
         a copy out of an arg reg past the NOTE_INSN_FUNCTION_BEGIN.  */
       if ((regno >= FIRST_PSEUDO_REGISTER || fixed_regs[regno])
-         && regno < reg_base_value_size
-         && reg_base_value[regno])
-       return reg_base_value[regno];
+         && regno < reg_base_value_size)
+       {
+         /* If we're inside init_alias_analysis, use new_reg_base_value
+            to reduce the number of relaxation iterations.  */
+         if (new_reg_base_value && new_reg_base_value[regno])
+           return new_reg_base_value[regno];
+
+         if (reg_base_value[regno])
+           return reg_base_value[regno];
+       }
 
       return src;
 
@@ -2744,7 +2751,7 @@ init_alias_analysis ()
 
       /* We're at the start of the function each iteration through the
         loop, so we're copying arguments.  */
-      copying_arguments = 1;
+      copying_arguments = true;
 
       /* Wipe the potential alias information clean for this pass.  */
       memset ((char *) new_reg_base_value, 0, reg_base_value_size * sizeof (rtx));
@@ -2834,7 +2841,7 @@ init_alias_analysis ()
            }
          else if (GET_CODE (insn) == NOTE
                   && NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG)
-           copying_arguments = 0;
+           copying_arguments = false;
        }
 
       /* Now propagate values from new_reg_base_value to reg_base_value.  */