From: Michael Hayes Date: Tue, 26 Sep 2000 10:03:47 +0000 (+0000) Subject: flow.c (flow_loop_pre_header_scan): Punt if loop enters from entry block. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ef120fc0497b70180caf53e40eb1ea3eb00e0507;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aeba67f9301..8c8b234a145 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-09-26 Michael Hayes + + * flow.c (flow_loop_pre_header_scan): Punt if loop enters + from entry block. + 2000-09-25 Jim Wilson * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS. diff --git a/gcc/flow.c b/gcc/flow.c index 9eef2442d80..b913c6ea8c7 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;