Go to the documentation of this file.
26 #ifndef FIRM_IR_IREDGES_H
27 #define FIRM_IR_IREDGES_H
66 #define foreach_out_edge_kind(irn, edge, kind) \
67 for (ir_edge_t const *edge = get_irn_out_edge_first_kind(irn, kind); edge; edge = get_irn_out_edge_next(irn, edge))
77 #define foreach_out_edge_kind_safe(irn, edge, kind) \
78 for (ir_edge_t const *edge = get_irn_out_edge_first_kind((irn), (kind)), *edge##__next; \
79 edge ? edge##__next = get_irn_out_edge_next((irn), edge), 1 : (edge##__next = NULL, 0); \
85 #define foreach_out_edge(irn, edge) foreach_out_edge_kind(irn, edge, EDGE_KIND_NORMAL)
90 #define foreach_out_edge_safe(irn, edge) foreach_out_edge_kind_safe(irn, edge, EDGE_KIND_NORMAL)
95 #define foreach_block_succ(bl, edge) foreach_out_edge_kind(bl, edge, EDGE_KIND_BLOCK)
186 unsigned assert_on_problem);
189 #define edges_reroute(old, nw) edges_reroute_kind(old, nw, EDGE_KIND_NORMAL)
191 #define edges_activated(irg) (edges_activated_kind(irg, EDGE_KIND_NORMAL) && edges_activated_kind(irg, EDGE_KIND_BLOCK))
193 #ifndef get_irn_n_edges
195 #define get_irn_n_edges(irn) get_irn_n_edges_kind(irn, EDGE_KIND_NORMAL)
198 #ifndef get_irn_out_edge_first
200 #define get_irn_out_edge_first(irn) get_irn_out_edge_first_kind(irn, EDGE_KIND_NORMAL)
203 #ifndef get_block_succ_first
205 #define get_block_succ_first(irn) get_irn_out_edge_first_kind(irn, EDGE_KIND_BLOCK)
208 #ifndef get_block_succ_next
210 #define get_block_succ_next(irn, last) get_irn_out_edge_next(irn, last)