X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode_t.h;h=b824f613a1c7d726ff1afd52f19cd7c4045827cf;hb=79b409329e8b6e9f43ac71df6599372fa0dbe497;hp=ddf15fef5546af4c97fba2936ee3685e43b9a53c;hpb=4ff92a60c59a46e5958285afb6971867f47a3c20;p=libfirm diff --git a/ir/ir/irnode_t.h b/ir/ir/irnode_t.h index ddf15fef5..b824f613a 100644 --- a/ir/ir/irnode_t.h +++ b/ir/ir/irnode_t.h @@ -99,6 +99,14 @@ ir_op_ops *firm_set_default_get_type_attr(ir_opcode code, ir_op_ops *ops); */ ir_op_ops *firm_set_default_get_entity_attr(ir_opcode code, ir_op_ops *ops); +/** + * Returns an array with the predecessors of the Block. Depending on + * the implementation of the graph data structure this can be a copy of + * the internal representation of predecessors as well as the internal + * array itself. Therefore writing to this array might obstruct the IR. + */ +ir_node **get_Block_cfgpred_arr(ir_node *node); + /*-------------------------------------------------------------------*/ /* These function are most used in libfirm. Give them as static */ /* functions so they can be inlined. */ @@ -497,6 +505,12 @@ _is_Carry(const ir_node *node) { return (_get_irn_op(node) == op_Carry); } +static inline int +_is_Borrow(const ir_node *node) { + assert(node); + return (_get_irn_op(node) == op_Borrow); +} + static inline int _is_And(const ir_node *node) { assert(node); @@ -798,7 +812,7 @@ _get_Block_cfgpred(const ir_node *node, int pos) { * We walk from the predecessor to the next pinned node * (skip_Proj) and return the block that node is in. * - If we encounter the Bad node, this function does not return - * Start, but the Bad node. + * the Start block, but the Bad node. */ static inline ir_node * _get_Block_cfgpred_block(const ir_node *node, int pos) { @@ -1085,6 +1099,7 @@ _is_arg_Proj(const ir_node *node) { #define is_Quot(node) _is_Quot(node) #define is_Add(node) _is_Add(node) #define is_Carry(node) _is_Carry(node) +#define is_Borrow(node) _is_Borrow(node) #define is_And(node) _is_And(node) #define is_Or(node) _is_Or(node) #define is_Eor(node) _is_Eor(node)