cfgcleanup.c (insns_match_p): Do not do EQUIV substitution after reload.

* cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
        after reload.

From-SVN: r64738
This commit is contained in:
Richard Henderson 2003-03-22 17:40:04 -08:00 committed by Richard Henderson
parent de32716c0d
commit 3ce6bef0f9
2 changed files with 15 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2003-03-22 Richard Henderson <rth@redhat.com>
* cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
after reload.
2003-03-22 DJ Delorie <dj at redhat dot com>,
Bruce Korb <bkorb at gnu dot org>

View File

@ -967,7 +967,15 @@ insns_match_p (mode, i1, i2)
#endif
if (reload_completed
? ! rtx_renumbered_equal_p (p1, p2) : ! rtx_equal_p (p1, p2))
? 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);
@ -994,11 +1002,9 @@ insns_match_p (mode, i1, i2)
return true;
}
}
return false;
}
return true;
return false;
}
/* Look through the insns at the end of BB1 and BB2 and find the longest