cfgloop.h (get_loop_exit_edges): Add extra parameter denoting loop body, defaulted...
authorRichard Biener <rguenther@suse.de>
Mon, 25 Nov 2019 07:51:38 +0000 (07:51 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 25 Nov 2019 07:51:38 +0000 (07:51 +0000)
commitf10d2d85c90c9c649675c248cd5a99f66288f81f
tree284bcf852c57a2fa1c05c83c5138e1553cc14a03
parent5a34952edb758109a3b919bc149136ee9277ee3a
cfgloop.h (get_loop_exit_edges): Add extra parameter denoting loop body, defaulted to NULL.

2019-11-25  Richard Biener  <rguenther@suse.de>

* cfgloop.h (get_loop_exit_edges): Add extra parameter denoting
loop body, defaulted to NULL.
(single_likely_exit): Add exit vector argument
* tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument.
(number_of_iterations_exit): Likewise.
(number_of_iterations_exit_assumptions): Likewise.
* cfgloop.c (get_loop_exit_edges): Use passed in loop body
if not NULL.
* cfgloopanal.c (single_likely_exit): Use passed in exit vector.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Compute exit vector around call to single_likely_exit.
* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down
loop body to loop_only_exit_p.
* tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from
caller.
(number_of_iterations_exit_assumptions): Get loop body from caller
if not NULL.
(number_of_iterations_exit): Pass through new loop body arg.
(infer_loop_bounds_from_undefined): Get loop body from caller.
(estimate_numbers_of_iterations): Compute loop body once.

From-SVN: r278667
gcc/ChangeLog
gcc/cfgloop.c
gcc/cfgloop.h
gcc/cfgloopanal.c
gcc/tree-ssa-loop-ivcanon.c
gcc/tree-ssa-loop-ivopts.c
gcc/tree-ssa-loop-niter.c
gcc/tree-ssa-loop-niter.h