X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbesched.h;h=398232f8f68e49361219ab4bb5f25cc2086e75df;hb=288b414e4d82e0aa0d4b4348d8c387db02142cdb;hp=5352f5ee1bb985e9ced97f258921cda3584bbad6;hpb=a824d376c1c37f80c7e1ebd6304665380d28fc5f;p=libfirm diff --git a/ir/be/besched.h b/ir/be/besched.h index 5352f5ee1..398232f8f 100644 --- a/ir/be/besched.h +++ b/ir/be/besched.h @@ -48,13 +48,13 @@ ir_node *sched_next(const ir_node *irn); ir_node *sched_prev(const ir_node *irn); ir_node *sched_first(const ir_node *block); ir_node *sched_last(const ir_node *block); -void sched_add_before(const ir_node *before, const ir_node *irn); -void sched_add_after(const ir_node *after, const ir_node *irn); -void sched_init_block(const ir_node *block); -void sched_reset(const ir_node *node); -void sched_remove(const ir_node *irn); +void sched_add_before(ir_node *before, ir_node *irn); +void sched_add_after(ir_node *after, ir_node *irn); +void sched_init_block(ir_node *block); +void sched_reset(ir_node *node); +void sched_remove(ir_node *irn); -#define sched_is_end(irn) is_Block(irn) +#define sched_is_end(irn) is_Block(irn) #define sched_is_begin(irn) is_Block(irn) #define sched_foreach_from(from, irn) \ @@ -79,6 +79,14 @@ void sched_remove(const ir_node *irn); #define sched_foreach_reverse(block,irn) \ sched_foreach_reverse_from(sched_last(block), irn) +/** + * A shorthand macro for iterating over all Phi nodes of a schedule. + * @param block The block. + * @param phi A ir node pointer used as an iterator. + */ +#define sched_foreach_Phi(block,phi) \ + for (phi = sched_first(block); is_Phi(phi); phi = sched_next(phi)) + /** * Removes dead nodes from schedule * @param irg the graph