foreach_out_edge(irn, edge) {
ir_node *user = get_edge_src_irn(edge);
- if (to_appear_in_schedule(user) || get_irn_mode(user) == mode_b)
+ if ((to_appear_in_schedule(user) || get_irn_mode(user) == mode_b) &&
+ get_irn_n_edges(user) > 0)
+ {
notified_sched_add_before(env, block, user, cycle);
+ }
check_for_keeps(keeps, block, user);
}