made copy_attrs an ir_op operation
[libfirm] / ir / ir / irnode_t.h
index fd1d413..c20f392 100644 (file)
@@ -10,7 +10,6 @@
  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
  */
 
-
 /**
  * @file irnode_t.h
  *
@@ -19,7 +18,6 @@
  * @author Martin Trapp, Christian Schaefer
  */
 
-
 # ifndef _IRNODE_T_H_
 # define _IRNODE_T_H_
 
@@ -239,12 +237,6 @@ struct ir_node {
 };
 
 
-/** Copies all attributes stored in the old node  to the new node.
-    Assumes both have the same opcode and sufficient size. */
-void
-copy_attrs(const ir_node *old_node, ir_node *new_node);
-
-
 /** Returns the array with the ins.  The content of the array may not be
    changed.  */
 ir_node     **get_irn_in            (const ir_node *node);
@@ -266,6 +258,11 @@ store_attr           get_irn_store_attr    (ir_node *node);
 except_attr          get_irn_except_attr   (ir_node *node);
 /** @} */
 
+/*
+ * The amount of additional space for custom data to be allocated upon creating a new node.
+ */
+extern unsigned firm_add_node_size;
+
 /*-------------------------------------------------------------------*/
 /*  These function are most used in libfirm.  Give them as static    */
 /*  functions so they can be inlined.                                */
@@ -290,6 +287,16 @@ __get_irn_op (const ir_node *node) {
   return node->op;
 }
 
+/** Copies all attributes stored in the old node  to the new node.
+    Assumes both have the same opcode and sufficient size. */
+static INLINE void
+copy_node_attr(const ir_node *old_node, ir_node *new_node) {
+  ir_op *op = __get_irn_op(old_node);
+
+  /* must always exist */
+  op->copy_attr(old_node, new_node);
+}
+
 /**
  * Gets the opcode of a node.
  * Intern version for libFirm.