diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2009-06-13 23:15:48 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2009-06-13 23:15:48 +0000 |
commit | fb4c4640407a161b72fd927e5610778d52c96e26 (patch) | |
tree | 9489fc11925987ca7f50e7654a1d3be8e3a1f844 /gcc | |
parent | 1d24fdd92a0189c05fedccebfdfb696fee999a4d (diff) | |
download | gcc-fb4c4640407a161b72fd927e5610778d52c96e26.zip gcc-fb4c4640407a161b72fd927e5610778d52c96e26.tar.gz gcc-fb4c4640407a161b72fd927e5610778d52c96e26.tar.bz2 |
cfgcleanup.c (old_insns_match_p): Remove code to substitute REG_EQUAL/REG_EQUIV notes.
* cfgcleanup.c (old_insns_match_p): Remove code to substitute
REG_EQUAL/REG_EQUIV notes.
From-SVN: r148463
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 34 |
2 files changed, 5 insertions, 34 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 264e5cc..99a578f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-06-14 Steven Bosscher <steven@gcc.gnu.org> + + * cfgcleanup.c (old_insns_match_p): Remove code to substitute + REG_EQUAL/REG_EQUIV notes. + 2009-06-14 Richard Guenther <rguenther@suse.de> PR middle-end/40389 diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index a8b38d7..3d1fbb2 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -1009,40 +1009,6 @@ old_insns_match_p (int mode ATTRIBUTE_UNUSED, rtx i1, rtx i2) ? rtx_renumbered_equal_p (p1, p2) : rtx_equal_p (p1, p2)) return true; - /* Do not do EQUIV substitution after reload. First, we're undoing the - work of reload_cse. Second, we may be undoing the work of the post- - reload splitting pass. */ - /* ??? Possibly add a new phase switch variable that can be used by - targets to disallow the troublesome insns after splitting. */ - if (!reload_completed) - { - /* The following code helps take care of G++ cleanups. */ - rtx equiv1 = find_reg_equal_equiv_note (i1); - rtx equiv2 = find_reg_equal_equiv_note (i2); - - if (equiv1 && equiv2 - /* If the equivalences are not to a constant, they may - reference pseudos that no longer exist, so we can't - use them. */ - && (! reload_completed - || (CONSTANT_P (XEXP (equiv1, 0)) - && rtx_equal_p (XEXP (equiv1, 0), XEXP (equiv2, 0))))) - { - rtx s1 = single_set (i1); - rtx s2 = single_set (i2); - if (s1 != 0 && s2 != 0 - && rtx_renumbered_equal_p (SET_DEST (s1), SET_DEST (s2))) - { - validate_change (i1, &SET_SRC (s1), XEXP (equiv1, 0), 1); - validate_change (i2, &SET_SRC (s2), XEXP (equiv2, 0), 1); - if (! rtx_renumbered_equal_p (p1, p2)) - cancel_changes (0); - else if (apply_change_group ()) - return true; - } - } - } - return false; } |