gcse.c (bypass_block): Prevent edges to be unified when we are about to emit compenstation code.

* gcse.c (bypass_block): Prevent edges to be unified when we are
	about to emit compenstation code.

From-SVN: r76791
This commit is contained in:
Jan Hubicka 2004-01-28 15:13:35 +01:00 committed by Jan Hubicka
parent 1b8f817446
commit a544524ad3
2 changed files with 20 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2004-01-28 Jan Hubicka <jh@suse.cz>
* gcse.c (bypass_block): Prevent edges to be unified when we are
about to emit compenstation code.
2004-01-28 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c (arm_expand_builtin): Force second argument of

View File

@ -4874,6 +4874,21 @@ bypass_block (basic_block bb, rtx setcc, rtx jump)
else
dest = NULL;
/* Avoid unification of the edge with other edges from original
branch. We would end up emitting the instruction on "both"
edges. */
if (dest && setcc && !CC0_P (SET_DEST (pat)))
{
edge e2;
for (e2 = e->src->succ; e2; e2 = e2->succ_next)
if (e2->dest == dest)
{
dest = NULL;
break;
}
}
old_dest = e->dest;
if (dest != NULL
&& dest != old_dest