From 592a6d1d968e6dba552439bb22a428240118285f Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 30 Jul 2001 12:54:10 +0200 Subject: [PATCH] * combine.c (try_combine): Avoid barrier after noop jumps From-SVN: r44470 --- gcc/ChangeLog | 4 ++++ gcc/combine.c | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) 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++;