+
+ hook_liveness_info.hook._hook_node_info = dump_liveness_info_hook;
+ register_hook(hook_node_info, &hook_liveness_info);
+}
+
+/**
+ * Edge hook to dump the schedule edges.
+ */
+static void sched_edge_hook(FILE *F, const ir_node *irn)
+{
+ ir_graph *irg = get_irn_irg(irn);
+ if (!irg_is_constrained(irg, IR_GRAPH_CONSTRAINT_BACKEND))
+ return;
+
+ if (is_Proj(irn) || is_Block(irn) || !sched_is_scheduled(irn))
+ return;
+
+ ir_node *const prev = sched_prev(irn);
+ if (!sched_is_begin(prev)) {
+ fprintf(F, "edge:{sourcename: ");
+ print_nodeid(F, irn);
+ fprintf(F, " targetname: ");
+ print_nodeid(F, prev);
+ fprintf(F, " color:magenta}\n");
+ }