projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backend: put ignore regs into beirg
[libfirm]
/
ir
/
ir
/
irnode_t.h
diff --git
a/ir/ir/irnode_t.h
b/ir/ir/irnode_t.h
index
8385163
..
7c41e03
100644
(file)
--- a/
ir/ir/irnode_t.h
+++ b/
ir/ir/irnode_t.h
@@
-47,17
+47,6
@@
ir_node **get_irn_in (const ir_node *node);
*/
extern unsigned firm_add_node_size;
*/
extern unsigned firm_add_node_size;
-/**
- * Sets the get_type operation for an ir_op_ops.
- *
- * @param code the opcode for the default operation
- * @param ops the operations initialized
- *
- * @return
- * The operations.
- */
-ir_op_ops *firm_set_default_get_type(ir_opcode code, ir_op_ops *ops);
-
/**
* Sets the get_type_attr operation for an ir_op_ops.
*
/**
* Sets the get_type_attr operation for an ir_op_ops.
*
@@
-161,7
+150,7
@@
static inline ir_node *_get_irn_n(const ir_node *node, int n)
nn = node->in[n + 1];
if (nn == NULL) {
/* only block and Anchor inputs are allowed to be NULL */
nn = node->in[n + 1];
if (nn == NULL) {
/* only block and Anchor inputs are allowed to be NULL */
- assert((
node->op == op_Anchor
|| n == -1) && "NULL input of a node");
+ assert((
is_Anchor(node)
|| n == -1) && "NULL input of a node");
return NULL;
}
if (nn->op != op_Id) return nn;
return NULL;
}
if (nn->op != op_Id) return nn;
@@
-233,18
+222,28
@@
static inline void _set_irn_mode(ir_node *node, ir_mode *mode)
node->mode = mode;
}
node->mode = mode;
}
+static inline int ir_has_irg_ref(const ir_node *node)
+{
+ return is_Block(node) || is_Bad(node) || is_Anchor(node);
+}
+
static inline ir_graph *_get_irn_irg(const ir_node *node)
{
/*
static inline ir_graph *_get_irn_irg(const ir_node *node)
{
/*
- * Do not use get_nodes_
B
lock() here, because this
+ * Do not use get_nodes_
b
lock() here, because this
* will check the pinned state.
* will check the pinned state.
- * However even a 'wrong' block is always in the proper
- * irg.
+ * However even a 'wrong' block is always in the proper irg.
*/
if (! is_Block(node))
node = get_irn_n(node, -1);
*/
if (! is_Block(node))
node = get_irn_n(node, -1);
- /* note that get_Block_irg() can handle Bad nodes */
- return get_Block_irg(node);
+ assert(ir_has_irg_ref(node));
+ return node->attr.irg.irg;
+}
+
+static inline ir_node *_get_nodes_block(const ir_node *node)
+{
+ assert(!is_Block(node));
+ return get_irn_n(node, -1);
}
/**
}
/**
@@
-328,7
+327,8
@@
static inline op_pin_state _get_irn_pinned(const ir_node *node)
state = _get_op_pinned(_get_irn_op(node));
if (state >= op_pin_state_exc_pinned)
state = _get_op_pinned(_get_irn_op(node));
if (state >= op_pin_state_exc_pinned)
- return get_opt_fragile_ops() ? node->attr.except.pin_state : op_pin_state_pinned;
+ return node->attr.except.pin_state;
+
return state;
}
return state;
}
@@
-398,13
+398,13
@@
static inline ir_node *_get_Block_cfgpred_block(const ir_node *node, int pos)
static inline ir_visited_t _get_Block_block_visited(const ir_node *node)
{
static inline ir_visited_t _get_Block_block_visited(const ir_node *node)
{
- assert(
node->op == op_Block
);
+ assert(
is_Block(node)
);
return node->attr.block.block_visited;
}
static inline void _set_Block_block_visited(ir_node *node, ir_visited_t visit)
{
return node->attr.block.block_visited;
}
static inline void _set_Block_block_visited(ir_node *node, ir_visited_t visit)
{
- assert(
node->op == op_Block
);
+ assert(
is_Block(node)
);
node->attr.block.block_visited = visit;
}
node->attr.block.block_visited = visit;
}
@@
-442,11
+442,11
@@
static inline int _is_Block_dead(const ir_node *block)
static inline ir_graph *_get_Block_irg(const ir_node *block)
{
static inline ir_graph *_get_Block_irg(const ir_node *block)
{
- assert(is_Block(block)
|| is_Bad(block) || is_Anchor(block)
);
+ assert(is_Block(block));
return block->attr.irg.irg;
}
return block->attr.irg.irg;
}
-static inline tarval *_get_Const_tarval(const ir_node *node) {
+static inline
ir_
tarval *_get_Const_tarval(const ir_node *node) {
assert(_get_irn_op(node) == op_Const);
return node->attr.con.tarval;
}
assert(_get_irn_op(node) == op_Const);
return node->attr.con.tarval;
}
@@
-467,10
+467,6
@@
static inline int _is_irn_forking(const ir_node *node) {
return is_op_forking(_get_irn_op(node));
}
return is_op_forking(_get_irn_op(node));
}
-static inline ir_type *_get_irn_type(ir_node *node) {
- return _get_irn_op(node)->ops.get_type(node);
-}
-
static inline ir_type *_get_irn_type_attr(ir_node *node) {
return _get_irn_op(node)->ops.get_type_attr(node);
}
static inline ir_type *_get_irn_type_attr(ir_node *node) {
return _get_irn_op(node)->ops.get_type_attr(node);
}
@@
-615,6
+611,7
@@
void init_irnode(void);
#define get_irn_mode(node) _get_irn_mode(node)
#define set_irn_mode(node, mode) _set_irn_mode(node, mode)
#define get_irn_irg(node) _get_irn_irg(node)
#define get_irn_mode(node) _get_irn_mode(node)
#define set_irn_mode(node, mode) _set_irn_mode(node, mode)
#define get_irn_irg(node) _get_irn_irg(node)
+#define get_nodes_block(node) _get_nodes_block(node)
#define get_irn_op(node) _get_irn_op(node)
#define set_irn_op(node, op) _set_irn_op(node, op)
#define get_irn_opcode(node) _get_irn_opcode(node)
#define get_irn_op(node) _get_irn_op(node)
#define set_irn_op(node, op) _set_irn_op(node, op)
#define get_irn_opcode(node) _get_irn_opcode(node)