aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorMichael Hayes <mhayes@cygnus.com>2000-09-26 10:03:47 +0000
committerMichael Hayes <m.hayes@gcc.gnu.org>2000-09-26 10:03:47 +0000
commitef120fc0497b70180caf53e40eb1ea3eb00e0507 (patch)
tree8c97a1a987be7a566bc8e792e16ab8837b5d1bbe /gcc/flow.c
parent368d0da8648f7a8c8333992a1f7a3b5fec25e92a (diff)
downloadgcc-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.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 9eef244..b913c6e 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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;