+
+void
+dump_blockless_nodes (ir_node *n, void *env) {
+ if (is_no_Block(n) && get_irn_op(get_nodes_Block(n)) == op_Bad) {
+ dump_node(n);
+ dump_ir_data_edges(n);
+ dump_ir_block_edge(n);
+ }
+ if (get_irn_op(n) == op_Bad)
+ Bad_dumped = 1;
+}
+
+void dump_ir_block_graph_2 (ir_graph *irg)
+{
+ Bad_dumped = 0;
+ /* walk over the blocks in the graph */
+ irg_block_walk(irg->end, dump_ir_block, NULL, irg);
+
+ /* dump all nodes that are not in a Block */
+ irg_walk(irg->end, dump_blockless_nodes, NULL, NULL);
+
+ /* dump the Bad node */
+ if (!Bad_dumped)
+ dump_node(get_irg_bad(irg));
+}
+