From: Michael Beck Date: Mon, 21 May 2007 13:05:37 +0000 (+0000) Subject: get_irn_generic_attr() cannot have a const argument X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=1cfde28fefc13bb6fbeb68c0a5fabffe265eb1d8;p=libfirm get_irn_generic_attr() cannot have a const argument __get_irn_generic_attr() added to speed up backend [r13950] --- diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index e32e06694..9ad33e370 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -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) { diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 06f52eff2..97cc3d988 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -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. diff --git a/ir/ir/irnode_t.h b/ir/ir/irnode_t.h index 6a548650f..0fab20b0b 100644 --- a/ir/ir/irnode_t.h +++ b/ir/ir/irnode_t.h @@ -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)