X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.h;h=48d41bd7520c785c8728e8e1299b0c2e7279d66f;hb=169fd803ea2ed08171113c1fd7ab4e528e1ebc26;hp=486430499eea5e1c7222631c3b2ad19f55965cbf;hpb=c2437b73e92f54be18dbd0b8a9cea6e81fe174cc;p=libfirm diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 486430499..48d41bd75 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -189,6 +189,7 @@ op_pin_state is_irn_pinned_in_irg (const ir_node *node); * * @param db Debug info. * @param irg IR-graph on with this new node should be constructed. + * @param block The block the new node belongs to * @param op The opcode of the new node. * @param mode The mode of the new node. * @param arity The arity of the new node, may be <0 if yet. @@ -444,8 +445,9 @@ typedef enum { Type_or_id_p is entity *. */ } symconst_kind; -/** SymConst attributes - This union contains the symbolic information represented by the node */ +/** SymConst attribute. + * + * This union contains the symbolic information represented by the node. */ union symconst_symbol { type *type_p; ident *ident_p; @@ -650,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); @@ -985,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 @@ -1022,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 **/