]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cfgloopanal.c
cfgloopanal.c (get_loop_hot_path): New function.
authorJan Hubicka <jh@suse.cz>
Tue, 6 Nov 2012 16:22:45 +0000 (17:22 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 6 Nov 2012 16:22:45 +0000 (16:22 +0000)
commit519cac4a7a6ca5a2e4871bb05f3a4c85426e8248
treef6fbb89a772fc389ce8c8e8e32cde9cbd8d3a80a
parent425b784f2c51079216d60b3e6a921470408326f6
cfgloopanal.c (get_loop_hot_path): New function.

* cfgloopanal.c (get_loop_hot_path): New function.
* tree-ssa-lop-ivcanon.c (struct loop_size): Add CONSTANT_IV,
NUM_NON_PURE_CALLS_ON_HOT_PATH, NUM_PURE_CALLS_ON_HOT_PATH,
NUM_BRANCHES_ON_HOT_PATH.
(tree_estimate_loop_size): Compute the new values.
(try_unroll_loop_completely): Disable unrolling of loops with only
calls or too many branches.
(tree_unroll_loops_completely): Deal also with outer loops of hot loops.
* cfgloop.h (get_loop_hot_path): Declare.
* params.def (PARAM_MAX_PEEL_BRANCHES): New parameters.
* invoke.texi (max-peel-branches): Document.

* gcc.dg/tree-ssa/loop-1.c: Make to look like a good unroling candidate still.
* gcc.dg/tree-ssa/loop-23.c: Likewise.
* gcc.dg/tree-ssa/cunroll-1.c: Unrolling now happens early.
* gcc.dg/tree-prof/unroll-1.c: Remove confused dg-options.

From-SVN: r193246
gcc/cfgloop.h
gcc/cfgloopanal.c
gcc/doc/invoke.texi
gcc/params.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-prof/unroll-1.c
gcc/testsuite/gcc.dg/tree-ssa/cunroll-1.c
gcc/testsuite/gcc.dg/tree-ssa/loop-1.c
gcc/testsuite/gcc.dg/tree-ssa/loop-23.c
gcc/tree-ssa-loop-ivcanon.c