remove symconst_type_tag
[libfirm] / include / libfirm / ircons.h
index 171eebc..935d2a5 100644 (file)
@@ -23,7 +23,6 @@
  *          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:
@@ -1119,8 +1110,6 @@ FIRM_API ir_node *new_rd_Const_long(dbg_info *db, ir_graph *irg,
  *
  *  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.
@@ -1171,15 +1160,6 @@ FIRM_API ir_node *new_rd_SymConst_addr_ent(dbg_info *db, ir_graph *irg,
 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
@@ -1263,8 +1243,9 @@ FIRM_API ir_node *new_rd_defaultProj(dbg_info *db, ir_node *arg, long max_proj);
  */
 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                                 */
@@ -1288,8 +1269,6 @@ FIRM_API ir_node *new_r_Const_long(ir_graph *irg, ir_mode *mode, long value);
  *
  *  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.
@@ -1381,8 +1360,9 @@ FIRM_API ir_node *new_r_defaultProj(ir_node *arg, long max_proj);
  */
 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                                          */
@@ -1413,8 +1393,6 @@ FIRM_API ir_node *new_d_Const_long(dbg_info *db, ir_mode *mode, long value);
  *
  *  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.
@@ -1511,8 +1489,9 @@ FIRM_API ir_node *new_d_defaultProj(dbg_info *db, ir_node *arg, long max_proj);
  */
 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                    */
@@ -1535,8 +1514,6 @@ FIRM_API ir_node *new_Const_long(ir_mode *mode, long value);
  *
  *  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.
@@ -1624,8 +1601,8 @@ FIRM_API ir_node *new_defaultProj(ir_node *arg, long max_proj);
  * @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.                                          */
@@ -1726,7 +1703,6 @@ FIRM_API void set_r_store(ir_graph *irg, ir_node *store);
  * @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 --- */