From 83160c3d87ea04a89ce08c7bff3fe1f91e44b83f Mon Sep 17 00:00:00 2001
From: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 30 Jul 2001 10:54:10 +0000
Subject: [PATCH] 	* 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
---
 gcc/ChangeLog |  4 ++++
 gcc/combine.c | 11 +++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 74949b3aacc7..abbfb6b657d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+	* combine.c (try_combine): Avoid barrier after noop jumps.
+
 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
 
 	* cpphash.h (struct cpp_reader): Remove import_warning.
diff --git a/gcc/combine.c b/gcc/combine.c
index 4ece85a68129..e9fdffcbaecd 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++;
-- 
GitLab