aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorZhenqiang Chen <zhenqiang.chen@linaro.org>2014-11-17 05:52:26 +0000
committerZhenqiang Chen <zqchen@gcc.gnu.org>2014-11-17 05:52:26 +0000
commit2d52a3a19d16f75e57f5278d722e227d29ba4d03 (patch)
treef005f7c543c6200411ad017985122790e2488d1b /gcc/cfgexpand.c
parent2e0f134153b4ac30da86de0a918fadcd4675a153 (diff)
downloadgcc-2d52a3a19d16f75e57f5278d722e227d29ba4d03.zip
gcc-2d52a3a19d16f75e57f5278d722e227d29ba4d03.tar.gz
gcc-2d52a3a19d16f75e57f5278d722e227d29ba4d03.tar.bz2
cfgexpand.c (expand_gimple_cond): Check ccmp.
2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> * cfgexpand.c (expand_gimple_cond): Check ccmp. * expmed.c (emit_cstore): Make it global. * expmed.h: #include "insn-codes.h" (emit_cstore): New prototype. * expr.c (expand_operands): Make it global. * expr.h (expand_operands): New prototype. * optabs.c (get_rtx_code): Make it global. * optabs.h (get_rtx_code): New prototype. From-SVN: r217640
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r--gcc/cfgexpand.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 15d7638..19e87ec 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -2129,9 +2129,10 @@ expand_gimple_cond (basic_block bb, gimple stmt)
op0 = gimple_assign_rhs1 (second);
op1 = gimple_assign_rhs2 (second);
}
- /* If jumps are cheap turn some more codes into
- jumpy sequences. */
- else if (BRANCH_COST (optimize_insn_for_speed_p (), false) < 4)
+ /* If jumps are cheap and the target does not support conditional
+ compare, turn some more codes into jumpy sequences. */
+ else if (BRANCH_COST (optimize_insn_for_speed_p (), false) < 4
+ && targetm.gen_ccmp_first == NULL)
{
if ((code2 == BIT_AND_EXPR
&& TYPE_PRECISION (TREE_TYPE (op0)) == 1