use tv_t.h instead of tv.h
[libfirm] / ir / ir / irnode.h
index 5b66b75..8da48aa 100644 (file)
@@ -20,6 +20,7 @@
 # include "irop.h"
 # include "irmode.h"
 # include "type.h"
+# include "irextbb.h"
 # include "dbginfo.h"
 
 /**
@@ -273,6 +274,11 @@ ir_node  *get_Block_cg_cfgpred(ir_node * node, int pos);
 /* frees the memory. */
 void      remove_Block_cg_cfgpred_arr(ir_node * node);
 
+/** returns the extended basic block a block belongs to */
+ir_extblk *get_Block_extbb(const ir_node *block);
+/** sets the extended basic block a block belongs to */
+void set_Block_extbb(ir_node *block, ir_extblk *extblk);
+
 /** Return the number of Keep alive node. */
 int  get_End_n_keepalives(ir_node *end);
 
@@ -449,6 +455,14 @@ void     set_Sel_index (ir_node *node, int pos, ir_node *index);
 entity  *get_Sel_entity (ir_node *node); /* entity to select */
 void     set_Sel_entity (ir_node *node, entity *ent);
 
+/** InstOf access */
+type    *get_InstOf_ent (ir_node *node);
+void    set_InstOf_ent (ir_node *node, type *ent);
+ir_node *get_InstOf_store (ir_node *node);
+void    set_InstOf_store (ir_node *node, ir_node *obj);
+ir_node *get_InstOf_obj (ir_node *node);
+void    set_InstOf_obj (ir_node *node, ir_node *obj);
+
 /**
  * Projection numbers for result of Call node: use for Proj nodes!
  */
@@ -847,10 +861,10 @@ void      set_Sync_pred (ir_node *node, int pos, ir_node *pred);
 type     *get_Proj_type (ir_node *node);
 
 /** Return the predecessor of a Proj node. */
-ir_node  *get_Proj_pred (ir_node *node);
+ir_node  *get_Proj_pred (const ir_node *node);
 void      set_Proj_pred (ir_node *node, ir_node *pred);
 /** Return the projection number of a Proj node. */
-long      get_Proj_proj (ir_node *node);
+long      get_Proj_proj (const ir_node *node);
 void      set_Proj_proj (ir_node *node, long proj);
 
 ir_node **get_Tuple_preds_arr (ir_node *node);
@@ -896,6 +910,12 @@ ir_node *skip_Id  (ir_node *node);   /* Same as skip_nop. */
 ir_node *skip_Tuple (ir_node *node);
 /** returns operand of node if node is a Cast */
 ir_node *skip_Cast  (ir_node *node);
+/** returns operand of node if node is a Confirm */
+ir_node *skip_Confirm  (ir_node *node);
+/** Skip all high-level Operations. */
+ir_node *skip_HighLevel(ir_node *node);
+/** returns true if irn is a Const node. */
+int                     is_Const(const ir_node *node);
 /** returns true if node is a Bad node. */
 int      is_Bad    (const ir_node *node);
 /** returns true if the node is not a Block */
@@ -989,7 +1009,11 @@ void    dump_irn(ir_node *n);
 /** Output the firm kind of the node */
 #define DDMK(X)  printf("%s(l.%i) %s: %p\n",                 __MYFUNC__, __LINE__,  print_firm_kind(X), (void *)(X));
 /** Output information about a node */
-#define DDMN(X)  printf("%s(l.%i) %s%s: %ld (%p)\n",         __MYFUNC__, __LINE__,  get_irn_opname(X), get_mode_name(get_irn_mode(X)), get_irn_node_nr(X), (void *)(X))
+
+/*#define DDMN(X)  printf("%s(l.%i) %s%s: %ld (%p)\n",         __MYFUNC__, __LINE__,  get_irn_opname(X), get_mode_name(get_irn_mode(X)), get_irn_node_nr(X), (void *)(X))*/
+int dump_node_opcode(FILE *F, ir_node *n);
+#define DDMN(X)  do { printf("%s(l.%i) ", __MYFUNC__, __LINE__); dump_node_opcode(stdout, X); printf(": %ld (%p)\n", get_irn_node_nr(X), (void *)(X)); } while (0)
+
 /** Output information about a node and its block */
 #define DDMNB(X) printf("%s%s: %ld (in block %ld)\n", get_irn_opname(X),  get_mode_name(get_irn_mode(X)), get_irn_node_nr(X), get_irn_node_nr(get_nodes_block(X)))
 /** Output information about a type */