+ ir_node *cf_op = skip_Proj(get_Block_cfgpred(block, 0));
+
+ if (irn_not_visited(cf_op)) {
+ ir_node *pred_bl = get_nodes_block(cf_op);
+ if (get_block_n_succs(pred_bl) > 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.
+ */
+ allocate_extblk(block, env);
+ } else {
+ /* either the previous block has only one successor or
+ * this is the first successor after an if, include it.
+ */
+ set_Block_extbb(block, NULL);
+ }
+ mark_irn_visited(cf_op);
+ } else {
+ /* already marked, so begin a new extended block here */
+ allocate_extblk(block, env);
+ }