new SymConst semantics
[libfirm] / ir / ir / ircons.h
index c292b7e..56cb597 100644 (file)
  *    ir_node *new_Return   (ir_node *store, int arity, ir_node **in);
  *    ir_node *new_Raise    (ir_node *store, ir_node *obj);
  *    ir_node *new_Const    (ir_mode *mode, tarval *con);
- *    ir_node *new_SymConst (type_or_id_p value, symconst_kind kind);
+ *    ir_node *new_SymConst (symconst_symbol value, symconst_kind kind);
  *    ir_node *new_simpleSel (ir_node *store, ir_node *objptr, entity *ent);
  *    ir_node *new_Sel    (ir_node *store, ir_node *objptr, int arity,
  *                         ir_node **in, entity *ent);
 /** Constructor for a Block node.
  *
  * Constructs a mature block with the given predecessors.  Use Unknown
- * nodes as predecessors to constuct a block if the number of
+ * 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.
@@ -1249,7 +1249,7 @@ ir_node *new_rd_Return (dbg_info *db, ir_graph *irg, ir_node *block,
 ir_node *new_rd_Raise  (dbg_info *db, ir_graph *irg, ir_node *block,
                        ir_node *store, ir_node *obj);
 
-/** Constructor for a Const node.
+/** Constructor for a Const_type node.
  *
  * The constant represents a target value.  This constructor sets high
  * level type information for the constant value.
@@ -1307,7 +1307,7 @@ ir_node *new_rd_Const  (dbg_info *db, ir_graph *irg, ir_node *block,
  * @param value   A type, entity or a ident depending on the SymConst kind.
  */
 ir_node *new_rd_SymConst (dbg_info *db, ir_graph *irg, ir_node *block,
-                         type_or_id_p value, symconst_kind symkind);
+                         symconst_symbol value, symconst_kind symkind);
 
 /** Constructor for a Sel node.
  *
@@ -1372,7 +1372,7 @@ ir_node *new_rd_Call   (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *st
  * @param *callee A pointer to the called procedure.
  * @param arity   The number of procedure parameters.
  * @param *in[]   An array with the pointers to the parameters. The constructor
- *                copies this array. The constructor copies this array.
+ *                copies this array.
  * @param *tp     Type information of the procedure called.
  */
 ir_node *new_rd_FuncCall (dbg_info *db, ir_graph *irg, ir_node *block,
@@ -1622,7 +1622,7 @@ ir_node *new_rd_Cast   (dbg_info* db, ir_graph *irg, ir_node *block,
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
  * @param arity  The number of predecessors
- * @param *in[]    Array with predecessors.  The constructor copies this array.
+ * @param *in[]  Array with predecessors.  The constructor copies this array.
  * @param *mode  The mode of it's inputs and output.
  */
 ir_node *new_rd_Phi    (dbg_info *db, ir_graph *irg, ir_node *block, int arity,
@@ -1849,6 +1849,13 @@ ir_node *new_rd_Filter (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *ar
 /*-------------------------------------------------------------------------*/
 
 /** 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.
+ *
  *
  * @param irg    The ir graph the block belongs to.
  * @param arity  The number of control predecessors.
@@ -1872,6 +1879,8 @@ ir_node *new_r_Start  (ir_graph *irg, ir_node *block);
 ir_node *new_r_End    (ir_graph *irg, ir_node *block);
 
 /** Constructor for a Jmp node.
+ *
+ * Jmp represents control flow to a single control successor.
  *
  * @param *irg    The ir graph the node belongs to.
  * @param *block  The ir block the node belongs to.
@@ -1879,6 +1888,13 @@ ir_node *new_r_End    (ir_graph *irg, ir_node *block);
 ir_node *new_r_Jmp    (ir_graph *irg, ir_node *block);
 
 /** Constructor for a Cond node.
+ *
+ * If c is mode_b represents a conditional branch (if/else). If c is
+ * mode_Is/mode_Iu (?) represents a switch.  (Allocates dense Cond
+ * node, default Proj is 0.)
+ *
+ * This is not consistent:  Input to Cond is Is, Proj has as proj number
+ * longs.
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -1887,6 +1903,9 @@ ir_node *new_r_Jmp    (ir_graph *irg, ir_node *block);
 ir_node *new_r_Cond   (ir_graph *irg, ir_node *block, ir_node *c);
 
 /** Constructor for a Return node.
+ *
+ * Returns the memory an zero or more return values.  Only node that
+ * can end regular control flow.
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -1908,6 +1927,10 @@ ir_node *new_r_Raise  (ir_graph *irg, ir_node *block,
                ir_node *store, ir_node *obj);
 
 /** Constructor for a Const node.
+ *
+ * Constructor for a Const node. The constant represents a target
+ * value.  Sets the type information to type_unknown.  (No more
+ * supported: If tv is entity derives a somehow useful type.)
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -1918,23 +1941,51 @@ ir_node *new_r_Const  (ir_graph *irg, ir_node *block,
                ir_mode *mode, tarval *con);
 
 /** 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.
+ *
+ *    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).
  *
  * @param *irg    The ir graph the node  belongs to.
  * @param *block  The ir block the node belongs to.
- * @param volue
+ * @param volue   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.
  */
 ir_node *new_r_SymConst (ir_graph *irg, ir_node *block,
-                       type_or_id_p value, symconst_kind symkind);
+                       symconst_symbol value, symconst_kind symkind);
 
 /** Constructor for a Sel node.
+ *
+ * The select node selects an entity (field or method) from an entity
+ * with a compound type.  It explicitly specifies the entity selected.
+ * Dynamically the node may select entities that overwrite the given
+ * entity.  If the selected entity is an array element entity the Sel
+ * node takes the required array indicees as inputs.
  *
  * @param   *irg       The ir graph the node  belongs to.
  * @param   *block     The ir block the node belongs to.
- * @param   *store     The memory in which the object the entity should be selected from is allocated.
- * @param   *objptr    The object from that the Sel operation selects a single attribute out.
- * @param   *n_index   The  index of the selected object from the array.
- * @param   *index[]     Array with index inputs to the node. The constructor copies this array.
+ * @param   *store     The memory in which the object the entity should be selected
+ *                     from is allocated.
+ * @param   *objptr    A pointer to a compound entity the Sel operation selects a
+ *                     single attribute from.
+ * @param   *n_index   The number of array indicees needed to select an array element entity.
+ * @param   *index[]   If the compound entity is an array the indicees of the selected
+ *                     element entity.  The constructor copies this array.
  * @param   *ent       The entity to select.
  */
 ir_node *new_r_Sel    (ir_graph *irg, ir_node *block, ir_node *store,
@@ -1942,6 +1993,8 @@ ir_node *new_r_Sel    (ir_graph *irg, ir_node *block, ir_node *store,
                entity *ent);
 
 /** Constructor for a InstOf node.
+ *
+ * For translating Java.  Not supported as standard firm node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -1952,8 +2005,9 @@ ir_node *new_r_Sel    (ir_graph *irg, ir_node *block, ir_node *store,
  */
 ir_node *new_r_InstOf (ir_graph *irg, ir_node *block, ir_node *x, ir_node *y, type *z);
 
-/**
- * Constructor for a Call node.
+/** Constructor for a Call node.
+ *
+ *  Represents all kinds of method and function calls.
  *
  * @param   *irg    The ir graph the node  belongs to.
  * @param   *block  The ir block the node belongs to.
@@ -1968,8 +2022,7 @@ ir_node *new_r_Call   (ir_graph *irg, ir_node *block, ir_node *store,
                ir_node *callee, int arity, ir_node *in[],
                type *tp);
 
-/**
- * Constructor for a Add node.
+/** Constructor for a Add node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -1994,8 +2047,7 @@ ir_node *new_r_Add    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Sub    (ir_graph *irg, ir_node *block,
                ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Minus node.
+/** Constructor for a Minus node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2005,8 +2057,7 @@ ir_node *new_r_Sub    (ir_graph *irg, ir_node *block,
  */
 ir_node *new_r_Minus  (ir_graph *irg, ir_node *block,
                ir_node *op,  ir_mode *mode);
-/**
- * Constructor for a Mul node.
+/** Constructor for a Mul node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2018,8 +2069,7 @@ ir_node *new_r_Minus  (ir_graph *irg, ir_node *block,
 ir_node *new_r_Mul    (ir_graph *irg, ir_node *block,
                ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Quot node.
+/** Constructor for a Quot node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2031,8 +2081,7 @@ ir_node *new_r_Mul    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Quot   (ir_graph *irg, ir_node *block,
                ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a DivMod node.
+/** Constructor for a DivMod node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2044,8 +2093,7 @@ ir_node *new_r_Quot   (ir_graph *irg, ir_node *block,
 ir_node *new_r_DivMod (ir_graph *irg, ir_node *block,
                ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Div node.
+/** Constructor for a Div node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2057,8 +2105,7 @@ ir_node *new_r_DivMod (ir_graph *irg, ir_node *block,
 ir_node *new_r_Div    (ir_graph *irg, ir_node *block,
                ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Mod node.
+/** Constructor for a Mod node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2070,8 +2117,7 @@ ir_node *new_r_Div    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Mod    (ir_graph *irg, ir_node *block,
                ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Abs node.
+/** Constructor for a Abs node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2082,8 +2128,7 @@ ir_node *new_r_Mod    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Abs    (ir_graph *irg, ir_node *block,
                        ir_node *op, ir_mode *mode);
 
-/**
- * Constructor for a And node.
+/** Constructor for a And node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2095,8 +2140,7 @@ ir_node *new_r_Abs    (ir_graph *irg, ir_node *block,
 ir_node *new_r_And    (ir_graph *irg, ir_node *block,
                ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Or node.
+/** Constructor for a Or node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2108,8 +2152,7 @@ ir_node *new_r_And    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Or     (ir_graph *irg, ir_node *block,
                ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Eor node.
+/** Constructor for a Eor node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2121,8 +2164,7 @@ ir_node *new_r_Or     (ir_graph *irg, ir_node *block,
 ir_node *new_r_Eor    (ir_graph *irg, ir_node *block,
                ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Not node.
+/** Constructor for a Not node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2133,8 +2175,7 @@ ir_node *new_r_Eor    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Not    (ir_graph *irg, ir_node *block,
                ir_node *op, ir_mode *mode);
 
-/**
- * Constructor for a Cmp node.
+/** Constructor for a Cmp node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2145,8 +2186,7 @@ ir_node *new_r_Not    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Cmp    (ir_graph *irg, ir_node *block,
                ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Shl node.
+/** Constructor for a Shl node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2158,8 +2198,7 @@ ir_node *new_r_Cmp    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Shl    (ir_graph *irg, ir_node *block,
                ir_node *op, ir_node *k, ir_mode *mode);
 
-/**
- * Constructor for a Shr node.
+/** Constructor for a Shr node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2184,8 +2223,7 @@ ir_node *new_r_Shr    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Shrs   (ir_graph *irg, ir_node *block,
                ir_node *op, ir_node *k, ir_mode *mode);
 
-/**
- * Constructor for a Rot node.
+/** Constructor for a Rot node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2197,8 +2235,7 @@ ir_node *new_r_Shrs   (ir_graph *irg, ir_node *block,
 ir_node *new_r_Rot    (ir_graph *irg, ir_node *block,
                ir_node *op, ir_node *k, ir_mode *mode);
 
-/**
- * Constructor for a Conv node.
+/** Constructor for a Conv node.
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2209,8 +2246,9 @@ ir_node *new_r_Rot    (ir_graph *irg, ir_node *block,
 ir_node *new_r_Conv   (ir_graph *irg, ir_node *block,
                ir_node *op, ir_mode *mode);
 
-/**
- * Constructor for a Cast node.
+/** Constructor for a Cast node.
+ *
+ * High level type cast
  *
  * @param   *irg   The ir graph the node  belongs to.
  * @param   *block The ir block the node belongs to.
@@ -2218,12 +2256,10 @@ ir_node *new_r_Conv   (ir_graph *irg, ir_node *block,
  * @param   *to_tp The type of this the operand muss be casted .
  *
  */
-
 ir_node *new_r_Cast   (ir_graph *irg, ir_node *block,
                ir_node *op, type *to_tp);
 
-/**
- * Constructor for a Phi node.
+/** Constructor for a Phi node.
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -2235,8 +2271,7 @@ ir_node *new_r_Cast   (ir_graph *irg, ir_node *block,
 ir_node *new_r_Phi    (ir_graph *irg, ir_node *block, int arity,
                       ir_node *in[], ir_mode *mode);
 
-/**
- * Constructor for a Load node.
+/** Constructor for a Load node.
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -2246,8 +2281,7 @@ ir_node *new_r_Phi    (ir_graph *irg, ir_node *block, int arity,
  */
 ir_node *new_r_Load   (ir_graph *irg, ir_node *block,
                ir_node *store, ir_node *adr);
-/**
- * Constructor for a Store node.
+/** Constructor for a Store node.
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -2258,8 +2292,9 @@ ir_node *new_r_Load   (ir_graph *irg, ir_node *block,
 
 ir_node *new_r_Store  (ir_graph *irg, ir_node *block,
                ir_node *store, ir_node *adr, ir_node *val);
-/**
- * Constructor for a Alloc node.
+/** Constructor for a Alloc node.
+ *
+ * The Alloc node extends the memory by space for an entity of type alloc_type.
  *
  * @param *irg        The ir graph the node  belongs to.
  * @param *block      The ir block the node belongs to.
@@ -2272,8 +2307,11 @@ ir_node *new_r_Store  (ir_graph *irg, ir_node *block,
 
 ir_node *new_r_Alloc  (ir_graph *irg, ir_node *block, ir_node *store,
                ir_node *size, type *alloc_type, where_alloc where);
-/**
- * Constructor for a Free node.
+
+/** Constructor for a Free node.
+ *
+ * Frees the memory occupied by the entity pointed to by the pointer
+ * arg.  Type indicates the type of the entity the argument points to.
  *
  * @param *irg        The ir graph the node  belongs to.
  * @param *block      The ir block the node belongs to.
@@ -2283,23 +2321,28 @@ ir_node *new_r_Alloc  (ir_graph *irg, ir_node *block, ir_node *store,
  * @param *free_type  The type of the freed variable.
  *
  */
-
 ir_node *new_r_Free   (ir_graph *irg, ir_node *block, ir_node *store,
                ir_node *ptr, ir_node *size, type *free_type);
 
-/**
- * Constructor for a  Sync node.
+/** Constructor for a  Sync node.
+ *
+ * Merges several memory values.  The node assumes that a variable
+ * either occurs only in one of the memories, or it contains the same
+ * value in all memories where it occurs.
  *
  * @param *irg      The ir graph the node  belongs to.
  * @param *block    The ir block the node belongs to.
  * @param  arity    The number of memories to syncronize.
- * @param  *in[]     An array of pointers to nodes that produce an output of  type memory. The constructor copies this array.
+ * @param  *in[]    An array of pointers to nodes that produce an output of  type memory.
+ *                  The constructor copies this array.
  *
  */
 ir_node *new_r_Sync   (ir_graph *irg, ir_node *block, int arity, ir_node *in[]);
 
-/**
- * Constructor for a Proj node.
+/** Constructor for a Proj node.
+ *
+ * Projects a single value out of a tuple.  The parameter proj gives the
+ * position of the value within the tuple.
  *
  * @param *irg   The ir graph the node  belongs to.
  * @param *block The ir block the node belongs to.
@@ -2308,12 +2351,12 @@ ir_node *new_r_Sync   (ir_graph *irg, ir_node *block, int arity, ir_node *in[]);
  * @param proj   The position of the value in the tuple.
  *
  */
-
 ir_node *new_r_Proj   (ir_graph *irg, ir_node *block, ir_node *arg,
                       ir_mode *mode, long proj);
 
-/**
- * Constructor for a defaultProj node.
+/** Constructor for a defaultProj node.
+ *
+ * Represents the default control flow of a Switch-Cond node.
  *
  * @param *irg      The ir graph the node  belongs to.
  * @param *block    The ir block the node belongs to.
@@ -2324,8 +2367,10 @@ ir_node *new_r_Proj   (ir_graph *irg, ir_node *block, ir_node *arg,
 ir_node *new_r_defaultProj (ir_graph *irg, ir_node *block, ir_node *arg, long max_proj);
 
 
-/**
- * Constructor for a Tuple node.
+/** Constructor for a Tuple node.
+ *
+ * This is an auxiliary node to replace a node that returns a tuple
+ * without changing the corresponding Proj nodes.
  *
  * @param *irg    The ir graph the node  belongs to.
  * @param *block  The ir block the node belongs to.
@@ -2335,8 +2380,10 @@ ir_node *new_r_defaultProj (ir_graph *irg, ir_node *block, ir_node *arg, long ma
  */
 ir_node *new_r_Tuple  (ir_graph *irg, ir_node *block, int arity, ir_node *in[]);
 
-/**
- * Constructor for a Id node.
+/** Constructor for a Id node.
+ *
+ * This is an auxiliary node to replace a node that returns a single
+ * value.
  *
  * @param *irg    The ir graph the node  belongs to.
  * @param *block  The ir block the node belongs to.
@@ -2347,8 +2394,10 @@ ir_node *new_r_Tuple  (ir_graph *irg, ir_node *block, int arity, ir_node *in[]);
 ir_node *new_r_Id     (ir_graph *irg, ir_node *block,
                ir_node *val, ir_mode *mode);
 
-/**
- * Constructor for a Bad node.
+/** Constructor for a Bad node.
+ *
+ * Returns the unique Bad node of the graph.  The same as
+ * get_irg_bad().
  *
  * @param *irg    The ir graph the node  belongs to.
  *
@@ -2356,9 +2405,8 @@ ir_node *new_r_Id     (ir_graph *irg, ir_node *block,
 
 ir_node *new_r_Bad    (ir_graph *irg);
 
-/**
+/** Constructor for a Confirm node.
  *
- * Constructor for a Confirm node.
  * Specifies constraints for a value.  To support dataflow analyses.
  *
  * Example: If the value never exceeds '100' this is expressed by placing a
@@ -2375,9 +2423,9 @@ ir_node *new_r_Bad    (ir_graph *irg);
 ir_node *new_r_Confirm (ir_graph *irg, ir_node *block,
             ir_node *val, ir_node *bound, pn_Cmp cmp);
 
-/**
+/** Constructor for a Unknown node.
  *
- * Constructor for a Unknown node.  Represents an arbtrary valus.  Places the node in
+ * Represents an arbtrary valus.  Places the node in
  * the start block.
  *
  * @param *irg    The ir graph the node  belongs to.
@@ -2385,48 +2433,54 @@ ir_node *new_r_Confirm (ir_graph *irg, ir_node *block,
  */
 ir_node *new_r_Unknown(ir_graph *irg, ir_mode *m);
 
-/**
- * Constructor for a CallBegin node.
+/** Constructor for a CallBegin node.
+ *
+ * CallBegin represents control flow depending of the pointer value
+ * representing the called method to the called methods.  The
+ * constructor copies the method pointer input from the passed Call
+ * node.
  *
  * @param *irg    The ir graph the node belong to.
  * @param *block  The block the node belong to.
  * @param *callee The call node bisible in the  intra procedural view.
  *
  */
-
 ir_node *new_r_CallBegin(ir_graph *irg, ir_node *block, ir_node *callee);
 
-/**
- * Constructor for a EndReg node.
+/** Constructor for a EndReg node.
+ *
+ * Used to represent regular procedure end in interprocedual view.
  *
  * @param *irg    The ir graph the node belong to.
  * @param *block  The block the node belong to.
  *
  */
-
 ir_node *new_r_EndReg (ir_graph *irg, ir_node *block);
 
-/**
- * Constructor for a EndExcept node.
+/** Constructor for a EndExcept node.
+ *
+ * Used to represent exceptional procedure end in interprocedural view.
  *
  * @param *irg    The ir graph the node belong to.
  * @param *block  The block the node belong to.
  *
  */
-
 ir_node *new_r_EndExcept(ir_graph *irg, ir_node *block);
 
-/**
- * Constructor for a Break node.
+/** Constructor for a Break node.
+ *
+ * Break represents control flow to a single control successor just as Jmp.
+ * The blocks separated by a break may not be concatenated by an optimization.
+ * It is used for the interprocedural representation where blocks are parted
+ * behind Call nodes to represent the control flow to called procedures.
  *
  * @param *irg    The ir graph the node belong to.
  * @param *block  The block the node belong to.
  *
  */
-
 ir_node *new_r_Break  (ir_graph *irg, ir_node *block);
 
-/**
+/** Constructor for a Filter node.
  *
  * Constructor for a Filter node. Adds the node to the block in current_ir_block.
  * Filter is a node with two views used to construct the interprocedural view.
@@ -2447,14 +2501,17 @@ ir_node *new_r_Break  (ir_graph *irg, ir_node *block);
 ir_node *new_r_Filter (ir_graph *irg, ir_node *block, ir_node *arg,
                ir_mode *mode, long proj);
 
-/**
- * Constructor for a FuncCall node.
+/** Constructor for a FuncCall node.
+ *
+ *  FuncCall is a function Call that has no side effects.  Therefore there
+ *  is not memory operand or result.
  *
  * @param *irg    The ir graph the node belong to.
  * @param *block  The block the node belong to.
  * @param *callee A pointer to the called procedure.
  * @param arity   The number of procedure parameters.
- * @param *in[]   An array with the pointers to the parameters. The constructor copies this array.
+ * @param *in[]   An array with the pointers to the parameters.
+ *                The constructor copies this array.
  * @param *type   Type information of the procedure called.
  *
  */
@@ -2470,8 +2527,9 @@ ir_node *new_r_FuncCall (ir_graph *irg, ir_node *block,
   nodes they construct. */
 void switch_block (ir_node *target);
 
-/**
- * Constructor for a Block node. Adds the block to the graph in current_ir_graph.
+/** Constructor for a Block node.
+ *
+ * Adds the block to the graph in current_ir_graph.
  *
  * @param *db    A Pointer for  debugginfomation.
  * @param arity  The number of control predecessors.
@@ -2480,24 +2538,29 @@ void switch_block (ir_node *target);
  */
 ir_node *new_d_Block(dbg_info* db, int arity, ir_node *in[]);
 
-/**
- * Constructor for a Start node. Adds the node to the block in current_ir_block.
+/** Constructor for a Start node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db    A pointer for debug information.
  *
  */
 ir_node *new_d_Start  (dbg_info* db);
 
-/**
- * Constructor for a End node. Adds the node to the block in current_ir_block.
+/** Constructor for a End node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  *
  */
 ir_node *new_d_End    (dbg_info* db);
 
-/**
- * Constructor for a Jmp node. Adds the node to the block in current_ir_block.
+/** Constructor for a Jmp node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * Jmp represents control flow to a single control successor.
  *
  * @param *db     A pointer for debug information.
  *
@@ -2505,8 +2568,16 @@ ir_node *new_d_End    (dbg_info* db);
 
 ir_node *new_d_Jmp    (dbg_info* db);
 
-/**
- * Constructor for a Cond node. Adds the node to the block in current_ir_block.
+/** Constructor for a Cond node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * If c is mode_b represents a conditional branch (if/else). If c is
+ * mode_Is/mode_Iu (?) represents a switch.  (Allocates dense Cond
+ * node, default Proj is 0.)
+ *
+ * This is not consistent:  Input to Cond is Is, Proj has as proj number
+ * longs.
  *
  * @param *db    A pointer for debug information.
  * @param *c     The conditions parameter.Can be of mode b or I_u.
@@ -2515,8 +2586,12 @@ ir_node *new_d_Jmp    (dbg_info* db);
 
 ir_node *new_d_Cond   (dbg_info* db, ir_node *c);
 
-/**
- * Constructor for a Return node. Adds the node to the block in current_ir_block.
+/** Constructor for a Return node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * Returns the memory an zero or more return values.  Only node that
+ * can end regular control flow.
  *
  * @param *db    A pointer for debug information.
  * @param *store The state of memory.
@@ -2527,8 +2602,9 @@ ir_node *new_d_Cond   (dbg_info* db, ir_node *c);
 
 ir_node *new_d_Return (dbg_info* db, ir_node *store, int arity, ir_node *in[]);
 
-/**
- * Constructor for a Raise node. Adds the node to the block in current_ir_block.
+/** Constructor for a Raise node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db    A pointer for debug information.
  * @param *store The current memory.
@@ -2538,8 +2614,12 @@ ir_node *new_d_Return (dbg_info* db, ir_node *store, int arity, ir_node *in[]);
 
 ir_node *new_d_Raise  (dbg_info* db, ir_node *store, ir_node *obj);
 
-/**
- * Constructor for a Const_type node. Adds the node to the block in current_ir_block.
+/** Constructor for a Const_type node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * The constant represents a target value.  This constructor sets high
+ * level type information for the constant value.
  *
  * @param *db    A pointer for debug information.
  * @param *mode  The mode of the operands and redults.
@@ -2550,56 +2630,88 @@ ir_node *new_d_Raise  (dbg_info* db, ir_node *store, ir_node *obj);
 
 ir_node *new_d_Const_type (dbg_info* db, ir_mode *mode, tarval *con, type *tp);
 
-/**
- * Constructor for a Const node. Adds the node to the block in current_ir_block.
+/** Constructor for a Const node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * Constructor for a Const node. The constant represents a target
+ * value.  Sets the type information to type_unknown.  (No more
+ * supported: If tv is entity derives a somehow useful type.)
  *
  * @param *db    A pointer for debug information.
  * @param *mode  The mode of the operands and redults.
  * @param *con   Points to an entry in the constant table. This pointer is added to the attributes of  the node (self->attr.con).
  *
  */
-
 ir_node *new_d_Const  (dbg_info* db, ir_mode *mode, tarval *con);
 
-/**
- * Constructor for a SymConst node. Adds the node to the block in current_ir_block.
- *
- * @param *db     A pointer for debug information.
- * @param value   A type, entity or ident depending on the SymConst kind.
- * @param symkind The kind of the symbolic constant: symconst_type_tag, symconst_size or symconst_addr_name.
- *
- */
-ir_node *new_d_SymConst (dbg_info* db, type_or_id_p value, symconst_kind kind);
-
-/**
- * Constructor for a simpleSel node. Adds the node to the block in current_ir_block.
- *
- * @param   *db        A pointer for debug information.
- * @param   *store     The memory in which the object the entity should be selected from is allocated.
- * @param   *objptr    The object from that the Sel operation selects a single attribute out.
- * @param   *ent       The entity to select.
+/** Constructor for a SymConst node.
  *
- */
-
-ir_node *new_d_simpleSel(dbg_info* db, ir_node *store, ir_node *objptr, entity *ent);
+ *  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.
+ *
+ *    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).
+ *
+ * @param *db     A pointer for debug information.
+ * @param value   A type, entity or ident depending on the SymConst kind.
+ * @param symkind The kind of the symbolic constant: symconst_type_tag, symconst_size or symconst_addr_name.
+ *
+ */
+ir_node *new_d_SymConst (dbg_info* db, symconst_symbol value, symconst_kind kind);
 
-/**
- * Constructor for a Sel node. Adds the node to the block in current_ir_block.
+/** Constructor for a simpleSel node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db        A pointer for debug information.
  * @param   *store     The memory in which the object the entity should be selected from is allocated.
  * @param   *objptr    The object from that the Sel operation selects a single attribute out.
- * @param   arity      The  index of the selected object from the array.
- * @param   *in        Array with index inputs to the node.
  * @param   *ent       The entity to select.
  *
  */
+ir_node *new_d_simpleSel(dbg_info* db, ir_node *store, ir_node *objptr, entity *ent);
 
+/** Constructor for a Sel node.
+ *
+ * The select node selects an entity (field or method) from an entity
+ * with a compound type.  It explicitly specifies the entity selected.
+ * Dynamically the node may select entities that overwrite the given
+ * entity.  If the selected entity is an array element entity the Sel
+ * node takes the required array indicees as inputs.
+ *
+ * @param   *db        A pointer for debug information.
+ * @param   *store     The memory in which the object the entity should be selected
+ *                     from is allocated.
+ * @param   *objptr    A pointer to a compound entity the Sel operation selects a
+ *                     single attribute from.
+ * @param   *n_index   The number of array indicees needed to select an array element entity.
+ * @param   *index[]   If the compound entity is an array the indicees of the selected
+ *                     element entity.  The constructor copies this array.
+ * @param   *ent       The entity to select.
+ */
 ir_node *new_d_Sel    (dbg_info* db, ir_node *store, ir_node *objptr, int arity, ir_node *in[],
                      entity *ent);
 
-/**
- * Constructor for a InstOf node. Adds the node to the block in current_ir_block.
+/** Constructor for a InstOf node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * For translating Java.  Not supported as standard firm node.
  *
  * @param   *db    A pointer for debug information.
  * @param   *store
@@ -2607,11 +2719,12 @@ ir_node *new_d_Sel    (dbg_info* db, ir_node *store, ir_node *objptr, int arity,
  * @param   *ent
  *
  */
-
 ir_node *new_d_InstOf (dbg_info* db, ir_node *store, ir_node *objptr, type *ent);
 
-/**
- * Constructor for a Call node. Adds the node to the block in current_ir_block.
+/** Constructor for a Call node.
+ *
+ *  Represents all kinds of method and function calls.
+ *  Adds the node to the block in current_ir_block.
  *
  * @param   *db     A pointer for debug information.
  * @param   *store  The actual store.
@@ -2625,8 +2738,9 @@ ir_node *new_d_InstOf (dbg_info* db, ir_node *store, ir_node *objptr, type *ent)
 ir_node *new_d_Call   (dbg_info* db, ir_node *store, ir_node *callee, int arity, ir_node *in[],
              type *tp);
 
-/**
- * Constructor for a Add node. Adds the node to the block in current_ir_block.
+/** Constructor for a Add node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op1   The operand 1.
@@ -2634,11 +2748,11 @@ ir_node *new_d_Call   (dbg_info* db, ir_node *store, ir_node *callee, int arity,
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_d_Add    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Sub node. Adds the node to the block in current_ir_block.
+/** Constructor for a Sub node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op1   The operand 1.
@@ -2649,19 +2763,20 @@ ir_node *new_d_Add    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
 ir_node *new_d_Sub    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Minus node. Adds the node to the block in current_ir_block.
+/** Constructor for a Minus node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand .
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_d_Minus  (dbg_info* db, ir_node *op,  ir_mode *mode);
 
-/**
- * Constructor for a Mul node. Adds the node to the block in current_ir_block.
+/** Constructor for a Mul node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op1   The operand 1.
@@ -2669,11 +2784,11 @@ ir_node *new_d_Minus  (dbg_info* db, ir_node *op,  ir_mode *mode);
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_d_Mul    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Quot node. Adds the node to the block in current_ir_block.
+/** Constructor for a Quot node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *memop The store needed to model exceptions
@@ -2681,11 +2796,11 @@ ir_node *new_d_Mul    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_d_Quot   (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a DivMod node. Adds the node to the block in current_ir_block.
+/** Constructor for a DivMod node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *memop The store needed to model exceptions
@@ -2693,11 +2808,11 @@ ir_node *new_d_Quot   (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2)
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_d_DivMod (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Div node. Adds the node to the block in current_ir_block.
+/** Constructor for a Div node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *memop The store needed to model exceptions
@@ -2705,11 +2820,11 @@ ir_node *new_d_DivMod (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2)
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_d_Div    (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Mod node. Adds the node to the block in current_ir_block.
+/** Constructor for a Mod node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *memop The store needed to model exceptions
@@ -2717,22 +2832,22 @@ ir_node *new_d_Div    (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2)
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_d_Mod    (dbg_info* db, ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Abs node. Adds the node to the block in current_ir_block.
+/** Constructor for a Abs node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_d_Abs    (dbg_info* db, ir_node *op,                ir_mode *mode);
 
-/**
- * Constructor for a And node. Adds the node to the block in current_ir_block.
+/** Constructor for a And node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *irg   The ir graph the node  belongs to.
@@ -2742,11 +2857,11 @@ ir_node *new_d_Abs    (dbg_info* db, ir_node *op,                ir_mode *mode);
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_d_And    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Or node. Adds the node to the block in current_ir_block.
+/** Constructor for a Or node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op1   The operand 1.
@@ -2754,11 +2869,11 @@ ir_node *new_d_And    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_d_Or     (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Eor node. Adds the node to the block in current_ir_block.
+/** Constructor for a Eor node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op1   The operand 1.
@@ -2766,22 +2881,22 @@ ir_node *new_d_Or     (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
  * @param   *mode  The mode of the operands and the results.
  *
  */
-
 ir_node *new_d_Eor    (dbg_info* db, ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Not node. Adds the node to the block in current_ir_block.
+/** Constructor for a Not node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_d_Not    (dbg_info* db, ir_node *op,                ir_mode *mode);
 
-/**
- * Constructor for a Shl node. Adds the node to the block in current_ir_block.
+/** Constructor for a Shl node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
@@ -2789,11 +2904,11 @@ ir_node *new_d_Not    (dbg_info* db, ir_node *op,                ir_mode *mode);
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_d_Shl    (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Shr node. Adds the node to the block in current_ir_block.
+/** Constructor for a Shr node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
@@ -2801,11 +2916,11 @@ ir_node *new_d_Shl    (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_d_Shr    (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Shrs node. Adds the node to the block in current_ir_block.
+/** Constructor for a Shrs node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
@@ -2813,11 +2928,11 @@ ir_node *new_d_Shr    (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_d_Shrs   (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Rot node. Adds the node to the block in current_ir_block.
+/** Constructor for a Rot node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
@@ -2825,44 +2940,45 @@ ir_node *new_d_Shrs   (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
  * @param   *mode  The mode of the operand.
  *
  */
-
 ir_node *new_d_Rot    (dbg_info* db, ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Cmp node. Adds the node to the block in current_ir_block.
+/** Constructor for a Cmp node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_d_Cmp    (dbg_info* db, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Conv node. Adds the node to the block in current_ir_block.
+/** Constructor for a Conv node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
  * @param   *mode  The mode of this the operand muss be converted .
  *
  */
-
 ir_node *new_d_Conv   (dbg_info* db, ir_node *op, ir_mode *mode);
 
-/**
- * Constructor for a Cast node. Adds the node to the block in current_ir_block.
+/**Constructor for a Cast node.
+ *
+ * High level type cast
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *db    A pointer for debug information.
  * @param   *op    The operand.
  * @param   *to_tp The type of this the operand muss be casted .
  *
  */
-
 ir_node *new_d_Cast   (dbg_info* db, ir_node *op, type *to_tp);
 
-/**
- * Constructor for a Phi node. Adds the node to the block in current_ir_block.
+/**Constructor for a Phi node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db    A pointer for debugginaromation.
  * @param arity  The number of predecessors
@@ -2870,33 +2986,34 @@ ir_node *new_d_Cast   (dbg_info* db, ir_node *op, type *to_tp);
  * @param *mode  The mode of it's inputs and output.
  *
  */
-
 ir_node *new_d_Phi    (dbg_info* db, int arity, ir_node *in[], ir_mode *mode);
 
-/**
- * Constructor for a Load node. Adds the node to the block in current_ir_block.
+/** Constructor for a Load node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db    A pointer for debug information.
  * @param *store The current memory
  * @param *adr   A pointer to the variable to be read in this memory.
  *
  */
-
 ir_node *new_d_Load   (dbg_info* db, ir_node *store, ir_node *addr);
 
-/**
- * Constructor for a Store node. Adds the node to the block in current_ir_block.
+/** Constructor for a Store node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db    A pointer for debug information.
  * @param *store The current memory
  * @param *adr   A pointer to the variable to be read in this memory.
  * @param *val   The value to write to this variable.
  */
-
 ir_node *new_d_Store  (dbg_info* db, ir_node *store, ir_node *addr, ir_node *val);
 
-/**
- * Constructor for a Alloc node. Adds the node to the block in current_ir_block.
+/**Constructor for a Alloc node.
+ *
+ * The Alloc node extends the memory by space for an entity of type alloc_type.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db         A pointer for debug information.
  * @param *store      The memory which shall contain the new variable.
@@ -2905,12 +3022,14 @@ ir_node *new_d_Store  (dbg_info* db, ir_node *store, ir_node *addr, ir_node *val
  * @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, type *alloc_type,
                      where_alloc where);
 
-/**
- * Constructor for a Free node. Adds the node to the block in current_ir_block.
+/**Constructor for a Free node.
+ *
+ * Frees the memory occupied by the entity pointed to by the pointer
+ * arg.  Type indicates the type of the entity the argument points to.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db         A pointer for debug information.
  * @param *store      The memory which shall contain the new variable.
@@ -2919,24 +3038,30 @@ ir_node *new_d_Alloc  (dbg_info* db, ir_node *store, ir_node *size, type *alloc_
  * @param *free_type  The type of the freed variable.
  *
  */
-
 ir_node *new_d_Free   (dbg_info* db, ir_node *store, ir_node *ptr, ir_node *size,
              type *free_type);
 
-/**
- * Constructor for a  Sync node. Adds the node to the block in current_ir_block.
+/**Constructor for a  Sync node.
+ *
+ * Merges several memory values.  The node assumes that a variable
+ * either occurs only in one of the memories, or it contains the same
+ * value in all memories where it occurs.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db       A pointer for debug information.
  * @param  arity    The number of memories to syncronize.
- * @param  **in     An array of pointers to nodes that produce an output of  type memory.
+ * @param  **in     An array of pointers to nodes that produce an output of type
+ *                  memory.  The constructor copies this array.
  *
  */
-
 ir_node *new_d_Sync   (dbg_info* db, int arity, ir_node *in[]);
 
 
-/**
- * Constructor for a Proj node. Adds the node to the block in current_ir_block.
+/**Constructor for a Proj node.
+ *
+ * Projects a single value out of a tuple.  The parameter proj gives the
+ * position of the value within the tuple.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db    A pointer for deubugginformation.
  * @param arg    A node producing a tuple.
@@ -2944,52 +3069,57 @@ ir_node *new_d_Sync   (dbg_info* db, int arity, ir_node *in[]);
  * @param proj   The position of the value in the tuple.
  *
  */
-
 ir_node *new_d_Proj   (dbg_info* db, ir_node *arg, ir_mode *mode, long proj);
 
 
-/**
- * Constructor for a defaultProj node. Adds the node to the block in current_ir_block.
+/**Constructor for a defaultProj node.
+ *
+ * Represents the default control flow of a Switch-Cond node.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db       A pointer for debug information.
  * @param arg       A node producing a tuple.
  * @param max_ proj The end  position of the value in the tuple.
  *
  */
-
 ir_node *new_d_defaultProj (dbg_info* db, ir_node *arg, long max_proj);
 
-/**
- * Constructor for a Tuple node. Adds the node to the block in current_ir_block.
+/**Constructor for a Tuple node.
+ *
+ * This is an auxiliary node to replace a node that returns a tuple
+ * without changing the corresponding Proj nodes.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  * @param arity   The number of tuple elements.
  * @param **in    An array containing pointers to the nodes producing the tuple elements.
  *
  */
-
 ir_node *new_d_Tuple  (dbg_info* db, int arity, ir_node *in[]);
 
 
-/**
- * Constructor for a Id node. Adds the node to the block in current_ir_block.
- * Performs the Id operation, i.e., does nothing.
+/**Constructor for a Id node.
+ *
+ * This is an auxiliary node to replace a node that returns a single
+ * value. Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  * @param *val    The operand to Id.
  * @param *mode   The mode of *val.
  *
  */
-
 ir_node *new_d_Id     (dbg_info* db, ir_node *val, ir_mode *mode);
 
-/**
- * Returns the unique Bad node.  Same as get_irn_bad(..);
+/**Costructor for a Bad node.
+ *
+ * Returns the unique Bad node of the graph.  The same as
+ * get_irg_bad().
+ *
  */
-
 ir_node *new_d_Bad    (void);
 
-/**
+/** Constructor for a Confirm node.
+ *
  * Constructor for a Confirm node. Adds the node to the block in current_ir_block.
  * Specifies constraints for a value.  To support dataflow analyses.
  *
@@ -3002,56 +3132,64 @@ ir_node *new_d_Bad    (void);
  * @param cmp     The compare operation.
  *
  */
-
 ir_node *new_d_Confirm (dbg_info* db, ir_node *val, ir_node *bound, pn_Cmp cmp);
 
 
-/**
- * Constructor for a Unknown node.  Represents an arbtrary valus.  Places the node in
+/** Constructor for a Unknown node.
+ *
+ * Represents an arbtrary valus.  Places the node in
  * the start block.
  *
  * @param *m      The mode of the unknown value.
  *
  */
-
 ir_node *new_d_Unknown(ir_mode *m);
 
-/**
- * Constructor for a CallBegin node. Adds the node to the block in current_ir_block.
+/** Constructor for a CallBegin node.
+ *
+ * CallBegin represents control flow depending of the pointer value
+ * representing the called method to the called methods.  The
+ * constructor copies the method pointer input from the passed Call
+ * node.Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  * @param *callee The call node bisible in the  intra procedural view.
  *
  */
-
 ir_node *new_d_CallBegin(dbg_info *db, ir_node *callee);
 
-/**
- * Constructor for a EndReg node. Adds the node to the block in current_ir_block.
+/** Constructor for a EndReg node.
+ *
+ *Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  *
  */
-
 ir_node *new_d_EndReg (dbg_info *db);
 
-/**
- * Constructor for a Endexcept node. Adds the node to the block in current_ir_block.
+/**Constructor for a Endexcept node.
+ *
+ * Used to represent regular procedure end in interprocedual view.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  *
  */
-
 ir_node *new_d_EndExcept(dbg_info *db);
 
-/**
- * Constructor for a Breake node. Adds the node to the block in current_ir_block.
+/**Constructor for a Breake node.
+ *
+ * Used to represent exceptional procedure end in interprocedural view.
+ * Adds the node to the block in current_ir_block.
+ *
+ * Break represents control flow to a single control successor just as Jmp.
+ * The blocks separated by a break may not be concatenated by an optimization.
+ * It is used for the interprocedural representation where blocks are parted
+ * behind Call nodes to represent the control flow to called procedures.
  *
  * @param *db     A pointer for debug information.
  *
  */
-
-
 ir_node *new_d_Break (dbg_info *db);
 
 /** Constructor for a Filter node.
@@ -3075,18 +3213,19 @@ ir_node *new_d_Break (dbg_info *db);
 ir_node *new_d_Filter (dbg_info *db, ir_node *arg, ir_mode *mode, long proj);
 
 
-/**
- * Constructor for a FuncCall node. Adds the node to the block in current_ir_block.
+/** Constructor for a FuncCall node.
+ *
+ *  FuncCall is a function Call that has no side effects.  Therefore there
+ *  is not memory operand or result. Adds the node to the block in current_ir_block.
  *
  * @param *db     A pointer for debug information.
  * @param *callee A pointer to the called procedure.
  * @param arity   The number of procedure parameters.
- * @param **in    An array with the pointers to the parameters. The constructor copies this array.
+ * @param **in    An array with the pointers to the parameters.
+ *                The constructor copies this array.
  * @param *tp     Type information of the procedure called.
  *
  */
-
-
 ir_node *new_d_FuncCall (dbg_info* db, ir_node *callee, int arity, ir_node *in[],
                         type *tp);
 
@@ -3112,33 +3251,32 @@ void switch_block (ir_node *target);   */
  */
 ir_node *new_Block(int arity, ir_node *in[]);
 
-/**
+/** Constructor for a Start node.
  *
- * Constructor for a Start node. Adds the node to the block in current_ir_block.
+ * Adds the node to the block in current_ir_block.
  *
  */
-
 ir_node *new_Start  (void);
 
-/**
+/** Constructor for a End node.
  *
- * Constructor for a End node. Adds the node to the block in current_ir_block.
+ * Adds the node to the block in current_ir_block.
  *
  */
-
 ir_node *new_End    (void);
 
-/**
+/** Constructor for a EndReg node.
  *
- * Constructor for a EndReg node. Adds the node to the block in current_ir_block.
+ * Used to represent regular procedure end in interprocedual view.
+ * Adds the node to the block in current_ir_block.
  *
  */
-
 ir_node *new_EndReg (void);
 
 /** Constructor for an EndExpcept node.
  *
- * Constructor for an EndExpcept node. Adds the node to the block in current_ir_block.
+ *  Used to represent exceptional procedure end in interprocedural view.
+ *  Adds the node to the block in current_ir_block.
  *
  *
  *
@@ -3149,105 +3287,144 @@ ir_node *new_EndExcept(void);
  *
  * Constructor for a Jump node. Adds the node to the block in current_ir_block.
  *
+ * Jmp represents control flow to a single control successor.
+ *
  */
-
 ir_node *new_Jmp    (void);
 
-/**
- *
- * Constructor for a Break node. Adds the node to the block in current_ir_block.
+/** Constructor for a Break node.
+ * Break represents control flow to a single control successor just as Jmp.
+ * The blocks separated by a break may not be concatenated by an optimization.
+ * It is used for the interprocedural representation where blocks are parted
+ * behind Call nodes to represent the control flow to called procedures.
+ *Adds the node to the block in current_ir_block.
  *
  */
-
 ir_node *new_Break  (void);
 
-/**
- * Constructor for a Cond node. Adds the node to the block in current_ir_block.
+/**Constructor for a Cond node.
+ *
+ * If c is mode_b represents a conditional branch (if/else). If c is
+ * mode_Is/mode_Iu (?) represents a switch.  (Allocates dense Cond
+ * node, default Proj is 0.). Adds the node to the block in current_ir_block.
+ *
+ * This is not consistent:  Input to Cond is Is, Proj has as proj number
+ * longs.
+ *
  *
  * @param *c     The conditions parameter.Can be of mode b or I_u.
  *
  */
-
 ir_node *new_Cond   (ir_node *c);
 
-/**
- * Constructor for a Return node. Adds the node to the block in current_ir_block.
+/** Constructor for a Return node.
+ *
+ * Returns the memory an zero or more return values.  Only node that
+ * can end regular control flow. Adds the node to the block in current_ir_block.
  *
  * @param *store The state of memory.
  * @param arity  Number of array indexes.
  * @param *in    Array with index inputs to the node.
  *
  */
-
 ir_node *new_Return (ir_node *store, int arity, ir_node *in[]);
 
-/**
- * Constructor for a Raise node. Adds the node to the block in current_ir_block.
+/**Constructor for a Raise node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param *store The current memory.
  * @param *obj   A pointer to the Except variable.
  *
  */
-
 ir_node *new_Raise  (ir_node *store, ir_node *obj);
 
-/**
- * Constructor for a Const node. Adds the node to the block in current_ir_block.
+/** Constructor for a Const node.
+ *
+ * Constructor for a Const node. The constant represents a target
+ * value.  Sets the type information to type_unknown.  (No more
+ * supported: If tv is entity derives a somehow useful type.)
+ * Adds the node to the block in current_ir_block.
  *
  * @param *mode  The mode of the operands and redults.
  * @param *con   Points to an entry in the constant table. This pointer is added to the attributes of  the node (self->attr.con).
  *
  */
-
 ir_node *new_Const  (ir_mode *mode, tarval *con);
 
-/**
- * Constructor for a SymConst node. Adds the node to the block in current_ir_block.
+/** 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.
+ *    - 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.
+ *
+ *    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).
  *
  * @param value   A type or a ident depending on the SymConst kind.
  * @param symkind The kind of the symbolic constant: symconst_type_tag, symconst_size or symconst_addr_name.
  *
  */
-ir_node *new_SymConst (type_or_id_p value, symconst_kind kind);
+ir_node *new_SymConst (symconst_symbol value, symconst_kind kind);
 
-/**
- * Constructor for a simpelSel node.
+/** Constructor for a simpelSel node.
  *
  * @param   *store     The memory in which the object the entity should be selected from is allocated.
  * @param   *objptr    The object from that the Sel operation selects a single attribute out.
  * @param   *ent       The entity to select.
  *
  */
-
 ir_node *new_simpleSel(ir_node *store, ir_node *objptr, entity *ent);
 
-/**
- * Constructor for a Sel node.
+/** Constructor for a Sel node.
  *
- * @param   *store     The memory in which the object the entity should be selected from is allocated.
- * @param   *objptr    The object from that the Sel operation selects a single attribute out.
- * @param   *n_index   The  index of the selected object from the array.
- * @param   *index     Array with index inputs to the node.
- * @param   *ent       The entity to select.
+ * The select node selects an entity (field or method) from an entity
+ * with a compound type.  It explicitly specifies the entity selected.
+ * Dynamically the node may select entities that overwrite the given
+ * entity.  If the selected entity is an array element entity the Sel
+ * node takes the required array indicees as inputs.
  *
+ * @param   *store     The memory in which the object the entity should be selected
+ *                     from is allocated.
+ * @param   *objptr    A pointer to a compound entity the Sel operation selects a
+ *                     single attribute from.
+ * @param   *n_index   The number of array indicees needed to select an array element entity.
+ * @param   *index[]   If the compound entity is an array the indicees of the selected
+ *                     element entity.  The constructor copies this array.
+ * @param   *ent       The entity to select.
  */
-
 ir_node *new_Sel    (ir_node *store, ir_node *objptr, int arity, ir_node *in[],
                      entity *ent);
 
-/**
- * Constructor for a InstOf node. Adds the node to the block in current_ir_block.
+/** Constructor for a InstOf node.
+ *
+ * Adds the node to the block in current_ir_block.
+ * For translating Java.  Not supported as standard firm node.
  *
  * @param   *store
  * @param   *objptr
  * @param   *ent
  *
  */
-
 ir_node *new_InstOf (ir_node *store, ir_node *obj,  type *ent);
 
-/**
- * Constructor for a Call node. Adds the node to the block in current_ir_block.
+/** Constructor for a Call node.
+ *
+ *  Adds the node to the block in current_ir_block.
+ *  Represents all kinds of method and function calls.
  *
  * @param   *store  The actual store.
  * @param   *callee A pointer to the called procedure.
@@ -3256,49 +3433,51 @@ ir_node *new_InstOf (ir_node *store, ir_node *obj,  type *ent);
  * @param   *tp     Type information of the procedure called.
  *
  */
-
 ir_node *new_Call   (ir_node *store, ir_node *callee, int arity, ir_node *in[],
                     type *tp);
 
-/**
- * Constructor for a CallBegin node. Adds the node to the block in current_ir_block.
+/** Constructor for a CallBegin node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *callee A pointer to the called procedure.
  *
  */
-
 ir_node *new_CallBegin(ir_node *callee);
 
-/**
- * Constructor for a Add node. Adds the node to the block in current_ir_block.
+/**Constructor for a Add node.
+ *
+ * CallBegin represents control flow depending of the pointer value
+ * representing the called method to the called methods.  The
+ * constructor copies the method pointer input from the passed Call
+ * node.Adds the node to the block in current_ir_block.
  *
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_Add    (ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Sub node. Adds the node to the block in current_ir_block.
+/** Constructor for a Sub node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_Sub    (ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Minus node. Adds the node to the block in current_ir_block.
+/** Constructor for a Minus node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand .
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_Minus  (ir_node *op,  ir_mode *mode);
 
 /**
@@ -3309,65 +3488,65 @@ ir_node *new_Minus  (ir_node *op,  ir_mode *mode);
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_Mul    (ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Quot node. Adds the node to the block in current_ir_block.
+/** Constructor for a Quot node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *memop The store needed to model exceptions
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_Quot   (ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a DivMod node. Adds the node to the block in current_ir_block.
+/** Constructor for a DivMod node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *memop The store needed to model exceptions
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Div node. Adds the node to the block in current_ir_block.
+/** Constructor for a Div node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *memop The store needed to model exceptions
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_Div    (ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Mod node. Adds the node to the block in current_ir_block.
+/** Constructor for a Mod node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *memop The store needed to model exceptions
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_Mod    (ir_node *memop, ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Abs node. Adds the node to the block in current_ir_block.
+/** Constructor for a Abs node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_Abs    (ir_node *op,                ir_mode *mode);
 
-/**
- * Constructor for a And node. Adds the node to the block in current_ir_block.
+/** Constructor for a And node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
@@ -3384,7 +3563,6 @@ ir_node *new_And    (ir_node *op1, ir_node *op2, ir_mode *mode);
  * @param   *mode  The mode of the operands and the result.
  *
  */
-
 ir_node *new_Or     (ir_node *op1, ir_node *op2, ir_mode *mode);
 
 /**
@@ -3395,28 +3573,27 @@ ir_node *new_Or     (ir_node *op1, ir_node *op2, ir_mode *mode);
  * @param   *mode  The mode of the operands and the results.
  *
  */
-
 ir_node *new_Eor    (ir_node *op1, ir_node *op2, ir_mode *mode);
 
-/**
- * Constructor for a Not node. Adds the node to the block in current_ir_block.
+/** Constructor for a Not node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand.
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_Not    (ir_node *op,                ir_mode *mode);
 
-/**
- * Constructor for a Shl node. Adds the node to the block in current_ir_block.
+/** Constructor for a Shl node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand.
  * @param   *k     The number of bits to  shift the operand .
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_Shl    (ir_node *op,  ir_node *k,   ir_mode *mode);
 
 /**
@@ -3427,94 +3604,92 @@ ir_node *new_Shl    (ir_node *op,  ir_node *k,   ir_mode *mode);
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_Shr    (ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Shrs node. Adds the node to the block in current_ir_block.
+/** Constructor for a Shrs node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand.
  * @param   *k     The number of bits to  shift the operand .
  * @param   *mode  The mode of the operand and the result.
  *
  */
-
 ir_node *new_Shrs   (ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Rot node. Adds the node to the block in current_ir_block.
+/** Constructor for a Rot node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand.
  * @param   *k     The number of bits to rotate the operand.
  * @param   *mode  The mode of the operand.
  *
  */
-
 ir_node *new_Rot    (ir_node *op,  ir_node *k,   ir_mode *mode);
 
-/**
- * Constructor for a Cmp node. Adds the node to the block in current_ir_block.
+/** Constructor for a Cmp node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op1   The operand 1.
  * @param   *op2   The operand 2.
  *
  */
-
 ir_node *new_Cmp    (ir_node *op1, ir_node *op2);
 
-/**
- * Constructor for a Conv node. Adds the node to the block in current_ir_block.
+/** Constructor for a Conv node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param   *op    The operand.
  * @param   *mode  The mode of this the operand muss be converted .
  *
  */
-
 ir_node *new_Conv   (ir_node *op, ir_mode *mode);
 
-/**
- * Constructor for a Cast node. Adds the node to the block in current_ir_block.
+/**Constructor for a Cast node.
+ *
+ * Adds the node to the block in current_ir_block.
+ * High level type cast
  *
  * @param   *op    The operand.
  * @param   *to_tp The type of this the operand muss be casted .
  *
  */
-
 ir_node *new_Cast   (ir_node *op, type *to_tp);
 
-/**
- * Constructor for a Phi node. Adds the node to the block in current_ir_block.
+/** Constructor for a Phi node.
+ *
+ * Adds the node to the block in current_ir_block.
  *
  * @param arity  The number of predecessors
  * @param *in    Array with predecessors
  * @param *mode  The mode of it's inputs and output.
  *
  */
-
 ir_node *new_Phi    (int arity, ir_node *in[], ir_mode *mode);
 
-/**
- * Constructor for a Load node.
+/** Constructor for a Load node.
  *
  * @param *store The current memory
  * @param *addr   A pointer to the variable to be read in this memory.
  *
  */
-
 ir_node *new_Load   (ir_node *store, ir_node *addr);
 
-/**
- * Constructor for a Store node.
+/** Constructor for a Store node.
  *
  * @param *store The current memory
  * @param *addr   A pointer to the variable to be read in this memory.
  * @param *val   The value to write to this variable.
  */
-
 ir_node *new_Store  (ir_node *store, ir_node *addr, ir_node *val);
 
-/**
- * Constructor for a Alloc node. Adds the node to the block in current_ir_block.
+/**Constructor for a Alloc node.
+ *
+ * The Alloc node extends the memory by space for an entity of type alloc_type.
+ * 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.
@@ -3522,13 +3697,15 @@ ir_node *new_Store  (ir_node *store, ir_node *addr, ir_node *val);
  * @param where       Where to allocate the variable, either heap_alloc or stack_alloc.
  *
  */
-
 ir_node *new_Alloc  (ir_node *store, ir_node *size, type *alloc_type,
                      where_alloc where);
 
 
-/**
- * Constructor for a Free node. Adds the node to the block in current_ir_block.
+/**Constructor for a Free node.
+ *
+ * Frees the memory occupied by the entity pointed to by the pointer
+ * arg.  Type indicates the type of the entity the argument points to.
+ * Adds the node to the block in current_ir_block.
  *
  * @param *store      The memory which shall contain the new variable.
  * @param *ptr        The pointer to the object to free.
@@ -3536,21 +3713,28 @@ ir_node *new_Alloc  (ir_node *store, ir_node *size, type *alloc_type,
  * @param *free_type  The type of the freed variable.
  *
  */
-
 ir_node *new_Free   (ir_node *store, ir_node *ptr, ir_node *size,
              type *free_type);
 
-/**
- * Constructor for a  Sync node. Adds the node to the block in current_ir_block.
+/**Constructor for a  Sync node.
+ *
+ * Merges several memory values.  The node assumes that a variable
+ * either occurs only in one of the memories, or it contains the same
+ * value in all memories where it occurs.
+ * Adds the node to the block in current_ir_block.
  *
  * @param  arity    The number of memories to syncronize.
- * @param  **in     An array of pointers to nodes that produce an output of  type memory.
+ * @param  **in     An array of pointers to nodes that produce an output of type
+ *                  memory.  The constructor copies this array.
  *
  */
 ir_node *new_Sync   (int arity, ir_node *in[]);
 
-/**
- * Constructor for a Proj node. Adds the node to the block in current_ir_block.
+/**Constructor for a Proj node.
+ *
+ * Projects a single value out of a tuple.  The parameter proj gives the
+ * position of the value within the tuple.
+ * Adds the node to the block in current_ir_block.
  *
  * @param arg    A node producing a tuple.
  * @param *mode  The mode of the value to project.
@@ -3559,7 +3743,7 @@ ir_node *new_Sync   (int arity, ir_node *in[]);
  */
 ir_node *new_Proj   (ir_node *arg, ir_mode *mode, long proj);
 
-/**
+/**Costructor for a Filter node.
  *
  * Constructor for a Filter node. Adds the node to the block in current_ir_block.
  * Filter is a node with two views used to construct the interprocedural view.
@@ -3577,8 +3761,10 @@ ir_node *new_Proj   (ir_node *arg, ir_mode *mode, long proj);
  */
 ir_node *new_Filter (ir_node *arg, ir_mode *mode, long proj);
 
-/**
- * Constructor for a defaultProj node.Adds the node to the block in current_ir_block.
+/**Constructor for a defaultProj node.
+ *
+ * Represents the default control flow of a Switch-Cond node.
+ * Adds the node to the block in current_ir_block.
  *
  * @param arg       A node producing a tuple.
  * @param max_ proj The end  position of the value in the tuple.
@@ -3586,18 +3772,22 @@ ir_node *new_Filter (ir_node *arg, ir_mode *mode, long proj);
  */
 ir_node *new_defaultProj (ir_node *arg, long max_proj);
 
-/**
- * Constructor for a Tuple node. Adds the node to the block in current_ir_block.
+/**Constructor for a Tuple node.
+ *
+ * This is an auxiliary node to replace a node that returns a tuple
+ * without changing the corresponding Proj nodes.
+ * Adds the node to the block in current_ir_block.
  *
  * @param arity   The number of tuple elements.
  * @param **in    An array containing pointers to the nodes producing the tuple elements.
  *
  */
-
 ir_node *new_Tuple  (int arity, ir_node *in[]);
 
-/**
- * Constructor for a Id node. Adds the node to the block in current_ir_block.
+/**Constructor for a Id node.
+ *
+ * This is an auxiliary node to replace a node that returns a single
+ * value. Adds the node to the block in current_ir_block.
  *
  * @param *val    The operand to Id.
  * @param *mode   The mode of *val.
@@ -3605,18 +3795,19 @@ ir_node *new_Tuple  (int arity, ir_node *in[]);
  */
 ir_node *new_Id     (ir_node *val, ir_mode *mode);
 
-/**
+/**Constructor for a Bad node.
  *
- * Constructor for a Bad node.
- * Adds the node to the block in current_ir_block.
+ * Returns the unique Bad node of the graph.  The same as
+ * get_irg_bad().
  *
  */
 
 ir_node *new_Bad    (void);
 
-/**
- * Constructor for a Confirm node. Adds the node to the block in current_ir_block.
+/** Constructor for a Confirm node.
+ *
  * Specifies constraints for a value.  To support dataflow analyses.
+ * Adds the node to the block in current_ir_block.
  *
  * Example: If the value never exceeds '100' this is expressed by placing a
  * Confirm node val = new_d_Confirm(db, val, 100, '<') on the dataflow edge.
@@ -3628,8 +3819,9 @@ ir_node *new_Bad    (void);
  */
 ir_node *new_Confirm (ir_node *val, ir_node *bound, pn_Cmp cmp);
 
- /**
- * Constructor for a Unknown node.  Represents an arbitrary value.  Places the node in
+/** Constructor for a Unknown node.
+ *
+ * Represents an arbitrary value.  Places the node in
  * the start block.
  *
  * @param *m      The mode of the unknown value.
@@ -3637,16 +3829,18 @@ ir_node *new_Confirm (ir_node *val, ir_node *bound, pn_Cmp cmp);
  */
 ir_node *new_Unknown(ir_mode *m);
 
-/**
- * Constructor for a FuncCall node. Adds the node to the block in current_ir_block.
+/** Constructor for a FuncCall node.
+ *
+ *  FuncCall is a function Call that has no side effects.  Therefore there
+ *  is not memory operand or result.Adds the node to the block in current_ir_block.
  *
  * @param *callee A pointer to the called procedure.
  * @param arity   The number of procedure parameters.
- * @param **in    An array with the pointers to the parameters. The constructor copies this array.
+ * @param **in    An array with the pointers to the parameters.
+ *                The constructor copies this array.
  * @param *tp     Type information of the procedure called.
  *
  */
-
 ir_node *new_FuncCall (ir_node *callee, int arity, ir_node *in[],
                       type *tp);