* Alternative algorithm for computing extended basic blocks (using out edges
* and execution frequencies)
*/
* Alternative algorithm for computing extended basic blocks (using out edges
* and execution frequencies)
*/
* Returns the number of block successors.
* we are interested only in 1, 2 and >2.
*/
* Returns the number of block successors.
* we are interested only in 1, 2 and >2.
*/
More than two successors means we have a jump table.
we cannot include a jump target into the current extended
basic block, so create a new one here.
*/
if (get_block_n_succs(block) > 2) {
More than two successors means we have a jump table.
we cannot include a jump target into the current extended
basic block, so create a new one here.
*/
if (get_block_n_succs(block) > 2) {
foreach_block_succ(block, edge) {
ir_node *succ = get_edge_src_irn(edge);
create_extblk(succ, env);
foreach_block_succ(block, edge) {
ir_node *succ = get_edge_src_irn(edge);
create_extblk(succ, env);
addto_extblk(extblk, best_succ);
mark_irn_visited(best_succ);
pick_successor(best_succ, extblk, env);
addto_extblk(extblk, best_succ);
mark_irn_visited(best_succ);
pick_successor(best_succ, extblk, env);
/* the end block needs a extbb assigned (even for endless loops) */
endblock = get_irg_end_block(irg);
/* the end block needs a extbb assigned (even for endless loops) */
endblock = get_irg_end_block(irg);
- for (block = extbb->link, i = 0; i < len; ++i) {
- ir_node *nblock = get_irn_link(block);
+ for (block = (ir_node*) extbb->link, i = 0; i < len; ++i) {
+ ir_node *nblock = (ir_node*) get_irn_link(block);