diff options
author | Michael Hayes <mhayes@cygnus.com> | 2000-09-26 10:03:47 +0000 |
---|---|---|
committer | Michael Hayes <m.hayes@gcc.gnu.org> | 2000-09-26 10:03:47 +0000 |
commit | ef120fc0497b70180caf53e40eb1ea3eb00e0507 (patch) | |
tree | 8c97a1a987be7a566bc8e792e16ab8837b5d1bbe /gcc/flow.c | |
parent | 368d0da8648f7a8c8333992a1f7a3b5fec25e92a (diff) | |
download | gcc-ef120fc0497b70180caf53e40eb1ea3eb00e0507.zip gcc-ef120fc0497b70180caf53e40eb1ea3eb00e0507.tar.gz gcc-ef120fc0497b70180caf53e40eb1ea3eb00e0507.tar.bz2 |
flow.c (flow_loop_pre_header_scan): Punt if loop enters from entry block.
* flow.c (flow_loop_pre_header_scan): Punt if loop enters
from entry block.
From-SVN: r36644
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -7869,12 +7869,16 @@ flow_loop_pre_header_scan (loop) sbitmap_zero (loop->pre_header_trace); ebb = loop->entry_edges[0]->src; - SET_BIT (loop->pre_header_trace, ebb->index); - while (ebb->pred->src != ENTRY_BLOCK_PTR - && ! ebb->pred->pred_next) + + if (ebb != ENTRY_BLOCK_PTR) { - ebb = ebb->pred->src; SET_BIT (loop->pre_header_trace, ebb->index); + while (ebb->pred->src != ENTRY_BLOCK_PTR + && ! ebb->pred->pred_next) + { + ebb = ebb->pred->src; + SET_BIT (loop->pre_header_trace, ebb->index); + } } loop->pre_header_root = ebb; |