+ sched_info_t *info = get_irn_sched_info(curr);
+ ir_fprintf(f, "\t%6d: %+F\n", info->time_step, curr);
+ }
+}
+
+void be_sched_dump(FILE *f, ir_graph *irg)
+{
+ irg_block_walk_graph(irg, block_sched_dumper, NULL, f);
+}
+
+/* Init the scheduling stuff. */
+void be_init_sched(void)
+{
+ sched_irn_data_offset = firm_register_additional_node_data(sizeof(sched_info_t));
+}
+
+BE_REGISTER_MODULE_CONSTRUCTOR(be_init_sched);
+
+void sched_renumber(const ir_node *block)
+{
+ ir_node *irn;
+ sched_info_t *inf;
+ sched_timestep_t step = SCHED_INITIAL_GRANULARITY;
+
+ sched_foreach(block, irn) {
+ inf = get_irn_sched_info(irn);
+ inf->time_step = step;
+ step += SCHED_INITIAL_GRANULARITY;