* representation.
* @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Boris Boesler,
* Michael Beck
- * @version $Id$
*/
/**
* -----------------------------------------------------------------------------------------
*
* 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_ent The symbolic constant represents the address of an entity.
*
* Attributes:
* attr.i.num The symconst_addr_ent, i.e. one of
- * -symconst_type_tag
* -symconst_type_size
* -symconst_type_align
* -symconst_addr_ent
*
- * If the attr.i.num is symconst_type_tag, symconst_type_size or symconst_type_align,
+ * If the attr.i.num is symconst_type_size or symconst_type_align,
* the node contains an attribute:
*
* attr.i.*type, a pointer to a type_class.
* Parameter
* arity number of predecessors
* **in array with predecessors
- * *mode The mode of it's inputs and output.
+ * *mode The mode of its inputs and output.
* Inputs:
* A Phi node has as many inputs as the block it belongs to.
* Each input points to a definition of the same value on a
* SPECIAL OPERATIONS
* ------------------
*
- * ir_node *new_Bad (void)
- * -----------------------
- *
- * Returns the unique Bad node current_ir_graph->bad.
- * This node is used to express results of dead code elimination.
- *
* ir_node *new_NoMem (void)
* -----------------------------------------------------------------------------------
*
* replaced by the Tuple operation so that the following Proj nodes have not to
* be changed. (They are hard to find due to the implementation with pointers
* in only one direction.) The Tuple node is smaller than any other
- * node, so that a node can be changed into a Tuple by just changing it's
+ * node, so that a node can be changed into a Tuple by just changing its
* opcode and giving it a new in array.
*
* Parameters
* ir_node *new_Id (ir_node *val, ir_mode *mode)
* ---------------------------------------------
*
- * The single output of the Id operation is it's input. Also needed
+ * The single output of the Id operation is its input. Also needed
* for optimizations.
*
*
* e.g. if there is only one definition of this value, but this
* definition reaches the currend block on several different
* paths. This Phi node will be eliminated if optimizations are
- * turned on right after it's creation.
+ * turned on right after its creation.
* Requires current_block to be set correctly.
*
* There are two special routines for the global store:
*
* 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.
FIRM_API ir_node *new_rd_SymConst_ofs_ent(dbg_info *db, ir_graph *irg,
ir_mode *mode, ir_entity *symbol);
-/** Constructor for a SymConst type_tag node.
- *
- * Same as new_rd_SymConst, except that the constructor is tailored for
- * symconst_type_tag.
- * Adds the SymConst to the start block of irg.
- */
-FIRM_API ir_node *new_rd_SymConst_type_tag(dbg_info *db, ir_graph *irg,
- ir_mode *mode, ir_type *symbol);
-
/** Constructor for a SymConst size node.
*
* Same as new_rd_SymConst, except that the constructor is tailored for
*/
FIRM_API ir_node *new_rd_ASM(dbg_info *db, ir_node *block,
int arity, ir_node *in[], ir_asm_constraint *inputs,
- int n_outs, ir_asm_constraint *outputs,
- int n_clobber, ident *clobber[], ident *asm_text);
+ size_t n_outs, ir_asm_constraint *outputs,
+ size_t n_clobber, ident *clobber[],
+ ident *asm_text);
/*-------------------------------------------------------------------------*/
/* The raw interface without debug support */
*
* 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.
*/
FIRM_API ir_node *new_r_ASM(ir_node *block,
int arity, ir_node *in[], ir_asm_constraint *inputs,
- int n_outs, ir_asm_constraint *outputs,
- int n_clobber, ident *clobber[], ident *asm_text);
+ size_t n_outs, ir_asm_constraint *outputs,
+ size_t n_clobber, ident *clobber[],
+ ident *asm_text);
/*-----------------------------------------------------------------------*/
/* The block oriented interface */
*
* 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.
*/
FIRM_API ir_node *new_d_ASM(dbg_info *db, int arity, ir_node *in[],
ir_asm_constraint *inputs,
- int n_outs, ir_asm_constraint *outputs,
- int n_clobber, ident *clobber[], ident *asm_text);
+ size_t n_outs, ir_asm_constraint *outputs,
+ size_t n_clobber, ident *clobber[],
+ ident *asm_text);
/*-----------------------------------------------------------------------*/
/* The block oriented interface without debug support */
*
* 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.
* @param *asm_text The assembler text.
*/
FIRM_API ir_node *new_ASM(int arity, ir_node *in[], ir_asm_constraint *inputs,
- int n_outs, ir_asm_constraint *outputs,
- int n_clobber, ident *clobber[], ident *asm_text);
+ size_t n_outs, ir_asm_constraint *outputs,
+ size_t n_clobber, ident *clobber[], ident *asm_text);
/*---------------------------------------------------------------------*/
/* The comfortable interface. */
* @param ka The node to keep alive.
*/
FIRM_API void keep_alive(ir_node *ka);
-FIRM_API void r_keep_alive(ir_graph *irg, ir_node *ka);
/* --- initialize and finalize IR construction --- */