Commit 0b21d1dc by Ulrich Weigand Committed by Ulrich Weigand

combine.c (try_combine): When swapping i2 and i3...

	* combine.c (try_combine): When swapping i2 and i3, newi2pat may be
	a PARALLEL instead of a SET due to added clobbers.

From-SVN: r87255
parent 7bb09d15
2004-09-09 Ulrich Weigand <uweigand@de.ibm.com> 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
* combine.c (try_combine): When swapping i2 and i3, newi2pat may be
a PARALLEL instead of a SET due to added clobbers.
2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
* reload.c (find_reloads_address): Pass correct operand to * reload.c (find_reloads_address): Pass correct operand to
maybe_memory_address_p. maybe_memory_address_p.
......
...@@ -2615,7 +2615,13 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) ...@@ -2615,7 +2615,13 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
The simplest way to remove the link is to point it at I1, The simplest way to remove the link is to point it at I1,
which we know will be a NOTE. */ which we know will be a NOTE. */
ni2dest = SET_DEST (newi2pat); /* newi2pat is usually a SET here; however, recog_for_combine might
have added some clobbers. */
if (GET_CODE (newi2pat) == PARALLEL)
ni2dest = SET_DEST (XVECEXP (newi2pat, 0, 0));
else
ni2dest = SET_DEST (newi2pat);
for (insn = NEXT_INSN (i3); for (insn = NEXT_INSN (i3);
insn && (this_basic_block->next_bb == EXIT_BLOCK_PTR insn && (this_basic_block->next_bb == EXIT_BLOCK_PTR
|| insn != BB_HEAD (this_basic_block->next_bb)); || insn != BB_HEAD (this_basic_block->next_bb));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment