aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-07-30 12:54:10 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-07-30 10:54:10 +0000
commit592a6d1d968e6dba552439bb22a428240118285f (patch)
tree0ed4d0b298a725cfff78f895ec02084e48d3f940
parent60e19e8b3ffaf5dac4fe94e472b6b695ed4436b0 (diff)
downloadgcc-592a6d1d968e6dba552439bb22a428240118285f.zip
gcc-592a6d1d968e6dba552439bb22a428240118285f.tar.gz
gcc-592a6d1d968e6dba552439bb22a428240118285f.tar.bz2
* combine.c (try_combine): Avoid barrier after noop jumps
From-SVN: r44470
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/combine.c11
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 74949b3..abbfb6b 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 4ece85a..e9fdffc 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++;