Commit 83bbd9b6 by Richard Henderson Committed by Richard Henderson

alias.c (find_base_value): Use new_reg_base_value if it's live.

        * alias.c (find_base_value): Use new_reg_base_value if it's live.
        (copying_arguments): Make boolean.

From-SVN: r59483
parent cc5baa86
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> 2002-11-25 Jason Thorpe <thorpej@wasabisystems.com>
* gcc.c (static_spec_functions): Add if-exists-else spec * gcc.c (static_spec_functions): Add if-exists-else spec
......
...@@ -199,7 +199,7 @@ char *reg_known_equiv_p; ...@@ -199,7 +199,7 @@ char *reg_known_equiv_p;
/* True when scanning insns from the start of the rtl to the /* True when scanning insns from the start of the rtl to the
NOTE_INSN_FUNCTION_BEG note. */ NOTE_INSN_FUNCTION_BEG note. */
static int copying_arguments; static bool copying_arguments;
/* The splay-tree used to store the various alias set entries. */ /* The splay-tree used to store the various alias set entries. */
static splay_tree alias_sets; static splay_tree alias_sets;
...@@ -781,9 +781,16 @@ find_base_value (src) ...@@ -781,9 +781,16 @@ find_base_value (src)
The test above is not sufficient because the scheduler may move The test above is not sufficient because the scheduler may move
a copy out of an arg reg past the NOTE_INSN_FUNCTION_BEGIN. */ a copy out of an arg reg past the NOTE_INSN_FUNCTION_BEGIN. */
if ((regno >= FIRST_PSEUDO_REGISTER || fixed_regs[regno]) if ((regno >= FIRST_PSEUDO_REGISTER || fixed_regs[regno])
&& regno < reg_base_value_size && regno < reg_base_value_size)
&& reg_base_value[regno]) {
return reg_base_value[regno]; /* 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; return src;
...@@ -2744,7 +2751,7 @@ init_alias_analysis () ...@@ -2744,7 +2751,7 @@ init_alias_analysis ()
/* We're at the start of the function each iteration through the /* We're at the start of the function each iteration through the
loop, so we're copying arguments. */ loop, so we're copying arguments. */
copying_arguments = 1; copying_arguments = true;
/* Wipe the potential alias information clean for this pass. */ /* Wipe the potential alias information clean for this pass. */
memset ((char *) new_reg_base_value, 0, reg_base_value_size * sizeof (rtx)); memset ((char *) new_reg_base_value, 0, reg_base_value_size * sizeof (rtx));
...@@ -2834,7 +2841,7 @@ init_alias_analysis () ...@@ -2834,7 +2841,7 @@ init_alias_analysis ()
} }
else if (GET_CODE (insn) == NOTE else if (GET_CODE (insn) == NOTE
&& NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG) && 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. */ /* Now propagate values from new_reg_base_value to reg_base_value. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment