combine.c (try_combine): Trying to check the missed case 3->2 combining (combining with splitting) in...

* combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
	case 3->2 combining (combining with splitting) in which 2 is CC0
	setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
	checked at the begining of the function with the aid of calling
	function 'can_combine_p'.

From-SVN: r31727
This commit is contained in:
Chandra Chavva 2000-01-31 22:23:43 +00:00 committed by Chandra Chavva
parent a9fda12fbb
commit 5ef17dd258
2 changed files with 20 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2000-01-31 Chandra Chavva <cchavva@cygnus.com>
* combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
case 3->2 combining (combining with splitting) in which 2 is CC0
setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
checked at the begining of the function with the aid of calling
function 'can_combine_p'.
2000-01-31 Dave Brolley <brolley@redhat.com>
* cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.

View File

@ -2391,6 +2391,18 @@ try_combine (i3, i2, i1)
distribute_notes (new_other_notes, undobuf.other_insn,
undobuf.other_insn, NULL_RTX, NULL_RTX, NULL_RTX);
}
#ifdef HAVE_cc0
/* If I2 is the setter CC0 and I3 is the user CC0 then check whether
they are adjacent to each other or not. */
{
rtx p = prev_nonnote_insn (i3);
if (p && p != i2 && GET_CODE (p) == INSN && newi2pat && sets_cc0_p (newi2pat))
{
undo_all ();
return 0;
}
}
#endif
/* We now know that we can do this combination. Merge the insns and
update the status of registers and LOG_LINKS. */