aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2010-07-10 14:43:29 -0400
committerSandra Loosemore <sandra@gcc.gnu.org>2010-07-10 14:43:29 -0400
commitbec922f0407cfb7f184581dc7b5cc10d91cc1063 (patch)
treeb3a38775af4396d2f1d30d5d0c41a80f2bf0e78f /gcc/cfgloop.h
parent35151cd5f8b9f94eee7853a25ae65df04591651a (diff)
downloadgcc-bec922f0407cfb7f184581dc7b5cc10d91cc1063.zip
gcc-bec922f0407cfb7f184581dc7b5cc10d91cc1063.tar.gz
gcc-bec922f0407cfb7f184581dc7b5cc10d91cc1063.tar.bz2
re PR middle-end/42505 (loop canonicalization causes a lot of unnecessary temporary variables)
2010-07-10 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/42505 gcc/ * tree-inline.c (estimate_num_insns): Refactor builtin complexity lookup code into.... * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these new functions. * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare. * cfgloopanal.c (target_clobbered_regs): Define. (init_set_costs): Initialize target_clobbered_regs. (estimate_reg_pressure_cost): Add call_p argument. When true, adjust the number of available registers to exclude the call-clobbered registers. * cfgloop.h (target_clobbered_regs): Declare. (estimate_reg_pressure_cost): Adjust declaration. * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call. (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost. (determine_set_costs): Dump target_clobbered_regs. (loop_body_includes_call): New function. (tree_ssa_iv_optimize_loop): Use it to initialize new field. * loop-invariant.c (gain_for_invariant): Adjust arguments to pass call_p flag through. (best_gain_for_invariant): Likewise. (find_invariants_to_move): Likewise. (move_single_loop_invariants): Likewise, using already-computed has_call field. From-SVN: r162043
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r--gcc/cfgloop.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index 3821ee6..46cda11 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -627,13 +627,14 @@ fel_init (loop_iterator *li, loop_p *loop, unsigned flags)
/* The properties of the target. */
extern unsigned target_avail_regs;
+extern unsigned target_clobbered_regs;
extern unsigned target_res_regs;
extern unsigned target_reg_cost [2];
extern unsigned target_spill_cost [2];
/* Register pressure estimation for induction variable optimizations & loop
invariant motion. */
-extern unsigned estimate_reg_pressure_cost (unsigned, unsigned, bool);
+extern unsigned estimate_reg_pressure_cost (unsigned, unsigned, bool, bool);
extern void init_set_costs (void);
/* Loop optimizer initialization. */