summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-ivcanon.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-10 08:55:57 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-10 08:55:57 +0000
commit053fdd999453feb09cff376ef51ca167dc432205 (patch)
treef2b46ed67074fdbfd5baaae62b80c6995933ebe7 /gcc/tree-ssa-loop-ivcanon.c
parent5a24a79a9ed43d9154273567b60e88b694924c4f (diff)
downloadgcc-053fdd999453feb09cff376ef51ca167dc432205.tar.gz
* Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
* cfgloop.c (flow_loop_nodes_find): Export. * cfgloop.h (flow_loop_nodes_find, fix_loop_structure): Declare. * cfgloopmanip.c (fix_loop_structure): New function. * predict.c (predict_loops): Clean up the loops information. * tree-cfg.c (cleanup_tree_cfg_loop): New function. (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect loop structure. * tree-flow.h (cleanup_tree_cfg_loop): Declare. (rewrite_into_loop_closed_ssa): Declaration changed. * tree-loop-linear.c (linear_transform_loops): Add argument to rewrite_into_loop_closed_ssa call. * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. * tree-ssa-loop-im.c (move_computations): Ditto. * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto. * tree-vectorizer.c (vectorize_loops): Ditto. * tree-optimize.c: Include cfgloop.h. (execute_todo): Choose whether to call cleanup_tree_cfg or cleanup_tree_cfg_loop. * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables, (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call. * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable cleanup_tree_cfg_loop call. * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function. (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support work on part of cfg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96232 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-loop-ivcanon.c')
-rw-r--r--gcc/tree-ssa-loop-ivcanon.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index 88fa967bf3b..ab21465953a 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -262,24 +262,23 @@ canonicalize_induction_variables (struct loops *loops)
{
unsigned i;
struct loop *loop;
+ bool changed = false;
for (i = 1; i < loops->num; i++)
{
loop = loops->parray[i];
if (loop)
- canonicalize_loop_induction_variables (loops, loop, true, false, true);
+ changed |= canonicalize_loop_induction_variables (loops, loop,
+ true, false, true);
}
/* Clean up the information about numbers of iterations, since brute force
evaluation could reveal new information. */
scev_reset ();
-#if 0
- /* The necessary infrastructure is not in yet. */
if (changed)
cleanup_tree_cfg_loop ();
-#endif
}
/* Unroll LOOPS completely if they iterate just few times. */
@@ -307,9 +306,6 @@ tree_unroll_loops_completely (struct loops *loops)
unrolling might have invalidated it. */
scev_reset ();
-#if 0
- /* The necessary infrastructure is not in yet. */
if (changed)
cleanup_tree_cfg_loop ();
-#endif
}