Turn if cascade into switch.
[libfirm] / ir / be / besched.h
index 9ef2f53..7c83f66 100644 (file)
@@ -22,7 +22,6 @@
  * @brief       data structures for scheduling nodes in basic blocks.
  *              (This file does not contain the scheduling algorithms)
  * @author      Sebastian Hack, Matthias Braun
- * @version     $Id$
  */
 #ifndef FIRM_BE_BESCHED_H
 #define FIRM_BE_BESCHED_H
@@ -52,8 +51,8 @@ static inline bool sched_is_scheduled(const ir_node *irn)
 }
 
 /**
- * returns the time step of a node. Each node in a block has a timestep
- * unique to that block. a node schedule before another node has a lower
+ * Returns the time step of a node. Each node in a block has a timestep
+ * unique to that block. A node schedule before another node has a lower
  * timestep than this node.
  * @param irn The node.
  * @return The time step in the schedule.
@@ -228,4 +227,19 @@ static inline bool sched_comes_after(const ir_node *n1, const ir_node *n2)
 #define sched_foreach_Phi(block,phi) \
        for (phi = sched_first(block); is_Phi(phi); phi = sched_next(phi))
 
+/**
+ * Type for a function scheduling a graph
+ */
+typedef void (*schedule_func) (ir_graph *irg);
+
+/**
+ * Register new scheduling algorithm
+ */
+void be_register_scheduler(const char *name, schedule_func func);
+
+/**
+ * schedule a graph with the currenty selected scheduler.
+ */
+void be_schedule_graph(ir_graph *irg);
+
 #endif