diff options
author | Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> | 2003-10-08 00:14:07 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2003-10-07 22:14:07 +0000 |
commit | 3ed961a056fa188b2a709183fa66c91a558589b2 (patch) | |
tree | 5554435c6caa08e77bbf6bd4506512708e7215b0 /gcc/cfgloopmanip.c | |
parent | 1b288fecdeb9929c72515dd2471e4c7bec264d2a (diff) | |
download | gcc-3ed961a056fa188b2a709183fa66c91a558589b2.zip gcc-3ed961a056fa188b2a709183fa66c91a558589b2.tar.gz gcc-3ed961a056fa188b2a709183fa66c91a558589b2.tar.bz2 |
* cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
From-SVN: r72207
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r-- | gcc/cfgloopmanip.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index de1210c..ca50760 100644 --- a/gcc/cfgloopmanip.c +++ b/gcc/cfgloopmanip.c @@ -310,18 +310,22 @@ fix_irreducible_loops (basic_block from) } for (i = 0; i < n_edges; i++) - if (e->flags & EDGE_IRREDUCIBLE_LOOP) - { - if (!flow_bb_inside_loop_p (from->loop_father, e->dest)) - continue; + { + e = edges[i]; - e->flags &= ~EDGE_IRREDUCIBLE_LOOP; - if (TEST_BIT (on_stack, e->dest->index)) - continue; + if (e->flags & EDGE_IRREDUCIBLE_LOOP) + { + if (!flow_bb_inside_loop_p (from->loop_father, e->dest)) + continue; - SET_BIT (on_stack, e->dest->index); - stack[stack_top++] = e->dest; - } + e->flags &= ~EDGE_IRREDUCIBLE_LOOP; + if (TEST_BIT (on_stack, e->dest->index)) + continue; + + SET_BIT (on_stack, e->dest->index); + stack[stack_top++] = e->dest; + } + } free (edges); } |