- if(get_irg_start_block(get_irn_irg(block)) != block) {
- for(i = 0, n = get_irn_arity(block); i < n; ++i) {
- ir_node *pred_bl = get_nodes_block(get_irn_n(block, i));
- ir_fprintf(f, "edge:{sourcename:\"b%N\" targetname:\"b%N\"}\n", pred_bl, block);
- }
+void dump_ir_block_graph_sched(ir_graph *irg, const char *suffix)
+{
+ DUMP_NODE_EDGE_FUNC old = get_dump_node_edge_hook();
+
+ dump_consts_local(0);
+ if (have_sched_info(irg))
+ set_dump_node_edge_hook(sched_edge_hook);
+ dump_ir_block_graph(irg, suffix);
+ set_dump_node_edge_hook(old);
+}
+
+void dump_ir_extblock_graph_sched(ir_graph *irg, const char *suffix)
+{
+ DUMP_NODE_EDGE_FUNC old = get_dump_node_edge_hook();
+
+ dump_consts_local(0);
+ if (have_sched_info(irg))
+ set_dump_node_edge_hook(sched_edge_hook);
+ dump_ir_extblock_graph(irg, suffix);
+ set_dump_node_edge_hook(old);
+}
+
+/**
+ * Dumps a graph and numbers all dumps.
+ * @param irg The graph
+ * @param suffix A suffix to its file name.
+ * @param dumper The dump function
+ */
+void be_dump(ir_graph *irg, const char *suffix, void (*dumper)(ir_graph *, const char *))
+{
+ static ir_graph *last_irg = NULL;
+ static int nr = 0;
+ char buf[128];
+
+ if (irg != last_irg) {
+ last_irg = irg;
+ nr = strcmp(suffix, "-abi") ? 0 : 1;