2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
commita6b74a67c831c6d371d91dbbeda762fb01ff180c
authorsandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Jul 2010 18:43:29 +0000 (10 18:43 +0000)
committersandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Jul 2010 18:43:29 +0000 (10 18:43 +0000)
treeb3a38775af4396d2f1d30d5d0c41a80f2bf0e78f
parent4ce1f21050f9b1f9f5fb21ef4b5afa6fb60c7a00
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162043 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/cfgloop.h
gcc/cfgloopanal.c
gcc/loop-invariant.c
gcc/tree-inline.c
gcc/tree-ssa-loop-ivopts.c
gcc/tree.h