aboutsummaryrefslogtreecommitdiff
path: root/gcc/targhooks.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-04-04 19:52:27 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-04-04 19:52:27 +0200
commitd16e2ddd2666efed093ce826228c786715823cb4 (patch)
tree90baf0fa1babd2f5a7a6862baa9740fc718762aa /gcc/targhooks.h
parente2b2c4b9fbb1c5ee3c8756e6b6ecc6e490fad035 (diff)
downloadgcc-d16e2ddd2666efed093ce826228c786715823cb4.zip
gcc-d16e2ddd2666efed093ce826228c786715823cb4.tar.gz
gcc-d16e2ddd2666efed093ce826228c786715823cb4.tar.bz2
re PR tree-optimization/79390 (10% performance drop in SciMark2 LU after r242550)
PR tree-optimization/79390 * target.h (struct noce_if_info): Declare. * targhooks.h (default_noce_conversion_profitable_p): Declare. * target.def (noce_conversion_profitable_p): New target hook. * ifcvt.h (struct noce_if_info): New type, moved from ... * ifcvt.c (struct noce_if_info): ... here. (noce_conversion_profitable_p): Renamed to ... (default_noce_conversion_profitable_p): ... this. No longer static nor inline. (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p instead of noce_conversion_profitable_p. * config/i386/i386.c: Include ifcvt.h. (ix86_option_override_internal): Don't override PARAM_MAX_RTL_IF_CONVERSION_INSNS default. (ix86_noce_conversion_profitable_p): New function. (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine. * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment. * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add. * doc/tm.texi: Regenerated. * gcc.target/i386/pr79390.c: New test. * gcc.dg/ifcvt-4.c: Use -mtune-ctrl=^one_if_conv_insn for i?86/x86_64. From-SVN: r246686
Diffstat (limited to 'gcc/targhooks.h')
-rw-r--r--gcc/targhooks.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/targhooks.h b/gcc/targhooks.h
index a5565f5..18070df 100644
--- a/gcc/targhooks.h
+++ b/gcc/targhooks.h
@@ -257,6 +257,8 @@ extern void default_setup_incoming_vararg_bounds (cumulative_args_t ca ATTRIBUTE
extern bool default_optab_supported_p (int, machine_mode, machine_mode,
optimization_type);
extern unsigned int default_max_noce_ifcvt_seq_cost (edge);
+extern bool default_noce_conversion_profitable_p (rtx_insn *,
+ struct noce_if_info *);
extern unsigned int default_min_arithmetic_precision (void);
extern enum flt_eval_method