*/
void sched_remove(ir_node *irn);
+/**
+ * Remove @p old from the schedule and put @p irn in its place.
+ */
+void sched_replace(ir_node *old, ir_node *irn);
+
/**
* Checks, if one node is scheduled before another.
* @param n1 A node.
*/
static inline bool sched_comes_after(const ir_node *n1, const ir_node *n2)
{
- assert(sched_is_scheduled(n1));
- assert(sched_is_scheduled(n2));
assert((is_Block(n1) ? n1 : get_nodes_block(n1)) == (is_Block(n2) ? n2 : get_nodes_block(n2)));
return sched_get_time_step(n1) < sched_get_time_step(n2);
}