aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2011-04-05 10:04:44 +0000
committerTom de Vries <vries@gcc.gnu.org>2011-04-05 10:04:44 +0000
commit2a562b0ab31fe77a48dcaca05d2e6d31c29bbeab (patch)
treeefebfadb72641a3bc09407f8a2fef2b8cdf0f672 /gcc
parent0248bceb7ba8fa849dc3c06d170edb8ce6d96d14 (diff)
downloadgcc-2a562b0ab31fe77a48dcaca05d2e6d31c29bbeab.zip
gcc-2a562b0ab31fe77a48dcaca05d2e6d31c29bbeab.tar.gz
gcc-2a562b0ab31fe77a48dcaca05d2e6d31c29bbeab.tar.bz2
re PR target/43920 (Choosing conditional execution over conditional branches for code size in some cases.)
2011-04-05 Tom de Vries <tom@codesourcery.com> PR target/43920 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as insn. From-SVN: r171976
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfgcleanup.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d9bc24e..6cde480 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2011-04-05 Tom de Vries <tom@codesourcery.com>
+ PR target/43920
+ * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
+ insn.
+
+2011-04-05 Tom de Vries <tom@codesourcery.com>
+
* cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 6178b59..112cb49 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -1070,6 +1070,7 @@ flow_find_cross_jump (basic_block bb1, basic_block bb2, rtx *f1, rtx *f2)
{
rtx i1, i2, last1, last2, afterlast1, afterlast2;
int ninsns = 0;
+ rtx p1;
/* Skip simple jumps at the end of the blocks. Complex jumps still
need to be compared for equivalence, which we'll do below. */
@@ -1118,7 +1119,9 @@ flow_find_cross_jump (basic_block bb1, basic_block bb2, rtx *f1, rtx *f2)
afterlast1 = last1, afterlast2 = last2;
last1 = i1, last2 = i2;
- ninsns++;
+ p1 = PATTERN (i1);
+ if (!(GET_CODE (p1) == USE || GET_CODE (p1) == CLOBBER))
+ ninsns++;
}
i1 = PREV_INSN (i1);