diff options
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index ce66e2a..bb832d2 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -905,21 +905,10 @@ combine_blocks (struct loop *loop) continue; /* It is time to remove this basic block. First remove edges. */ - while (EDGE_COUNT (bb->preds) > 0) - remove_edge (EDGE_PRED (bb, 0)); - - /* This is loop latch and loop does not have exit then do not - delete this basic block. Just remove its PREDS and reconnect - loop->header and loop->latch blocks. */ - if (bb == loop->latch && loop->num_exits == 0) - { - make_edge (loop->header, loop->latch, EDGE_FALLTHRU); - set_immediate_dominator (CDI_DOMINATORS, loop->latch, loop->header); - continue; - } - while (EDGE_COUNT (bb->succs) > 0) remove_edge (EDGE_SUCC (bb, 0)); + while (EDGE_COUNT (bb->preds) > 0) + remove_edge (EDGE_PRED (bb, 0)); /* Remove labels and make stmts member of loop->header. */ for (bsi = bsi_start (bb); !bsi_end_p (bsi); ) |