X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firouts.h;h=5bf7cd6af25136d99ed9492f0c32add4a4521ebe;hb=d0d85962ef52c14950db90e5981a7bea36023ab3;hp=33644f81482767d3a9c29371b1ffd5f2bbdd35c0;hpb=5fe3be76b38c5c3f492d545f9e1a0c877328cda6;p=libfirm diff --git a/ir/ana/irouts.h b/ir/ana/irouts.h index 33644f814..5bf7cd6af 100644 --- a/ir/ana/irouts.h +++ b/ir/ana/irouts.h @@ -47,11 +47,19 @@ void set_irn_out (ir_node *node, int pos, ir_node *out); /* Methods to iterate through the control flow graph. Iterate from 0 to i < get_Block_cfg_outs(block). No order of successors guaranteed. */ -int get_Block_n_cfg_outs (ir_node *node); -/** Access predecessor n. */ +/** Return the number of control flow successors, ignore keep-alives. */ +int get_Block_n_cfg_outs (ir_node *node); + +/** Return the number of control flow successors, honor keep-alives. */ +int get_Block_n_cfg_outs_ka (ir_node *node); + +/** Access predecessor n, ignore keep-alives. */ ir_node *get_Block_cfg_out (ir_node *node, int pos); +/** Access predecessor n, honor keep-alives. */ +ir_node *get_Block_cfg_out_ka (ir_node *node, int pos); + /** Walks over the graph starting at node. Walks also if graph is in state "outs_inconsistent". Assumes current_ir_graph is set properly. */ void irg_out_walk(ir_node *node, @@ -74,8 +82,10 @@ void irg_out_block_walk(ir_node *node, out edges from block to floating nodes even if graph is in state "op_pin_state_floats". Optimizes Tuple nodes. */ void compute_irg_outs(ir_graph *irg); -#define compute_outs(irg) compute_irg_outs(irg) void compute_irp_outs(void); + +void assure_irg_outs(ir_graph *irg); + /** Computes the out edges in interprocedural view */ void compute_ip_outs(void); /** Frees the out datastructures. Sets the flag in irg to "outs_none". */