]> git.ipfire.org Git - thirdparty/gcc.git/commit
alias.c (init_alias_analysis): Add struct_value_incoming_rtx and static_chain_rtx...
authorJeffrey A Law <law@cygnus.com>
Fri, 31 Oct 1997 15:35:31 +0000 (15:35 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 31 Oct 1997 15:35:31 +0000 (08:35 -0700)
commitec907dd81e8cc1b3eafae5f8c53a13af541c7e5d
tree34a4161112e811f269a44b64d9fa825b82289b0b
parent8c316ae21c35468696948951be572bc9a694ad57
alias.c (init_alias_analysis): Add struct_value_incoming_rtx and static_chain_rtx into the potential base...

        * alias.c (init_alias_analysis): Add struct_value_incoming_rtx
        and static_chain_rtx into the potential base values array if
        they are registers.
Fixes bugs exposed by improved alias propagation code.

        * alias.c (new_reg_base_value): New array of potential base values.
        (unique_id): Now file scoped static.
        (find_base_value, case REG): Return the value in reg_base_value
        array for the REG if it exists.  Else, return the value from
        new_reg_base_value if copying args and REG is a hard register.
        (find_base_value, case PLUS): If either operand of the PLUS is
        a REG, try to get its base value.  Handle base + index and
        index + base.
        (record_set): Use new_reg_base_value instead of reg_base_value.
        (init_alias_analysis): Allocate space for new_reg_base_value too.
        Rework code to iterate over the insns propagating base value
        information until nothing changes.
Improve alias propagation significantly.

From-SVN: r16250
gcc/ChangeLog
gcc/alias.c