statements in it. */
make_edge (ENTRY_BLOCK_PTR, BASIC_BLOCK (0), EDGE_FALLTHRU);
- /* Traverse basic block array placing edges. */
+ /* Traverse the basic block array placing edges. */
FOR_EACH_BB (bb)
{
tree first = first_stmt (bb);
then_clause = COND_EXPR_THEN (*stmt_p);
else_clause = COND_EXPR_ELSE (*stmt_p);
- cond = COND_EXPR_COND (*stmt_p);
+ cond = fold (COND_EXPR_COND (*stmt_p));
/* If neither arm does anything at all, we can remove the whole IF. */
if (!TREE_SIDE_EFFECTS (then_clause) && !TREE_SIDE_EFFECTS (else_clause))
append_to_statement_list (stmt, &PENDING_STMT (e));
}
-/* Similar to bsi_insert_on_edge+bsi_commit_edge_inserts. If new block has to
- be created, it is returned. */
+/* Similar to bsi_insert_on_edge+bsi_commit_edge_inserts. If a new
+ block has to be created, it is returned. */
basic_block
bsi_insert_on_edge_immediate (edge e, tree stmt)
return false;
}
-/* Removes forwarder block BB. Returns false if this failed. If new
+/* Removes forwarder block BB. Returns false if this failed. If a new
forwarder block is created due to redirection of edges, it is
stored to worklist. */