edge ae;
basic_block *rem_bbs, *bord_bbs, from, bb;
VEC (basic_block, heap) *dom_bbs;
- int i, nrem, n_bord_bbs, nreml;
+ int i, nrem, n_bord_bbs;
sbitmap seen;
bool irred_invalidated = false;
- struct loop **deleted_loop;
if (!can_remove_branch_p (e))
return false;
dom_bbs = NULL;
/* Cancel loops contained in the path. */
- deleted_loop = XNEWVEC (struct loop *, nrem);
- nreml = 0;
for (i = 0; i < nrem; i++)
if (rem_bbs[i]->loop_father->header == rem_bbs[i])
- deleted_loop[nreml++] = rem_bbs[i]->loop_father;
-
- for (i = 0; i < nreml; i++)
- cancel_loop_tree (deleted_loop[i]);
- free (deleted_loop);
+ cancel_loop_tree (rem_bbs[i]->loop_father);
remove_bbs (rem_bbs, nrem);
free (rem_bbs);
create_empty_if_region_on_edge (edge entry_edge, tree condition)
{
- basic_block succ_bb, cond_bb, true_bb, false_bb, join_bb;
+ basic_block cond_bb, true_bb, false_bb, join_bb;
edge e_true, e_false, exit_edge;
gimple cond_stmt;
tree simple_cond;
gimple_stmt_iterator gsi;
- succ_bb = entry_edge->dest;
cond_bb = split_edge (entry_edge);
/* Insert condition in cond_bb. */
{
basic_block loop_header, loop_latch, succ_bb, pred_bb;
struct loop *loop;
- int freq;
- gcov_type cnt;
gimple_stmt_iterator gsi;
gimple_seq stmts;
gimple cond_expr;
add_loop (loop, outer);
/* TODO: Fix frequencies and counts. */
- freq = EDGE_FREQUENCY (entry_edge);
- cnt = entry_edge->count;
-
prob = REG_BR_PROB_BASE / 2;
scale_loop_frequencies (loop, REG_BR_PROB_BASE - prob, REG_BR_PROB_BASE);