aboutsummaryrefslogtreecommitdiff
path: root/gcc/ifcvt.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2017-01-23 16:17:33 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2017-01-23 16:17:33 +0000
commite9c4fbe9c1eff61ffe2aa31c67cef2ffd346f674 (patch)
tree7bf4e542d8044a3f0fe9963033e40db0f94ed55e /gcc/ifcvt.c
parent8539a302cdc56a76a797a18a83d5d68d9cd9f94a (diff)
downloadgcc-e9c4fbe9c1eff61ffe2aa31c67cef2ffd346f674.zip
gcc-e9c4fbe9c1eff61ffe2aa31c67cef2ffd346f674.tar.gz
gcc-e9c4fbe9c1eff61ffe2aa31c67cef2ffd346f674.tar.bz2
re PR rtl-optimization/78634 (30% performance drop after r242832.)
PR rtl-optimization/78634 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function. (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define. * ifcvt.c (noce_try_cmove): Add missing cost check. testsuite/ PR rtl-optimization/78634 * gcc.target/i386/funcspec-11.c: Also pass -mtune=i686. From-SVN: r244816
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r--gcc/ifcvt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 6d30639..e2d6c6f 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -1826,7 +1826,7 @@ noce_try_cmove (struct noce_if_info *if_info)
noce_emit_move_insn (if_info->x, target);
seq = end_ifcvt_sequence (if_info);
- if (!seq)
+ if (!seq || !noce_conversion_profitable_p (seq, if_info))
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,