X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.h;h=ebdbf0aed1eedd05f5e55ba04c6ed34c23490c70;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=0e58616748e13fab4c14396c2781b1dd1b09ed2e;hpb=b8dbf835753fe9cecd9d6106034ececa3c3ef148;p=libfirm diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 0e5861674..ebdbf0aed 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -132,6 +132,8 @@ opcode get_irn_opcode (const ir_node *node); const char *get_irn_opname (const ir_node *node); /** Get the ident for a string representation of the opcode. */ ident *get_irn_opident (const ir_node *node); +/** If arg is an argument of the node, returns it's position, -1 otherwise */ +int get_irn_pred_pos (ir_node *node, ir_node *arg); /** Gets the visited counter of a node. */ unsigned long get_irn_visited (const ir_node *node); /** Sets the visited counter of a node. */ @@ -328,6 +330,9 @@ void add_End_keepalive (ir_node *end, ir_node *ka); /** Set the Keep alive node at position pos. */ void set_End_keepalive(ir_node *end, int pos, ir_node *ka); +/** Set new keep-alives */ +void set_End_keepalives(ir_node *end, int n, ir_node *in[]); + /** Some parts of the End node are allocated separately -- their memory is not recovered by dead_node_elimination if a End node is dead. free_End() frees these data structures. */ @@ -1093,6 +1098,21 @@ int is_irn_constlike(const ir_node *node); */ int is_irn_keep(const ir_node *node); +/** + * Returns non-zero for nodes that are machine operations. + */ +int is_irn_machine_op(const ir_node *node); + +/** + * Returns non-zero for nodes that are machine operands. + */ +int is_irn_machine_operand(const ir_node *node); + +/** + * Returns non-zero for nodes that have the n'th user machine flag set. + */ +int is_irn_machine_user(const ir_node *node, unsigned n); + /** * A type to express conditional jump predictions. */ @@ -1147,6 +1167,12 @@ unsigned register_additional_node_data(unsigned size); */ void *get_irn_generic_attr(ir_node *node); +/** + * Returns the unique node index for the node in its graph. + * This index is used to access phase information for this node. + */ +unsigned get_irn_idx(const ir_node *node); + /*-----------------------------------------------------------------*/ /** Debug aides **/ /*-----------------------------------------------------------------*/