diff options
Diffstat (limited to 'gcc/tree-ssa-threadupdate.c')
-rw-r--r-- | gcc/tree-ssa-threadupdate.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index e72598d830e..f6bf1db7324 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -802,22 +802,20 @@ thread_block (basic_block bb) Returns true if one or more edges were threaded, false otherwise. */ bool -thread_through_all_blocks (void) +thread_through_all_blocks (bitmap threaded_blocks) { - basic_block bb; bool retval = false; + unsigned int i; + bitmap_iterator bi; rediscover_loops_after_threading = false; - FOR_EACH_BB (bb) + EXECUTE_IF_SET_IN_BITMAP (threaded_blocks, 0, i, bi) { - if (bb_ann (bb)->incoming_edge_threaded - && EDGE_COUNT (bb->preds) > 0) - { - retval |= thread_block (bb); - bb_ann (bb)->incoming_edge_threaded = false; - - } + basic_block bb = BASIC_BLOCK (i); + + if (EDGE_COUNT (bb->preds) > 0) + retval |= thread_block (bb); } return retval; |