* Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
*/
-
/**
* @file irnode_t.h
*
* @author Martin Trapp, Christian Schaefer
*/
-
# ifndef _IRNODE_T_H_
# define _IRNODE_T_H_
};
-/** 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);
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. */
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.