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);
ir_node *get_Mux_true (ir_node *node);
void set_Mux_true (ir_node *node, ir_node *ir_true);
+/**
+ * Projection numbers for result of CopyB node: use for Proj nodes!
+ */
+typedef enum {
+ pn_CopyB_M_regular = pn_Call_M_regular, /**< The memory result. */
+ pn_CopyB_X_except = pn_Call_X_except, /**< The control flow result branching to the exception handler */
+ pn_CopyB_M_except = pn_Call_M_except, /**< The memory result in case the runtime function terminated with
+ an exception */
+ pn_CopyB_max = pn_Call_max /**< number of projections from a CopyB */
+} pn_CopyB; /* Projection numbers for CopyB. */
+#define pn_CopyB_M pn_CopyB_M_regular
+
+ir_node *get_CopyB_mem (ir_node *node);
+void set_CopyB_mem (ir_node *node, ir_node *mem);
+ir_node *get_CopyB_dst (ir_node *node);
+void set_CopyB_dst (ir_node *node, ir_node *dst);
+ir_node *get_CopyB_src (ir_node *node);
+void set_CopyB_src (ir_node *node, ir_node *src);
+type *get_CopyB_type(ir_node *node);
+void set_CopyB_type(ir_node *node, type *data_type);
/*
*
/** 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
*/
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 **/