diff options
| author | Kazu Hirata <kazu@cs.umass.edu> | 2004-10-01 14:51:25 +0000 |
|---|---|---|
| committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-10-01 14:51:25 +0000 |
| commit | 8f28be81e32a7117e0848bb8559e90376570e4d2 (patch) | |
| tree | 8c3e80833e54b539f74e427d3ba632104604b561 /gcc/tree-cfg.c | |
| parent | 5f90fc47705947e0dff9bb7676787d3e9c44b016 (diff) | |
| download | gcc-8f28be81e32a7117e0848bb8559e90376570e4d2.zip gcc-8f28be81e32a7117e0848bb8559e90376570e4d2.tar.gz gcc-8f28be81e32a7117e0848bb8559e90376570e4d2.tar.bz2 | |
tree-cfg.c (cleanup_tree_cfg): Pull a call to cleanup_control_flow() out of the while loop.
* tree-cfg.c (cleanup_tree_cfg): Pull a call to
cleanup_control_flow() out of the while loop.
From-SVN: r88395
Diffstat (limited to 'gcc/tree-cfg.c')
| -rw-r--r-- | gcc/tree-cfg.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 025e677..72f7378 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -717,16 +717,22 @@ cleanup_tree_cfg (void) timevar_push (TV_TREE_CLEANUP_CFG); - /* These three transformations can cascade, so we iterate on them until + retval = cleanup_control_flow (); + + /* These two transformations can cascade, so we iterate on them until nothing changes. */ while (something_changed) { - something_changed = cleanup_control_flow (); - something_changed |= delete_unreachable_blocks (); + something_changed = delete_unreachable_blocks (); something_changed |= thread_jumps (); retval |= something_changed; } +#ifdef ENABLE_CHECKING + if (retval) + gcc_assert (!cleanup_control_flow ()); +#endif + /* Merging the blocks creates no new opportunities for the other optimizations, so do it here. */ merge_seq_blocks (); |
