diff options
author | Zdenek Dvorak <ook@ucw.cz> | 2007-08-01 13:39:31 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-08-01 11:39:31 +0000 |
commit | 592c303da820745055bf6fd1521e2b2bf1318652 (patch) | |
tree | 589e7c2e94dc0f61c32b953370ab9b08162f79ad /gcc/tree-predcom.c | |
parent | 46cb04410da4ba4fa10070a0eec7a037ff6152a7 (diff) | |
download | gcc-592c303da820745055bf6fd1521e2b2bf1318652.zip gcc-592c303da820745055bf6fd1521e2b2bf1318652.tar.gz gcc-592c303da820745055bf6fd1521e2b2bf1318652.tar.bz2 |
tree-ssa-threadupdate.c (thread_through_all_blocks): Record that the loop structures may need fixing.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
the loop structures may need fixing.
* tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
New functions.
(cleanup_tree_cfg_loop): Removed.
(cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
* tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
instead of running cleanup_tree_cfg_loop.
* cfgloop.h (LOOPS_NEED_FIXUP): New constant.
* tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
(tree_predictive_commoning): Declaration changed.
* passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
From-SVN: r127118
Diffstat (limited to 'gcc/tree-predcom.c')
-rw-r--r-- | gcc/tree-predcom.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c index caf0501..fcf4291 100644 --- a/gcc/tree-predcom.c +++ b/gcc/tree-predcom.c @@ -2582,12 +2582,13 @@ end: ; /* Runs predictive commoning. */ -void +unsigned tree_predictive_commoning (void) { bool unrolled = false; struct loop *loop; loop_iterator li; + unsigned ret = 0; initialize_original_copy_tables (); FOR_EACH_LOOP (li, loop, LI_ONLY_INNERMOST) @@ -2598,7 +2599,9 @@ tree_predictive_commoning (void) if (unrolled) { scev_reset (); - cleanup_tree_cfg_loop (); + ret = TODO_cleanup_cfg; } free_original_copy_tables (); + + return ret; } |