+ ir_extblk *extbb = get_Block_extbb(leader_block);
+ if(extbb_visited(extbb))
+ return;
+ mark_extbb_visited(extbb);
+
+ for(i = 0; i < get_extbb_n_blocks(extbb); ++i) {
+ block = get_extbb_block(extbb, i);
+ add_block(list, block);
+ }
+
+ assert(block != NULL);
+
+ // pick successor extbbs
+ foreach_block_succ(block, edge) {
+ ir_node *succ = get_edge_src_irn(edge);
+
+ create_block_list(succ, list);
+ }
+
+ for(i = 0; i < get_extbb_n_blocks(extbb) - 1; ++i) {
+ block = get_extbb_block(extbb, i);
+ foreach_block_succ(block, edge) {
+ ir_node *succ = get_edge_src_irn(edge);
+
+ create_block_list(succ, list);
+ }