aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/ifcvt.c
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2014-06-20 13:50:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-06-20 02:04:52 +0000
commit3c447213baf828ebd01c45ad459552b3c9922c92 (patch)
tree198ed6386925c6ff5c24faf686b836aa74082836 /gcc-4.8/gcc/ifcvt.c
parente1be674a8e345aaa025ad9f1d38bab4272301e1d (diff)
parentf190d6284359da8ae8694b2d2e14b01602a959ed (diff)
downloadtoolchain_gcc-3c447213baf828ebd01c45ad459552b3c9922c92.tar.gz
toolchain_gcc-3c447213baf828ebd01c45ad459552b3c9922c92.tar.bz2
toolchain_gcc-3c447213baf828ebd01c45ad459552b3c9922c92.zip
Merge "Merge GCC 4.8.3"
Diffstat (limited to 'gcc-4.8/gcc/ifcvt.c')
-rw-r--r--gcc-4.8/gcc/ifcvt.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc-4.8/gcc/ifcvt.c b/gcc-4.8/gcc/ifcvt.c
index 88967a6c2..e3353a5f2 100644
--- a/gcc-4.8/gcc/ifcvt.c
+++ b/gcc-4.8/gcc/ifcvt.c
@@ -115,7 +115,11 @@ count_bb_insns (const_basic_block bb)
while (1)
{
- if (CALL_P (insn) || NONJUMP_INSN_P (insn))
+ if ((CALL_P (insn) || NONJUMP_INSN_P (insn))
+ /* Don't count USE/CLOBBER insns, flow_find_cross_jump etc.
+ don't count them either and we need consistency. */
+ && GET_CODE (PATTERN (insn)) != USE
+ && GET_CODE (PATTERN (insn)) != CLOBBER)
count++;
if (insn == BB_END (bb))
@@ -505,7 +509,10 @@ cond_exec_process_if_block (ce_if_block_t * ce_info,
n_insns -= 2 * n_matching;
}
- if (then_start && else_start)
+ if (then_start
+ && else_start
+ && then_n_insns > n_matching
+ && else_n_insns > n_matching)
{
int longest_match = MIN (then_n_insns - n_matching,
else_n_insns - n_matching);