Typo fixed.
[libfirm] / ir / ir / irnode.h
index 1cc7517..aa11d37 100644 (file)
@@ -82,6 +82,17 @@ typedef struct ir_node ir_node;
  *   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);
 
@@ -102,6 +113,8 @@ INLINE void          set_irn_in            (ir_node *node, int arity,
 /* 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. */
@@ -340,7 +353,7 @@ void set_CallBegin_call (ir_node *node, ir_node *call);
 /* 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);
@@ -450,6 +463,11 @@ INLINE void     set_Rot_right (ir_node *node, ir_node *right);
 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);
@@ -576,7 +594,7 @@ ir_node *get_fragile_op_mem(ir_node *node);
 /* !!!!!!!!! @@@
    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 */
@@ -586,7 +604,7 @@ ir_node *get_fragile_op_mem(ir_node *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 */