From be74a494619fc771be467cbfe7a918b54ece10d8 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Fri, 29 Sep 2006 18:56:12 +0000 Subject: [PATCH] is_irn_start_block_placed() added\nconst added to skip_Proj() [r8310] --- ir/ir/irnode.c | 9 ++++++++- ir/ir/irnode.h | 9 +++++++-- ir/ir/irnode_t.h | 5 +++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index cac438760..5e93ec7c9 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -2374,7 +2374,7 @@ get_irn_irg(const ir_node *node) { /*----------------------------------------------------------------*/ ir_node * -skip_Proj (ir_node *node) { +skip_Proj (const ir_node *node) { /* don't assert node !!! */ if (node && is_Proj(node)) { return get_Proj_pred(node); @@ -2715,6 +2715,13 @@ int (is_irn_keep)(const ir_node *node) { return _is_irn_keep(node); } +/* + * Returns non-zero for nodes that are always placed in the start block. + */ +int (is_irn_start_block_placed)(const ir_node *node) { + return _is_irn_start_block_placed(node); +} + /* Returns non-zero for nodes that are machine operations. */ int (is_irn_machine_op)(const ir_node *node) { return _is_irn_machine_op(node); diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index efd2c5a79..0c36be247 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -1113,7 +1113,7 @@ void set_Pin_op(ir_node *pin, ir_node *node); */ /** returns operand of node if node is a Proj. */ -ir_node *skip_Proj(ir_node *node); +ir_node *skip_Proj(const ir_node *node); /** returns operand of node if node is a Id */ ir_node *skip_Id(ir_node *node); /* Old name is skip_nop(). */ /** returns corresponding operand of Tuple if node is a Proj from @@ -1126,7 +1126,7 @@ ir_node *skip_Confirm(ir_node *node); /** Skip all high-level Operations. */ ir_node *skip_HighLevel(ir_node *node); /** returns true if irn is a Const node. */ -int is_Const(const ir_node *node); +int is_Const(const ir_node *node); /** returns true if node is a Bad node. */ int is_Bad(const ir_node *node); /** returns true if node is a Start node. */ @@ -1211,6 +1211,11 @@ int is_irn_always_opt(const ir_node *node); */ int is_irn_keep(const ir_node *node); +/** + * Returns non-zero for nodes that are always placed in the start block. + */ +int is_irn_start_block_placed(const ir_node *node); + /** * Returns non-zero for nodes that are machine operations. */ diff --git a/ir/ir/irnode_t.h b/ir/ir/irnode_t.h index 8a62795ea..c8e159321 100644 --- a/ir/ir/irnode_t.h +++ b/ir/ir/irnode_t.h @@ -867,6 +867,10 @@ static INLINE int _is_irn_keep(const ir_node *node) { return is_op_keep(_get_irn_op(node)); } +static INLINE int _is_irn_start_block_placed(const ir_node *node) { + return is_op_start_block_placed(_get_irn_op(node)); +} + static INLINE int _is_irn_machine_op(const ir_node *node) { return is_op_machine(_get_irn_op(node)); } @@ -958,6 +962,7 @@ static INLINE unsigned _get_irn_idx(const ir_node *node) { #define is_irn_constlike(node) _is_irn_constlike(node) #define is_irn_always_opt(node) _is_irn_always_opt(node) #define is_irn_keep(node) _is_irn_keep(node) +#define is_irn_start_block_placed(node) _is_irn_start_block_placed(node) #define is_irn_machine_op(node) _is_irn_machine_op(node) #define is_irn_machine_operand(node) _is_irn_machine_operand(node) #define is_irn_machine_user(node, n) _is_irn_machine_user(node, n) -- 2.20.1