added missing include, removed warning
[libfirm] / ir / ir / irnode_t.h
index 699d0b0..3814fa7 100644 (file)
@@ -133,8 +133,8 @@ typedef struct {
 
 /** InstOf attributes */
 typedef struct {
-  ir_type *ent;
-  int dfn;
+  except_attr    exc;           /**< the exception attribute. MUST be the first one. */
+  ir_type *type;                /**< the type of which the object pointer must be */
 } io_attr;
 
 /** Filter attributes */
@@ -152,19 +152,19 @@ typedef struct {
 
 /** CallBegin attributes */
 typedef struct {
-  ir_node * call;               /**< associated Call-operation */
+  ir_node * call;               /**< Associated Call-operation. */
 } callbegin_attr;
 
 /** Cast attributes */
 typedef struct {
-  ir_type *totype;              /**< type of the casted node */
+  ir_type *totype;              /**< Type of the casted node. */
 } cast_attr;
 
 /** Load attributes */
 typedef struct {
-  except_attr    exc;           /**< the exception attribute. MUST be the first one. */
-  ir_mode        *load_mode;    /**< the mode of this Load operation */
-  ent_volatility volatility;     /**< the volatility of a Load/Store operation */
+  except_attr    exc;           /**< The exception attribute. MUST be the first one. */
+  ir_mode        *load_mode;    /**< The mode of this Load operation. */
+  ent_volatility volatility;     /**< The volatility of a Load/Store operation. */
 } load_attr;
 
 /** Store attributes */
@@ -177,21 +177,21 @@ typedef pn_Cmp confirm_attr;    /**< Attribute to hold compare operation */
 
 /** CopyB attribute */
 typedef struct {
-  except_attr    exc;           /**< the exception attribute. MUST be the first one. */
-  ir_type        *data_type;    /**< type of the copied entity */
+  except_attr    exc;           /**< The exception attribute. MUST be the first one. */
+  ir_type        *data_type;    /**< Type of the copied entity. */
 } copyb_attr;
 
 /** Bound attribute */
 typedef struct {
-  except_attr    exc;           /**< the exception attribute. MUST be the first one. */
+  except_attr    exc;           /**< The exception attribute. MUST be the first one. */
 } bound_attr;
 
 /**
  * Edge info to put into an irn.
  */
 typedef struct _irn_edge_info_t {
-  struct list_head outs_head;  /**< The list of all outs */
-  int out_count;               /**< number of outs in the list */
+  struct list_head outs_head;  /**< The list of all outs. */
+  int out_count;               /**< Number of outs in the list. */
 } irn_edge_info_t;
 
 
@@ -250,7 +250,7 @@ struct ir_node {
   /* ------- For debugging ------- */
 #ifdef DEBUG_libfirm
        int out_valid;
-  int node_nr;             /**< a unique node number for each node to make output
+  long node_nr;            /**< a unique node number for each node to make output
                              readable. */
 #endif
   /* ------- For analyses -------- */
@@ -268,8 +268,12 @@ struct ir_node {
 };
 
 
-/** Returns the array with the ins.  The content of the array may not be
-   changed.  */
+/**
+ * Returns the array with the ins.  The content of the array may not be
+ * changed.
+ * Note that this function returns the whole in array including the
+ * block predecessor. So, it is NOT symmetric with set_irn_in().
+ */
 ir_node     **get_irn_in            (const ir_node *node);
 
 /** @{ */
@@ -600,6 +604,24 @@ _is_Unknown (const ir_node *node) {
   return (node && _get_irn_op(node) == op_Unknown);
 }
 
+static INLINE int
+_is_Return (const ir_node *node) {
+  assert(node);
+  return (node && _get_irn_op(node) == op_Return);
+}
+
+static INLINE int
+_is_Call (const ir_node *node) {
+  assert(node);
+  return (node && _get_irn_op(node) == op_Call);
+}
+
+static INLINE int
+_is_Sel (const ir_node *node) {
+  assert(node);
+  return (node && _get_irn_op(node) == op_Sel);
+}
+
 static INLINE int
 _is_no_Block(const ir_node *node) {
   assert(node && _is_ir_node(node));
@@ -727,6 +749,10 @@ static INLINE int _is_irn_constlike(const ir_node *node) {
   return is_op_constlike(_get_irn_op(node));
 }
 
+static INLINE int _is_irn_keep(const ir_node *node) {
+  return is_op_keep(_get_irn_op(node));
+}
+
 static INLINE cond_jmp_predicate _get_Cond_jmp_pred(ir_node *node) {
   assert (_get_irn_op(node) == op_Cond);
   return node->attr.c.pred;
@@ -762,6 +788,9 @@ static INLINE void _set_Cond_jmp_pred(ir_node *node, cond_jmp_predicate pred) {
 #define is_binop(node)                        _is_binop(node)
 #define is_Const(node)                        _is_Const(node)
 #define is_Unknown(node)                      _is_Unknown(node)
+#define is_Return(node)                       _is_Return(node)
+#define is_Call(node)                         _is_Call(node)
+#define is_Sel(node)                          _is_Sel(node)
 #define is_Bad(node)                          _is_Bad(node)
 #define is_no_Block(node)                     _is_no_Block(node)
 #define is_Block(node)                        _is_Block(node)
@@ -781,6 +810,7 @@ static INLINE void _set_Cond_jmp_pred(ir_node *node, cond_jmp_predicate pred) {
 #define get_irn_type_attr(node)               _get_irn_type_attr(node)
 #define get_irn_entity_attr(node)             _get_irn_entity_attr(node)
 #define is_irn_constlike(node)                _is_irn_constlike(node)
+#define is_irn_keep(node)                     _is_irn_keep(node)
 #define get_Cond_jmp_pred(node)               _get_Cond_jmp_pred(node)
 #define set_Cond_jmp_pred(node, pred)         _set_Cond_jmp_pred(node, pred)