From: rth Date: Tue, 26 Nov 2002 00:51:17 +0000 (+0000) Subject: * alias.c (find_base_value): Use new_reg_base_value if it's live. X-Git-Tag: upstream/4.9.2~83246 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e5be0cc6bb25467fda221aa46461288ea5999e1c;p=platform%2Fupstream%2Flinaro-gcc.git * alias.c (find_base_value): Use new_reg_base_value if it's live. (copying_arguments): Make boolean. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59483 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04a4f7a..bcb5208 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-11-25 Richard Henderson + + * alias.c (find_base_value): Use new_reg_base_value if it's live. + (copying_arguments): Make boolean. + 2002-11-25 Jason Thorpe * gcc.c (static_spec_functions): Add if-exists-else spec diff --git a/gcc/alias.c b/gcc/alias.c index ca560b6..45e868c 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -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. */