* ir_node *new_Borrow (ir_node *op1, ir_node *op2, ir_mode *mode);
* ir_node *new_Load (ir_node *store, ir_node *addr, ir_mode *mode, ir_cons_flags flags);
* ir_node *new_Store (ir_node *store, ir_node *addr, ir_node *val, ir_cons_flags flags);
- * ir_node *new_Alloc (ir_node *store, ir_node *size, ir_type *alloc_type,
+ * ir_node *new_Alloc (ir_node *store, ir_node *count, ir_type *alloc_type,
* where_alloc where);
* ir_node *new_Free (ir_node *store, ir_node *ptr, ir_node *size,
* ir_type *free_type, where_alloc where);
* All ir_nodes are defined by a common data structure. They are distinguished
* by their opcode and differ in the number of their attributes.
*
- * The constructor for the block node sets current_block to itself.
* Const nodes are always added to the start block.
* All other constructors add the created node to the current_block.
* swich_block(block) allows to set the current block to block.
* attr.con A tarval* pointer to the proper entry in the constant
* table.
*
- * ir_node *new_SymConst (ir_mode *mode,union symconst_symbol value, symconst_addr_ent kind)
+ * ir_node *new_SymConst (ir_mode *mode, union symconst_symbol value, symconst_addr_ent kind)
* -----------------------------------------------------------------------------------------
*
- * There are three five of symbolic constants:
+ * There are several symbolic constants:
* symconst_type_tag The symbolic constant represents a type tag.
* symconst_type_size The symbolic constant represents the size of a type.
* symconst_type_align The symbolic constant represents the alignment of a type.
- * symconst_addr_name Information for the linker, e.g. the name of a global
- * variable.
* symconst_addr_ent The symbolic constant represents the address of an entity.
- *
- * To represent a pointer to an entity that is represented by an entity
- * datastructure don't use
- * new_SymConst((type_or_id*)get_entity_ld_ident(ent), symconst_addr_name);.
- * Use a real const instead:
- * new_SymConst(ent, symconst_addr_ent);
- * This makes the Constant independent of name changes of the entity due to
- * mangling.
+ * symconst_ofs_ent The symbolic constant represents the offset of an
+ * entity in its owner type.
+ * symconst_enum_const The symbolic constant is a enumeration constant of an
+ * enumeration type.
*
* Parameters
- * kind The kind of the symbolic constant: type_tag, size or link_info.
- * *type_or_id Points to the type the tag stands for or to the type
- * whose size is represented by the constant or to an ident
- * representing the linkage info.
+ * mode P for SymConsts representing addresses, Iu otherwise.
+ * value The type, ident, entity or enum constant, depending on the
+ * kind
+ * kind The kind of the symbolic constant, see the list above.
*
* Inputs:
* No inputs except the block it belongs to.
* -symconst_type_tag
* -symconst_type_size
* -symconst_type_align
- * -symconst_addr_name
* -symconst_addr_ent
*
* If the attr.i.num is symconst_type_tag, symconst_type_size or symconst_type_align,
* A tuple of the changed memory and a control flow to be taken in
* case of an exception.
*
- * ir_node *new_Alloc (ir_node *store, ir_node *size, ir_type *alloc_type,
+ * ir_node *new_Alloc (ir_node *store, ir_node *count, ir_type *alloc_type,
* -----------------------------------------------------------------------
* where_alloc where)
* ------------------
*
* Parameters:
* *store The memory which shall contain the new variable.
- * ** *size The number of bytes to allocate. Old. **
- * *size We decided that the size easily can be derived from the type.
- * This field is for allocating arrays, i.e., it gives the multiple
- * of the size of alloc_type to allocate memory for.
+ * *count This field is for allocating arrays, i.e., it gives the multiple
+ * of the size of alloc_type to allocate memory for.
* *alloc_type The type of the allocated variable.
* where Where to allocate the variable, either heap_alloc or stack_alloc.
*
/** Constructor for a Block node.
*
- * Constructs a mature block with the given predecessors. Use Unknown
- * nodes as predecessors to construct a block if the number of
- * predecessors is known, but not the predecessors themselves. This
- * constructor does not set current_block. It not be used with
- * automatic Phi node construction.
+ * Constructs a mature block with the given predecessors.
*
* @param *db A Pointer for debug information.
* @param irg The IR graph the block belongs to.
*/
ir_node *new_rd_Const(dbg_info *db, ir_graph *irg, tarval *con);
-/** Constructor for a Const node.
+/**
+ * Constructor for a Const node.
*
* Adds the node to the start block.
*
/** Constructor for a SymConst_type node.
*
* This is the constructor for a symbolic constant.
- * There are four kinds of symbolic constants:
- * - type_tag The symbolic constant represents a type tag. The type the
- * tag stands for is given explicitly.
- * - type_size The symbolic constant represents the size of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * - type_align The symbolic constant represents the alignment of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * - addr_name The symbolic constant represents the address of an entity
- * (variable or method). The variable is indicated by a name
- * that is valid for linking.
- * - addr_ent The symbolic constant represents the address of an entity
- * (variable or method). The variable is given explicitly by
- * a firm entity.
+ * There are several kinds of symbolic constants:
+ * - symconst_type_tag The symbolic constant represents a type tag. The
+ * type the tag stands for is given explicitly.
+ * - symconst_type_size The symbolic constant represents the size of a type.
+ * The type of which the constant represents the size
+ * is given explicitly.
+ * - symconst_type_align The symbolic constant represents the alignment of a
+ * type. The type of which the constant represents the
+ * size is given explicitly.
+ * - symconst_addr_ent The symbolic constant represents the address of an
+ * entity (variable or method). The variable is given
+ * explicitly by a firm entity.
+ * - symconst_ofs_ent The symbolic constant represents the offset of an
+ * entity in its owner type.
+ * - symconst_enum_const The symbolic constant is a enumeration constant of
+ * an enumeration type.
*
* Inputs to the node:
* No inputs except the block it belongs to.
* @param *db A pointer for debug information.
* @param *irg The IR graph the node belongs to.
* @param mode The mode for the SymConst.
- * @param symkind The kind of the symbolic constant: type_tag, size, addr_name or addr_ent.
- * @param value A type, entity or a ident depending on the SymConst kind.
+ * @param value A type, ident, entity or enum constant depending on the
+ * SymConst kind.
+ * @param kind The kind of the symbolic constant, see the list above
* @param tp The source type of the constant.
*/
ir_node *new_rd_SymConst_type(dbg_info *db, ir_graph *irg, ir_mode *mode,
- union symconst_symbol value,
- symconst_kind symkind, ir_type *tp);
+ union symconst_symbol value, symconst_kind kind,
+ ir_type *tp);
/** Constructor for a SymConst node.
*
* Same as new_rd_SymConst_type, except that it sets the type to type_unknown.
*/
ir_node *new_rd_SymConst(dbg_info *db, ir_graph *irg, ir_mode *mode,
- union symconst_symbol value, symconst_kind symkind);
+ union symconst_symbol value, symconst_kind kind);
/** Constructor for a SymConst addr_ent node.
*
ir_node *new_rd_SymConst_ofs_ent(dbg_info *db, ir_graph *irg, ir_mode *mode,
ir_entity *symbol, ir_type *tp);
-/** Constructor for a SymConst addr_name node.
- *
- * Same as new_rd_SymConst_type, except that the constructor is tailored for
- * symconst_addr_ent.
- * Adds the SymConst to the start block of irg.
- */
-ir_node *new_rd_SymConst_addr_name(dbg_info *db, ir_graph *irg, ir_mode *mode,
- ident *symbol, ir_type *tp);
-
/** Constructor for a SymConst type_tag node.
*
* Same as new_rd_SymConst_type, except that the constructor is tailored for
- * symconst_addr_ent.
+ * symconst_type_tag.
* Adds the SymConst to the start block of irg.
*/
ir_node *new_rd_SymConst_type_tag(dbg_info *db, ir_graph *irg, ir_mode *mode,
ir_node *new_rd_Call(dbg_info *db, ir_node *block, ir_node *store,
ir_node *callee, int arity, ir_node *in[], ir_type *tp);
-/** Constructor for a �Builtin node.
+/** Constructor for a Builtin node.
*
* Represents a call of a backend-specific builtin..
*
* @param *db A pointer for debug information.
* @param *block The IR block the node belongs to.
* @param *store The memory which shall contain the new variable.
- * @param *size The number of bytes to allocate.
+ * @param *count The number of objects to allocate.
* @param *alloc_type The type of the allocated variable.
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
ir_node *new_rd_Alloc(dbg_info *db, ir_node *block, ir_node *store,
- ir_node *size, ir_type *alloc_type, ir_where_alloc where);
+ ir_node *count, ir_type *alloc_type, ir_where_alloc where);
/** Constructor for a Free node.
*
* position of the value within the tuple.
*
* @param *db A pointer for debug information.
- * @param *block The IR block the node belongs to.
* @param arg A node producing a tuple. The node must have mode_T.
* @param *mode The mode of the value to project.
* @param proj The position of the value in the tuple.
*/
-ir_node *new_rd_Proj(dbg_info *db, ir_node *block, ir_node *arg,
- ir_mode *mode, long proj);
+ir_node *new_rd_Proj(dbg_info *db, ir_node *arg, ir_mode *mode, long proj);
/** Constructor for a defaultProj node.
*
* Represents the default control flow of a Switch-Cond node.
*
* @param *db A pointer for debug information.
- * @param *block The IR block the node belongs to.
* @param arg A node producing a tuple.
* @param max_proj The end position of the value in the tuple.
*/
-ir_node *new_rd_defaultProj(dbg_info *db, ir_node *block,
- ir_node *arg, long max_proj);
+ir_node *new_rd_defaultProj(dbg_info *db, ir_node *arg, long max_proj);
/** Constructor for a Tuple node.
*
*
* @param *db A pointer for debug information.
* @param *block The block the node belong to.
- * @param *callee The call node visible in the intra procedural view.
+ * @param *ptr pointer to the called function
+ * @param *call associated call operation
*/
ir_node *new_rd_CallBegin(dbg_info *db, ir_node *block, ir_node *ptr, ir_node *call);
/** Constructor for a SymConst node.
*
* This is the constructor for a symbolic constant.
- * There are four kinds of symbolic constants:
- * - type_tag The symbolic constant represents a type tag. The type the
- * tag stands for is given explicitly.
- * - size The symbolic constant represents the size of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * - addr_name The symbolic constant represents the address of an entity
- * (variable or method). The variable is indicated by a name
- * that is valid for linking.
- * - addr_ent The symbolic constant represents the address of an entity
- * (variable or method). The variable is given explicitly by
- * a firm entity.
+ * There are several kinds of symbolic constants:
+ * - symconst_type_tag The symbolic constant represents a type tag. The
+ * type the tag stands for is given explicitly.
+ * - symconst_type_size The symbolic constant represents the size of a type.
+ * The type of which the constant represents the size
+ * is given explicitly.
+ * - symconst_type_align The symbolic constant represents the alignment of a
+ * type. The type of which the constant represents the
+ * size is given explicitly.
+ * - symconst_addr_ent The symbolic constant represents the address of an
+ * entity (variable or method). The variable is given
+ * explicitly by a firm entity.
+ * - symconst_ofs_ent The symbolic constant represents the offset of an
+ * entity in its owner type.
+ * - symconst_enum_const The symbolic constant is a enumeration constant of
+ * an enumeration type.
*
* Inputs to the node:
* No inputs except the block it belongs to.
* Outputs of the node.
* An unsigned integer (I_u) or a pointer (P).
*
+ * Mention union in declaration so that the firmjni generator recognizes that
+ * it can not cast the argument to an int.
+ *
* @param *irg The IR graph the node belongs to.
* @param mode The mode for the SymConst.
- * @param value A type, entity or a ident depending on the SymConst kind.
- * @param symkind The kind of the symbolic constant: type_tag, size or link_info.
+ * @param value A type, ident, entity or enum constant depending on the
+ * SymConst kind.
+ * @param kind The kind of the symbolic constant, see the list above
*/
ir_node *new_r_SymConst(ir_graph *irg, ir_mode *mode,
- union symconst_symbol value, symconst_kind symkind);
+ union symconst_symbol value, symconst_kind kind);
/** Constructor for a simpleSel node.
*
*
* @param *block The IR block the node belongs to.
* @param *store The memory which shall contain the new variable.
- * @param *size The number of bytes to allocate.
+ * @param *count The number of objects to allocate.
* @param *alloc_type The type of the allocated variable.
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
ir_node *new_r_Alloc(ir_node *block, ir_node *store,
- ir_node *size, ir_type *alloc_type, ir_where_alloc where);
+ ir_node *count, ir_type *alloc_type, ir_where_alloc where);
/** Constructor for a Free node.
*
* Projects a single value out of a tuple. The parameter proj gives the
* position of the value within the tuple.
*
- * @param *block The IR block the node belongs to.
* @param arg A node producing a tuple.
- * @param *mode The mode of the value to project.
+ * @param mode The mode of the value to project.
* @param proj The position of the value in the tuple.
*/
-ir_node *new_r_Proj(ir_node *block, ir_node *arg,
- ir_mode *mode, long proj);
+ir_node *new_r_Proj(ir_node *arg, ir_mode *mode, long proj);
/** Constructor for a defaultProj node.
*
* Represents the default control flow of a Switch-Cond node.
*
- * @param *block The IR block the node belongs to.
* @param arg A node producing a tuple.
* @param max_proj The end position of the value in the tuple.
*/
-ir_node *new_r_defaultProj(ir_node *block, ir_node *arg, long max_proj);
+ir_node *new_r_defaultProj(ir_node *arg, long max_proj);
/** Constructor for a Tuple node.
* node.
*
* @param *block The block the node belong to.
- * @param *callee The call node visible in the intra procedural view.
+ * @param *ptr pointer to the called function
+ * @param *call associated call operation
*/
ir_node *new_r_CallBegin(ir_node *block, ir_node *ptr, ir_node *call);
/** Returns the current block of the current graph. */
ir_node *get_cur_block(void);
-/** Returns the fixed nodes of the current graph. */
-#define get_cur_end_block() get_irg_end_block(current_ir_graph)
-#define get_cur_end() get_irg_end(current_ir_graph)
-#define get_cur_start_block() get_irg_start_block(current_ir_graph)
-#define get_cur_start() get_irg_start(current_ir_graph)
-
/** Constructor for a Block node.
*
* Adds the block to the graph in current_ir_graph. Constructs a Block
- * with a fixed number of predecessors. Does set current_block. Can
- * be used with automatic Phi node construction.
+ * with a fixed number of predecessors.
*
* @param *db A Pointer for debug information.
* @param arity The number of control predecessors.
*/
ir_node *new_d_Const(dbg_info *db, tarval *con);
+/**
+ * @see new_rd_Const_long()
+ *
+ * @param *db A pointer for debug information.
+ * @param *mode The mode of the operands and results.
+ * @param value A value from which the tarval is made.
+ */
+ir_node *new_d_Const_long(dbg_info *db, ir_mode *mode, long value);
+
/** Constructor for a SymConst_type node.
*
- * Adds the node to the block in current_ir_block.
* This is the constructor for a symbolic constant.
- * There are four kinds of symbolic constants:
- * - type_tag The symbolic constant represents a type tag. The type the
- * tag stands for is given explicitly.
- * - size The symbolic constant represents the size of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * - addr_name The symbolic constant represents the address of an entity
- * (variable or method). The variable is indicated by a name
- * that is valid for linking.
- * - addr_ent The symbolic constant represents the address of an entity
- * (variable or method). The variable is given explicitly by
- * a firm entity.
+ * There are several kinds of symbolic constants:
+ * - symconst_type_tag The symbolic constant represents a type tag. The
+ * type the tag stands for is given explicitly.
+ * - symconst_type_size The symbolic constant represents the size of a type.
+ * The type of which the constant represents the size
+ * is given explicitly.
+ * - symconst_type_align The symbolic constant represents the alignment of a
+ * type. The type of which the constant represents the
+ * size is given explicitly.
+ * - symconst_addr_ent The symbolic constant represents the address of an
+ * entity (variable or method). The variable is given
+ * explicitly by a firm entity.
+ * - symconst_ofs_ent The symbolic constant represents the offset of an
+ * entity in its owner type.
+ * - symconst_enum_const The symbolic constant is a enumeration constant of
+ * an enumeration type.
*
* Inputs to the node:
* No inputs except the block it belongs to.
* Outputs of the node.
* An unsigned integer (I_u) or a pointer (P).
*
+ * Mention union in declaration so that the firmjni generator recognizes that
+ * it can not cast the argument to an int.
+ *
* @param *db A pointer for debug information.
* @param mode The mode for the SymConst.
- * @param value A type, entity or ident depending on the SymConst kind.
- * @param kind The kind of the symbolic constant: symconst_type_tag, symconst_type_size,
- * symconst_type_align, symconst_addr_name or symconst_addr_ent.
+ * @param value A type, ident, entity or enum constant depending on the
+ * SymConst kind.
+ * @param kind The kind of the symbolic constant, see the list above
* @param tp The source type of the constant.
*/
ir_node *new_d_SymConst_type(dbg_info *db, ir_mode *mode,
*
* @param *db A pointer for debug information.
* @param *store The memory which shall contain the new variable.
- * @param *size The number of bytes to allocate.
+ * @param *count The number of objects to allocate.
* @param *alloc_type The type of the allocated variable.
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
-ir_node *new_d_Alloc(dbg_info *db, ir_node *store, ir_node *size, ir_type *alloc_type,
+ir_node *new_d_Alloc(dbg_info *db, ir_node *store, ir_node *count, ir_type *alloc_type,
ir_where_alloc where);
/** Constructor for a Free node.
* node.Adds the node to the block in current_ir_block.
*
* @param *db A pointer for debug information.
- * @param *callee The call node visible in the intra procedural view.
+ * @param *ptr pointer to the called function
+ * @param *call associated call operation
*/
ir_node *new_d_CallBegin(dbg_info *db, ir_node *ptr, ir_node *call);
/* The block oriented interface without debug support */
/*-----------------------------------------------------------------------*/
-/* Needed from the interface with debug support:
-void set_cur_block (ir_node *target); */
-
/** Constructor for a Block node.
*
* Constructor for a Block node. Adds the block to the graph in
- * current_ir_graph. Constructs a Block with a fixed number of
- * predecessors. Does set current_block. Can be used with automatic
- * Phi node construction.
+ * current_ir_graph. Constructs a Block with a fixed number of predecessors.
*
* @param arity The number of control predecessors.
* @param in An array of control predecessors. The length of
* Derives mode from passed tarval. */
ir_node *new_Const_type(tarval *con, ir_type *tp);
-/** Constructor for a SymConst node.
+/** Constructor for a SymConst_type node.
*
- * Adds the node to the block in current_ir_block.
- * This is the constructor for a symbolic constant.
- * There are four kinds of symbolic constants:
- * -# type_tag The symbolic constant represents a type tag. The type the
- * tag stands for is given explicitly.
- * -# size The symbolic constant represents the size of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * -# align The symbolic constant represents the alignment of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * -# addr_name The symbolic constant represents the address of an entity
- * (variable or method). The variable is indicated by a name
- * that is valid for linking.
- * -# addr_ent The symbolic constant represents the address of an entity
- * (variable or method). The variable is given explicitly by
- * a firm entity.
+ * This is the constructor for a symbolic constant.
+ * There are several kinds of symbolic constants:
+ * - symconst_type_tag The symbolic constant represents a type tag. The
+ * type the tag stands for is given explicitly.
+ * - symconst_type_size The symbolic constant represents the size of a type.
+ * The type of which the constant represents the size
+ * is given explicitly.
+ * - symconst_type_align The symbolic constant represents the alignment of a
+ * type. The type of which the constant represents the
+ * size is given explicitly.
+ * - symconst_addr_ent The symbolic constant represents the address of an
+ * entity (variable or method). The variable is given
+ * explicitly by a firm entity.
+ * - symconst_ofs_ent The symbolic constant represents the offset of an
+ * entity in its owner type.
+ * - symconst_enum_const The symbolic constant is a enumeration constant of
+ * an enumeration type.
*
* Inputs to the node:
* No inputs except the block it belongs to.
* Outputs of the node.
* An unsigned integer (I_u) or a pointer (P).
*
+ * Mention union in declaration so that the firmjni generator recognizes that
+ * it can not cast the argument to an int.
+ *
* @param mode The mode for the SymConst.
- * @param value A type or a ident depending on the SymConst kind.
- * @param kind The kind of the symbolic constant: symconst_type_tag, symconst_type_size
- * symconst_type_align, symconst_addr_name or symconst_addr_ent.
+ * @param value A type, ident, entity or enum constant depending on the
+ * SymConst kind.
+ * @param kind The kind of the symbolic constant, see the list above
* @param tp The source type of the constant.
*/
ir_node *new_SymConst_type(ir_mode *mode, union symconst_symbol value, symconst_kind kind, ir_type *tp);
/** Constructor for a SymConst node.
*
- * Adds the node to the block in current_ir_block.
- * This is the constructor for a symbolic constant.
- * There are four kinds of symbolic constants:
- * -# type_tag The symbolic constant represents a type tag. The type the
- * tag stands for is given explicitly.
- * -# size The symbolic constant represents the size of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * -# align The symbolic constant represents the alignment of a type. The
- * type of which the constant represents the size is given
- * explicitly.
- * -# addr_name The symbolic constant represents the address of an entity
- * (variable or method). The variable is indicated by a name
- * that is valid for linking.
- * -# addr_ent The symbolic constant represents the address of an entity
- * (variable or method). The variable is given explicitly by
- * a firm entity.
+ * This is the constructor for a symbolic constant.
+ * There are several kinds of symbolic constants:
+ * - symconst_type_tag The symbolic constant represents a type tag. The
+ * type the tag stands for is given explicitly.
+ * - symconst_type_size The symbolic constant represents the size of a type.
+ * The type of which the constant represents the size
+ * is given explicitly.
+ * - symconst_type_align The symbolic constant represents the alignment of a
+ * type. The type of which the constant represents the
+ * size is given explicitly.
+ * - symconst_addr_ent The symbolic constant represents the address of an
+ * entity (variable or method). The variable is given
+ * explicitly by a firm entity.
+ * - symconst_ofs_ent The symbolic constant represents the offset of an
+ * entity in its owner type.
+ * - symconst_enum_const The symbolic constant is a enumeration constant of
+ * an enumeration type.
*
* Inputs to the node:
* No inputs except the block it belongs to.
* Outputs of the node.
* An unsigned integer (I_u) or a pointer (P).
*
+ * Mention union in declaration so that the firmjni generator recognizes that
+ * it can not cast the argument to an int.
+ *
* @param mode The mode for the SymConst.
- * @param value A type or a ident depending on the SymConst kind.
- * @param kind The kind of the symbolic constant: symconst_type_tag, symconst_type_size
- * symconst_type_align, symconst_addr_name or symconst_addr_ent.
+ * @param value A type, ident, entity or enum constant depending on the
+ * SymConst kind.
+ * @param kind The kind of the symbolic constant, see the list above
*/
ir_node *new_SymConst(ir_mode *mode, union symconst_symbol value, symconst_kind kind);
* constructor copies the method pointer input from the passed Call
* node. Adds the node to the block in current_ir_block.
*
- * @param *callee A pointer to the called procedure.
+ * @param *ptr pointer to the called function
+ * @param *call associated call operation
*/
ir_node *new_CallBegin(ir_node *ptr, ir_node *call);
* Adds the node to the block in current_ir_block.
*
* @param *store The memory which shall contain the new variable.
- * @param *size The number of bytes to allocate.
+ * @param *count The number of objects to allocate.
* @param *alloc_type The type of the allocated variable.
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
-ir_node *new_Alloc(ir_node *store, ir_node *size, ir_type *alloc_type,
+ir_node *new_Alloc(ir_node *store, ir_node *count, ir_type *alloc_type,
ir_where_alloc where);
/** Constructor for a Free node.
int n_outs, ir_asm_constraint *outputs,
int n_clobber, ident *clobber[], ident *asm_text);
-/** Constructor for a Dummy node.
+/**
+ * @brief Constructor for a Dummy node.
*
+ * @param *db debug info for the node
* @param *mode The mode of the node.
+ * @param *irg the graph to put the node into
+ * @returns the newly created note
*/
-ir_node *new_Dummy(ir_mode *mode);
+ir_node *new_rd_Dummy(dbg_info *db, ir_graph *irg, ir_mode *mode);
+/**
+ * @copybrief new_rd_Dummy()
+ *
+ * @param *mode The mode of the node.
+ * @param *irg the graph to put the node into
+ * @returns the newly created note
+ */
ir_node *new_r_Dummy(ir_graph *irg, ir_mode *mode);
-ir_node *new_rd_Dummy(dbg_info *db, ir_graph *irg, ir_mode *mode);
+/**
+ * @copybrief new_rd_Dummy()
+ *
+ * @param *db debug info for the node
+ * @param *mode The mode of the node.
+ * @returns the newly created note
+ */
+ir_node *new_d_Dummy(dbg_info *db, ir_mode *mode);
+
+/**
+ * @copybrief new_rd_Dummy()
+ *
+ * @param *mode The mode of the node.
+ * @returns the newly created note
+ */
+ir_node *new_Dummy(ir_mode *mode);
/*---------------------------------------------------------------------*/
/* The comfortable interface. */
*/
void set_value(int pos, ir_node *value);
-/** Find the value number for a node in the current block.
+/**
+ * Find the value number for a node in the current block.
*
- * This function searches all values in the current block for
- * a given value and returns its value number if it was found, else
- * -1.
- * Note that this does not mean that the value does not exists,
- * it's just not equal the node (for instance behind a Phi/Confirm ...)
+ * @param value the searched value
*
- * @param *value The value to find.
+ * @return the value number of the value or -1 if this value has
+ * no value number in the current block.
*/
int find_value(ir_node *value);