]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR rtl-optimization/31360 (RTL loop invariant is not aggressive enough)
authorZdenek Dvorak <dvorakz@suse.cz>
Tue, 17 Apr 2007 16:42:29 +0000 (18:42 +0200)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Tue, 17 Apr 2007 16:42:29 +0000 (16:42 +0000)
commita154b43a811a710525c1da93ea4f97c97c9327f9
tree0a31c59ebc8695e61c56119d3a3890c7117e0a43
parentfaf28b3a89f32229935b0f60383423315121eb8d
re PR rtl-optimization/31360 (RTL loop invariant is not aggressive enough)

PR rtl-optimization/31360
* cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
(target_reg_cost): New.
(init_set_costs): Initialize target_reg_cost.  Add comments
regarding the rationale of the costs.
(global_cost_for_size): Renamed to...
(estimate_reg_pressure_cost): ... and simplify.  Decrease importance
of register pressure.
* tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
estimate_reg_pressure_cost.  Add number of ivs.
(determine_set_costs): Dump target_reg_cost.
* loop-invariant.c (gain_for_invariant):  Use
estimate_reg_pressure_cost.  Removed n_inv_uses argument.
(best_gain_for_invariant, find_invariants_to_move): Remove
n_inv_uses.
* cfgloop.h (target_small_cost, target_pres_cost): Removed.
(target_reg_cost): Declare.
(global_cost_for_size): Declaration removed.
(estimate_reg_pressure_cost): Declare.

* gcc.dg/loop-7.c: New test.

From-SVN: r123919
gcc/ChangeLog
gcc/cfgloop.h
gcc/cfgloopanal.c
gcc/loop-invariant.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/loop-7.c [new file with mode: 0644]
gcc/tree-ssa-loop-ivopts.c