alias.c (init_alias_analysis): Remove simplification loop after propagating pointers.

* alias.c (init_alias_analysis): Remove simplification loop
        after propagating pointers.

From-SVN: r119262
This commit is contained in:
Steven Bosscher 2006-11-27 23:15:38 +00:00
parent fbee3d219a
commit 4a25ff8383
2 changed files with 5 additions and 32 deletions

View File

@ -1,3 +1,8 @@
2006-11-27 Steven Bosscher <steven@gcc.gnu.org>
* alias.c (init_alias_analysis): Remove simplification loop
after propagating pointers.
2006-11-27 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2

View File

@ -2586,38 +2586,6 @@ init_alias_analysis (void)
if (reg_known_value[i] == 0)
reg_known_value[i] = regno_reg_rtx[i + FIRST_PSEUDO_REGISTER];
/* Simplify the reg_base_value array so that no register refers to
another register, except to special registers indirectly through
ADDRESS expressions.
In theory this loop can take as long as O(registers^2), but unless
there are very long dependency chains it will run in close to linear
time.
This loop may not be needed any longer now that the main loop does
a better job at propagating alias information. */
pass = 0;
do
{
changed = 0;
pass++;
for (ui = 0; ui < maxreg; ui++)
{
rtx base = VEC_index (rtx, reg_base_value, ui);
if (base && REG_P (base))
{
unsigned int base_regno = REGNO (base);
if (base_regno == ui) /* register set from itself */
VEC_replace (rtx, reg_base_value, ui, 0);
else
VEC_replace (rtx, reg_base_value, ui,
VEC_index (rtx, reg_base_value, base_regno));
changed = 1;
}
}
}
while (changed && pass < MAX_ALIAS_LOOP_PASSES);
/* Clean up. */
free (new_reg_base_value);
new_reg_base_value = 0;