diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-01 14:51:25 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-01 14:51:25 +0000 |
commit | f5b280d8dd04d3499456fd110aa88b96b1ab096d (patch) | |
tree | 8c3e80833e54b539f74e427d3ba632104604b561 /gcc | |
parent | 7abafbe17f9fe3bc157d75164b37767a8fa50b55 (diff) | |
download | gcc-f5b280d8dd04d3499456fd110aa88b96b1ab096d.tar.gz |
* tree-cfg.c (cleanup_tree_cfg): Pull a call to
cleanup_control_flow() out of the while loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88395 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-cfg.c | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d7d99a7887c..9b4c512add6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-10-01 Kazu Hirata <kazu@cs.umass.edu> + + * tree-cfg.c (cleanup_tree_cfg): Pull a call to + cleanup_control_flow() out of the while loop. + 2004-10-01 Paolo Bonzini <bonzini@gnu.org> * tree-vectorizer.c (vectorizable_operation): Fail unless diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 025e677c396..72f73784d60 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 (); |