cse.c (cse_insn): Don't cse past a basic block boundary.

2002-12-10  Andrew Haley  <aph@redhat.com>

	* cse.c (cse_insn): Don't cse past a basic block boundary.

From-SVN: r60000
This commit is contained in:
Andrew Haley 2002-12-10 16:35:37 +00:00 committed by Andrew Haley
parent 4fe1edca4d
commit 3e25353ee7
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2002-12-10 Andrew Haley <aph@redhat.com>
* cse.c (cse_insn): Don't cse past a basic block boundary.
2002-12-10 Jakub Jelinek <jakub@redhat.com>
* config/linux.h (LIB_SPEC): If -pthread, add -lpthread even if

View File

@ -6316,8 +6316,16 @@ cse_insn (insn, libcall_insn)
if ((src_ent->first_reg == REGNO (SET_DEST (sets[0].rtl)))
&& ! find_reg_note (insn, REG_RETVAL, NULL_RTX))
{
rtx prev = prev_nonnote_insn (insn);
rtx prev = insn;
/* Scan for the previous nonnote insn, but stop at a basic
block boundary. */
do
{
prev = PREV_INSN (prev);
}
while (prev && GET_CODE (prev) == NOTE
&& NOTE_LINE_NUMBER (prev) != NOTE_INSN_BASIC_BLOCK);
/* Do not swap the registers around if the previous instruction
attaches a REG_EQUIV note to REG1.