aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/xref.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-10-31 15:35:31 +0000
committerJeff Law <law@gcc.gnu.org>1997-10-31 08:35:31 -0700
commitec907dd81e8cc1b3eafae5f8c53a13af541c7e5d (patch)
tree34a4161112e811f269a44b64d9fa825b82289b0b /gcc/cp/xref.c
parent8c316ae21c35468696948951be572bc9a694ad57 (diff)
downloadgcc-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