* of nodes, it's just a big graph.
*/
+/**
+ * Checks whether a pointer points to a ir node.
+ *
+ * @param thing an arbitrary pointer
+ *
+ * @return
+ * true if the thing is a ir mode, else false
+ */
+int
+is_ir_node (void *thing);
+
/** returns the number of predecessors without the block predecessor: */
int get_irn_arity (const ir_node *node);
/* get_irn_n removes Id predecessors. */
INLINE ir_node *get_irn_n (ir_node *node, int n);
INLINE void set_irn_n (ir_node *node, int n, ir_node *in);
+/** Sets the mode struct of node */
+INLINE void set_irn_mode (ir_node *node, ir_mode *mode);
/** Gets the mode struct. */
INLINE ir_mode *get_irn_mode (const ir_node *node);
/** Gets the mode-enum modecode. */
/* For unary and binary arithmetic operations the access to the
operands can be factored out. Left is the first, right the
second arithmetic value as listed in tech report 1999-44.
- unops are: Minus, Abs, Not, Conv
+ unops are: Minus, Abs, Not, Conv, Cast
binops are: Add, Sub, Mul, Quot, DivMod, Div, Mod, And, Or, Eor, Shl,
Shr, Shrs, Rot, Cmp */
INLINE int is_unop (ir_node *node);
INLINE ir_node *get_Conv_op (ir_node *node);
INLINE void set_Conv_op (ir_node *node, ir_node *op);
+INLINE ir_node *get_Cast_op (ir_node *node);
+INLINE void set_Cast_op (ir_node *node, ir_node *op);
+INLINE type *get_Cast_type (ir_node *node);
+INLINE void set_Cast_type (ir_node *node, type *to_tp);
+
INLINE ir_node **get_Phi_preds_arr (ir_node *node);
INLINE int get_Phi_n_preds (ir_node *node);
INLINE ir_node *get_Phi_pred (ir_node *node, int pos);
/* !!!!!!!!! @@@
Don't format with "\", firmjni gets problems */
/** Output location */
-#define DDM(X) printf("%s(l.%i).\n", __MYFUNC__, __LINE__);
+#define DDM printf("%s(l.%i).\n", __MYFUNC__, __LINE__);
/** Output the firm kind of the node */
#define DDMK(X) printf("%s(l.%i) %s: %p\n", __MYFUNC__, __LINE__, print_firm_kind(X), (X));
/** Output information about a node */
/** Output information about a type */
#define DDMT(X) printf("%s(l.%i) %s %s: %ld (%p)\n", __MYFUNC__, __LINE__, get_type_tpop_name(X), get_type_name(X), get_type_nr(X), (X))
/** Output information about an entity */
-#define DDME(X) printf("%s(l.%i) %s: %ld (%p\n", __MYFUNC__, __LINE__, get_entity_name(X), get_entity_nr(X), (X))
+#define DDME(X) printf("%s(l.%i) %s: %ld (%p)\n", __MYFUNC__, __LINE__, get_entity_name(X), get_entity_nr(X), (X))
/** Output information about an entity and its owner */
#define DDMEO(X) printf("%s(l.%i) %s (own: %s): %ld (%p)\n", __MYFUNC__, __LINE__, get_entity_name(X), get_type_name(get_entity_owner(X)), get_entity_nr(X), (X))
/** Output information about a graph */