get_mode_size_bits() returns the size in bits, not bytes.
[libfirm] / include / libfirm / irnode.h
index e0fda57..be09fde 100644 (file)
@@ -185,8 +185,6 @@ void del_Sync_n(ir_node *n, int i);
 void set_irn_mode(ir_node *node, ir_mode *mode);
 /** Gets the mode struct of a node.  */
 ir_mode *get_irn_mode(const ir_node *node);
-/** Gets the mode-enum ir_modecode. */
-ir_modecode get_irn_modecode(const ir_node *node);
 /** Gets the ident for a string representation of the mode .*/
 ident *get_irn_modeident(const ir_node *node);
 /** Gets the string representation of the mode .*/
@@ -304,11 +302,6 @@ void      set_nodes_block (ir_node *node, ir_node *block);
  * get_irn_MacroBlock(). */
 ir_node  *get_nodes_MacroBlock(const ir_node *node);
 
-/**
- * @function get_irn_block()
- * @see get_nodes_block()
- */
-
 /**
  * Projection numbers for result of Start node: use for Proj nodes!
  */
@@ -419,12 +412,14 @@ void set_Block_MacroBlock(ir_node *block, ir_node *mbh);
 ir_node *get_irn_MacroBlock(const ir_node *n);
 /** Returns the ir_graph this Block belongs to. */
 ir_graph *get_Block_irg(const ir_node *block);
-/** Returns non-zero if the block has an assigned label. */
-int has_Block_label(const ir_node *block);
-/** Returns the label of a Block. */
-ir_label_t get_Block_label(const ir_node *block);
-/** Sets a label to a block. */
-void set_Block_label(ir_node *block, ir_label_t label);
+/** Returns non-zero if the block has an entity assigned */
+int has_Block_entity(const ir_node *block);
+/** Returns the entity for a Block */
+ir_entity *get_Block_entity(const ir_node *block);
+/** Returns the entity for a Block (creating it if necessary) */
+ir_entity *create_Block_entity(ir_node *block);
+/** Set a new entity for a block */
+void set_Block_entity(ir_node *block, ir_entity *entity);
 /** Gets the head of the Phi list for this block. */
 ir_node *get_Block_phis(const ir_node *block);
 /** Sets the head of the Phi list for this block. */
@@ -552,9 +547,6 @@ void     set_Const_type(ir_node *node, ir_type *tp);
 /** Returns non-zero if s symconst kind has an enum_const attribute */
 #define SYMCONST_HAS_ENUM(kind) ((kind) == symconst_enum_const)
 
-/** Returns non-zero if s symconst kind has a label attribute */
-#define SYMCONST_HAS_LABEL(kind) ((kind) == symconst_label)
-
 /** Get the kind of the SymConst. */
 symconst_kind get_SymConst_kind(const ir_node *node);
 /** Set the kind of the SymConst. */
@@ -583,11 +575,6 @@ union symconst_symbol get_SymConst_symbol(const ir_node *node);
 void                  set_SymConst_symbol(ir_node *node,
                                           union symconst_symbol sym);
 
-/** Only to access SymConst of kind symconst_label.  Else assertion: */
-ir_label_t get_SymConst_label(const ir_node *node);
-void       set_SymConst_label(ir_node *node, ir_label_t label);
-
-
 /** Access the type of the value represented by the SymConst.
  *
  *  Example: primitive type int for SymConst size. */
@@ -1363,6 +1350,12 @@ ir_mode *get_divop_resmod(const ir_node *node);
  *  operation: Cond. */
 int is_irn_forking(const ir_node *node);
 
+/**
+ * Copies all attributes stored in the old node  to the new node.
+ * Assumes both have the same opcode and sufficient size.
+ */
+void copy_node_attr(const ir_node *old_node, ir_node *new_node);
+
 /** Return the type associated with the value produced by n
  *  if the node remarks this type as it is the case for
  *  Cast, Const, SymConst and some Proj nodes or unknown_type. */