diff options
author | Jan Hubicka <jh@suse.cz> | 2002-01-14 20:21:21 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-01-14 19:21:21 +0000 |
commit | b90e45aed287fbba1e7baf0b1e39107f85756793 (patch) | |
tree | edcef36f6f8778a85e7afe9512165986df634e90 /gcc | |
parent | 8377288b4f5b6472e11d3363e535bf2b5ef0a266 (diff) | |
download | gcc-b90e45aed287fbba1e7baf0b1e39107f85756793.zip gcc-b90e45aed287fbba1e7baf0b1e39107f85756793.tar.gz gcc-b90e45aed287fbba1e7baf0b1e39107f85756793.tar.bz2 |
cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite threaded loop.
* cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
threaded loop.
From-SVN: r48837
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 5 | ||||
-rw-r--r-- | gcc/toplev.c | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bed8af0..e95275f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 14 20:18:19 CET 2002 Jan Hubicka <jh@suse.cz> + + * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite + threaded loop. + 2002-01-14 Tom Rix <trix@redhat.com> * config/rs6000/rs6000.md: Fix typo with sradi. diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 5015c81..13c5a8e 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -426,7 +426,10 @@ try_forward_edges (mode, b) if (threaded_edges[i] == t) break; if (i < nthreaded_edges) - break; + { + counter = n_basic_blocks; + break; + } } /* Detect an infinite loop across the start block. */ diff --git a/gcc/toplev.c b/gcc/toplev.c index 5d58ead..e8b6102 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2810,6 +2810,7 @@ rest_of_compilation (decl) find_basic_blocks (insns, max_reg_num (), rtl_dump_file); cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP); tem = gcse_main (insns, rtl_dump_file); + rebuild_jump_labels (insns); save_csb = flag_cse_skip_blocks; save_cfj = flag_cse_follow_jumps; |