-int sched_skip_cf_predicator(const ir_node *irn, void *data)
-{
- (void)data;
- return is_cfop(irn);
-}
-
-int sched_skip_phi_predicator(const ir_node *irn, void *data)
-{
- (void) data;
- return is_Phi(irn);
-}
-
-/* Skip nodes in a schedule. */
-ir_node *sched_skip(ir_node *from, int forward, sched_predicator_t *predicator, void *data)
-{
- const ir_node *bl = get_block_const(from);
- ir_node *curr;
-
- if (forward) {
- if (is_Block(from))
- from = sched_next(from);
- for (curr = from; curr != bl && predicator(curr, data); curr = sched_next(curr)) {
+static inline void sched_set_time_stamp(const ir_node *irn)
+{
+ sched_info_t *info = get_irn_sched_info(irn);
+ const sched_info_t *prev_info = get_irn_sched_info(info->prev);
+ const sched_info_t *next_info = get_irn_sched_info(info->next);
+ sched_timestep_t before_ts = prev_info->time_step;
+ sched_timestep_t after_ts = next_info->time_step;
+
+ /*
+ * If we are the last, we can give us a big time step,
+ * else we have to compute our time step from our
+ * neighbours.
+ */
+ if(before_ts >= after_ts) {
+ info->time_step = before_ts + SCHED_INITIAL_GRANULARITY;
+ /* overflow? */
+ if (info->time_step <= before_ts) {
+ sched_renumber(get_nodes_block(irn));