X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firnode.h;h=be09fdef324e2321f9d20c4097aaa9d1f9dcb3c8;hb=e350b484176725a82b3fce4ed2466a91c1b37f88;hp=e0fda570e178673731db9f0e22dcc7e757e27e5b;hpb=8995741d0aacd2110b327113e9663cf738e2c3f9;p=libfirm diff --git a/include/libfirm/irnode.h b/include/libfirm/irnode.h index e0fda570e..be09fdef3 100644 --- a/include/libfirm/irnode.h +++ b/include/libfirm/irnode.h @@ -185,8 +185,6 @@ void del_Sync_n(ir_node *n, int i); void set_irn_mode(ir_node *node, ir_mode *mode); /** Gets the mode struct of a node. */ ir_mode *get_irn_mode(const ir_node *node); -/** Gets the mode-enum ir_modecode. */ -ir_modecode get_irn_modecode(const ir_node *node); /** Gets the ident for a string representation of the mode .*/ ident *get_irn_modeident(const ir_node *node); /** Gets the string representation of the mode .*/ @@ -304,11 +302,6 @@ void set_nodes_block (ir_node *node, ir_node *block); * get_irn_MacroBlock(). */ ir_node *get_nodes_MacroBlock(const ir_node *node); -/** - * @function get_irn_block() - * @see get_nodes_block() - */ - /** * Projection numbers for result of Start node: use for Proj nodes! */ @@ -419,12 +412,14 @@ void set_Block_MacroBlock(ir_node *block, ir_node *mbh); ir_node *get_irn_MacroBlock(const ir_node *n); /** Returns the ir_graph this Block belongs to. */ ir_graph *get_Block_irg(const ir_node *block); -/** Returns non-zero if the block has an assigned label. */ -int has_Block_label(const ir_node *block); -/** Returns the label of a Block. */ -ir_label_t get_Block_label(const ir_node *block); -/** Sets a label to a block. */ -void set_Block_label(ir_node *block, ir_label_t label); +/** Returns non-zero if the block has an entity assigned */ +int has_Block_entity(const ir_node *block); +/** Returns the entity for a Block */ +ir_entity *get_Block_entity(const ir_node *block); +/** Returns the entity for a Block (creating it if necessary) */ +ir_entity *create_Block_entity(ir_node *block); +/** Set a new entity for a block */ +void set_Block_entity(ir_node *block, ir_entity *entity); /** Gets the head of the Phi list for this block. */ ir_node *get_Block_phis(const ir_node *block); /** Sets the head of the Phi list for this block. */ @@ -552,9 +547,6 @@ void set_Const_type(ir_node *node, ir_type *tp); /** Returns non-zero if s symconst kind has an enum_const attribute */ #define SYMCONST_HAS_ENUM(kind) ((kind) == symconst_enum_const) -/** Returns non-zero if s symconst kind has a label attribute */ -#define SYMCONST_HAS_LABEL(kind) ((kind) == symconst_label) - /** Get the kind of the SymConst. */ symconst_kind get_SymConst_kind(const ir_node *node); /** Set the kind of the SymConst. */ @@ -583,11 +575,6 @@ union symconst_symbol get_SymConst_symbol(const ir_node *node); void set_SymConst_symbol(ir_node *node, union symconst_symbol sym); -/** Only to access SymConst of kind symconst_label. Else assertion: */ -ir_label_t get_SymConst_label(const ir_node *node); -void set_SymConst_label(ir_node *node, ir_label_t label); - - /** Access the type of the value represented by the SymConst. * * Example: primitive type int for SymConst size. */ @@ -1363,6 +1350,12 @@ ir_mode *get_divop_resmod(const ir_node *node); * operation: Cond. */ int is_irn_forking(const ir_node *node); +/** + * Copies all attributes stored in the old node to the new node. + * Assumes both have the same opcode and sufficient size. + */ +void copy_node_attr(const ir_node *old_node, ir_node *new_node); + /** Return the type associated with the value produced by n * if the node remarks this type as it is the case for * Cast, Const, SymConst and some Proj nodes or unknown_type. */