get_irn_generic_attr() cannot have a const argument
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Mon, 21 May 2007 13:05:37 +0000 (13:05 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Mon, 21 May 2007 13:05:37 +0000 (13:05 +0000)
__get_irn_generic_attr() added to speed up backend

[r13950]

ir/ir/irnode.c
ir/ir/irnode.h
ir/ir/irnode_t.h

index e32e066..9ad33e3 100644 (file)
@@ -597,17 +597,15 @@ get_irn_block_attr(ir_node *node) {
 }
 
 load_attr
-get_irn_load_attr(ir_node *node)
-{
-  assert(node->op == op_Load);
-  return node->attr.load;
+get_irn_load_attr(ir_node *node) {
+       assert(node->op == op_Load);
+       return node->attr.load;
 }
 
 store_attr
-get_irn_store_attr(ir_node *node)
-{
-  assert(node->op == op_Store);
-  return node->attr.store;
+get_irn_store_attr(ir_node *node) {
+       assert(node->op == op_Store);
+       return node->attr.store;
 }
 
 except_attr
@@ -617,9 +615,9 @@ get_irn_except_attr(ir_node *node) {
        return node->attr.except;
 }
 
-void *
-get_irn_generic_attr(const ir_node *node) {
-       return &node->attr;
+void *(get_irn_generic_attr)(ir_node *node) {
+       assert(is_ir_node(node));
+       return _get_irn_generic_attr(node);
 }
 
 unsigned (get_irn_idx)(const ir_node *node) {
index 06f52ef..97cc3d9 100644 (file)
@@ -1334,7 +1334,7 @@ unsigned register_additional_node_data(unsigned size);
  * Return a pointer to the node attributes.
  * Needed for user-defined nodes.
  */
-void *get_irn_generic_attr(const ir_node *node);
+void *get_irn_generic_attr(ir_node *node);
 
 /**
  * Returns the unique node index for the node in its graph.
index 6a54865..0fab20b 100644 (file)
@@ -991,6 +991,10 @@ static INLINE int _get_Psi_n_conds(ir_node *node) {
        return _get_irn_arity(node) >> 1;
 }
 
+static INLINE void *_get_irn_generic_attr(ir_node *node) {
+       return &node->attr;
+}
+
 static INLINE unsigned _get_irn_idx(const ir_node *node) {
        return node->node_idx;
 }
@@ -1076,6 +1080,7 @@ static INLINE unsigned _get_irn_idx(const ir_node *node) {
 #define get_Cond_jmp_pred(node)               _get_Cond_jmp_pred(node)
 #define set_Cond_jmp_pred(node, pred)         _set_Cond_jmp_pred(node, pred)
 #define get_Psi_n_conds(node)                 _get_Psi_n_conds(node)
+#define get_irn_generic_attr(node)            _get_irn_generic_attr(node)
 #define get_irn_idx(node)                     _get_irn_idx(node)
 
 #define get_irn_deps(node)                    _get_irn_deps(node)