aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2009-06-13 23:15:48 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2009-06-13 23:15:48 +0000
commitfb4c4640407a161b72fd927e5610778d52c96e26 (patch)
tree9489fc11925987ca7f50e7654a1d3be8e3a1f844
parent1d24fdd92a0189c05fedccebfdfb696fee999a4d (diff)
downloadgcc-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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfgcleanup.c34
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;
}