diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-06-20 13:50:27 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-06-20 02:04:52 +0000 |
commit | 3c447213baf828ebd01c45ad459552b3c9922c92 (patch) | |
tree | 198ed6386925c6ff5c24faf686b836aa74082836 /gcc-4.8/gcc/ifcvt.c | |
parent | e1be674a8e345aaa025ad9f1d38bab4272301e1d (diff) | |
parent | f190d6284359da8ae8694b2d2e14b01602a959ed (diff) | |
download | toolchain_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.c | 11 |
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); |