Commit 88e24a5a by Richard Henderson Committed by Richard Henderson

tree-cfg.c (split_edge_bb_loc): Don't disallow placement at dest_prev if the edge is complex.

* tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
        dest_prev if the edge is complex.

From-SVN: r151606
parent 40a32862
2009-09-10 Richard Henderson <rth@redhat.com>
* tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
dest_prev if the edge is complex.
* tree-cfg.c (is_ctrl_stmt): Use a switch.
* tree-cfg.c (gimple_can_merge_blocks_p): Move label and
......
......@@ -2981,11 +2981,15 @@ static basic_block
split_edge_bb_loc (edge edge_in)
{
basic_block dest = edge_in->dest;
basic_block dest_prev = dest->prev_bb;
if (dest->prev_bb && find_edge (dest->prev_bb, dest))
return edge_in->src;
else
return dest->prev_bb;
if (dest_prev)
{
edge e = find_edge (dest_prev, dest);
if (e && !(e->flags & EDGE_COMPLEX))
return edge_in->src;
}
return dest_prev;
}
/* Split a (typically critical) edge EDGE_IN. Return the new block.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment