X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.h;h=48d41bd7520c785c8728e8e1299b0c2e7279d66f;hb=169fd803ea2ed08171113c1fd7ab4e528e1ebc26;hp=51f8b4433094b33905f378eb38b325e2cd1b03d0;hpb=d2fcfcbc2d25efdc92f86a88d37be33df710aae1;p=libfirm diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 51f8b4433..48d41bd75 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -652,7 +652,8 @@ void set_Div_mem (ir_node *node, ir_node *mem); typedef enum { pn_Div_M, /**< Memory result. */ pn_Div_X_except, /**< Execution result if exception occurred. */ - pn_Div_res /**< Result of computation. */ + pn_Div_res, /**< Result of computation. */ + pn_Div_max /**< number of projections from a Div */ } pn_Div; /* Projection numbers for Div. */ ir_node *get_Mod_left (ir_node *node); @@ -987,13 +988,34 @@ ir_node *get_fragile_op_mem(ir_node *node); /** Returns true if the operation is a forking control flow * operation: Cond. */ -int is_forking_op(const ir_node *node); +int is_irn_forking(const ir_node *node); /** Return the type associated with the value produced by n * if the node remarks this type as it is the case for * Cast, Const, SymConst and some Proj nodes. */ type *get_irn_type(ir_node *n); +/** Returns non-zero for constant-like nodes. */ +int is_irn_constlike(const ir_node *node); + +/** + * A type to express conditional jump predictions. + */ +typedef enum { + COND_JMP_PRED_NONE, /**< No jump prediction. Default. */ + COND_JMP_PRED_TRUE, /**< The True case is predicted. */ + COND_JMP_PRED_FALSE /**< The False case is predicted. */ +} cond_jmp_predicate; + +/** Gets the string representation of the jump prediction .*/ +const char *get_cond_jmp_predicate_name(cond_jmp_predicate pred); + +/** Returns the conditional jump prediction of a Cond node. */ +cond_jmp_predicate get_Cond_jmp_pred(ir_node *cond); + +/** Sets a new conditional jump prediction. */ +void set_Cond_jmp_pred(ir_node *cond, cond_jmp_predicate pred); + /** * Access custom node data. * The data must have been registered with @@ -1024,6 +1046,11 @@ type *get_irn_type(ir_node *n); */ unsigned register_additional_node_data(unsigned size); +/** + * Return a pointer to the node attributes. + * Needed for user-defined nodes. + */ +void *get_irn_generic_attr(ir_node *node); /*-----------------------------------------------------------------*/ /** Debug aides **/