diff options
author | Jeffrey A Law <law@cygnus.com> | 1997-10-31 15:35:31 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-10-31 08:35:31 -0700 |
commit | ec907dd81e8cc1b3eafae5f8c53a13af541c7e5d (patch) | |
tree | 34a4161112e811f269a44b64d9fa825b82289b0b /gcc/cp/xref.c | |
parent | 8c316ae21c35468696948951be572bc9a694ad57 (diff) | |
download | gcc-ec907dd81e8cc1b3eafae5f8c53a13af541c7e5d.zip gcc-ec907dd81e8cc1b3eafae5f8c53a13af541c7e5d.tar.gz gcc-ec907dd81e8cc1b3eafae5f8c53a13af541c7e5d.tar.bz2 |
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
Diffstat (limited to 'gcc/cp/xref.c')
0 files changed, 0 insertions, 0 deletions