From f723aad7cc998540e6e221b4df50a907d2edc126 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 25 Oct 2006 16:04:34 +0000 Subject: [PATCH] add missing is_Jmp() add is_Raise() skip_Proj() is not const anymore (can skip Id nodes) [r8370] --- ir/ir/irnode.c | 8 +++++++- ir/ir/irnode.h | 6 ++++-- ir/ir/irnode_t.h | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index 2902b4d4e..ff82918cb 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 (const ir_node *node) { +skip_Proj (ir_node *node) { /* don't assert node !!! */ if (node && is_Proj(node)) { return get_Proj_pred(node); @@ -2649,6 +2649,12 @@ int return _is_Jmp(node); } +/* returns true if a node is a Raise node. */ +int +(is_Raise)(const ir_node *node) { + return _is_Raise(node); +} + int is_Proj (const ir_node *node) { assert(node); diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index c63c08082..4af34a665 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(const ir_node *node); +ir_node *skip_Proj(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 @@ -1169,8 +1169,10 @@ int is_Cond(const ir_node *node); int is_Cmp(const ir_node *node); /** returns true if node is an Alloc node */ int is_Alloc(const ir_node *node); -/** returns true if a nide is a Jmp node */ +/** returns true if a node is a Jmp node */ int is_Jmp(const ir_node *node); +/** returns true if a node is a Raise node */ +int is_Raise(const ir_node *node); /** returns true if node is a Proj node or a Filter node in * intraprocedural view */ int is_Proj(const ir_node *node); diff --git a/ir/ir/irnode_t.h b/ir/ir/irnode_t.h index bc78037ac..0fb6d8482 100644 --- a/ir/ir/irnode_t.h +++ b/ir/ir/irnode_t.h @@ -756,6 +756,12 @@ _is_Jmp(const ir_node *node) { return (_get_irn_op(node) == op_Jmp); } +static INLINE int +_is_Raise(const ir_node *node) { + assert(node); + return (_get_irn_op(node) == op_Raise); +} + static INLINE int _is_no_Block(const ir_node *node) { assert(node && _is_ir_node(node)); @@ -964,6 +970,8 @@ static INLINE unsigned _get_irn_idx(const ir_node *node) { #define is_Cond(node) _is_Cond(node) #define is_Cmp(node) _is_Cmp(node) #define is_Alloc(node) _is_Alloc(node) +#define is_Jmp(node) _is_Jmp(node) +#define is_Raise(node) _is_Raise(node) #define is_Bad(node) _is_Bad(node) #define is_NoMem(node) _is_NoMem(node) #define is_Start(node) _is_Start(node) -- 2.20.1