Addded method to replace in array os a node in irnode
[libfirm] / ir / ir / irnode_t.h
index 2882e7f..0c09ad5 100644 (file)
@@ -22,6 +22,13 @@ typedef struct {
   struct ir_node **graph_arr; /* array to store all parameters */
 } block_attr;
 
+/* Cond attributes */
+typedef struct {
+  cond_kind kind;    /* flavor of Cond */
+  long default_proj; /* for optimization: biggest Proj number, i.e. the one
+                       used for default. */
+} cond_attr;
+
 /* SymConst attributes */
 /*   This union contains the symbolic information represented by the node */
 typedef union type_or_id {
@@ -50,10 +57,11 @@ typedef struct {
    some have more. Their name is 'irnodename_attr' */
 typedef union {
   block_attr     block; /* For Block: Fields needed to construct it */
+  cond_attr      c;     /* For Cond. */
   struct tarval *con;   /* For Const: contains the value of the constant */
   symconst_attr  i;     /* For SymConst. */
   sel_attr       s;     /* For Sel. */
-  type_method   *call;  /* For Call: pointer to the type of the method to call */
+  type          *call;  /* For Call: pointer to the type of the method to call */
   long           proj;  /* For Proj: contains the result position to project */
   alloc_attr     a;     /* For Alloc. */
   type          *f;     /* For Free. */
@@ -104,7 +112,7 @@ inline long          get_irn_proj_attr     (ir_node *node);
 inline alloc_attr    get_irn_alloc_attr    (ir_node *node);
 inline type         *get_irn_free_attr     (ir_node *node);
 inline symconst_attr get_irn_symconst_attr (ir_node *node);
-type_method  *get_irn_call_attr     (ir_node *node);
+type         *get_irn_call_attr     (ir_node *node);
 sel_attr      get_irn_sel_attr      (ir_node *node);
 int           get_irn_phi_attr      (ir_node *node);
 block_attr    get_irn_return_attr   (ir_node *node);