From: hubicka Date: Mon, 30 Jul 2001 10:54:10 +0000 (+0000) Subject: * combine.c (try_combine): Avoid barrier after noop jumps X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=83160c3d87ea04a89ce08c7bff3fe1f91e44b83f;p=pf3gnuchains%2Fgcc-fork.git * combine.c (try_combine): Avoid barrier after noop jumps git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44470 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74949b3aacc..abbfb6b657d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Mon Jul 30 12:52:11 CEST 2001 Jan Hubicka + + * combine.c (try_combine): Avoid barrier after noop jumps. + 2001-07-29 Neil Booth * cpphash.h (struct cpp_reader): Remove import_warning. diff --git a/gcc/combine.c b/gcc/combine.c index 4ece85a6812..e9fdffcbaec 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2763,10 +2763,7 @@ try_combine (i3, i2, i1, new_direct_jump_p) BARRIER following it since it may have initially been a conditional jump. It may also be the last nonnote insn. */ - if (GET_CODE (newpat) == RETURN || any_uncondjump_p (i3) - || (GET_CODE (newpat) == SET - && SET_SRC (newpat) == pc_rtx - && SET_DEST (newpat) == pc_rtx)) + if (GET_CODE (newpat) == RETURN || any_uncondjump_p (i3)) { *new_direct_jump_p = 1; @@ -2774,6 +2771,12 @@ try_combine (i3, i2, i1, new_direct_jump_p) || GET_CODE (temp) != BARRIER) emit_barrier_after (i3); } + /* An NOOP jump does not need barrier, but it does need cleaning up + of CFG. */ + if (GET_CODE (newpat) == SET + && SET_SRC (newpat) == pc_rtx + && SET_DEST (newpat) == pc_rtx) + *new_direct_jump_p = 1; } combine_successes++;