remove todo nodes from public API, they were outdated or wrong and well the public...
authorMatthias Braun <matze@braunis.de>
Tue, 1 Jun 2010 08:15:46 +0000 (08:15 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 1 Jun 2010 08:15:46 +0000 (08:15 +0000)
[r27616]

include/libfirm/interval_analysis.h
include/libfirm/ircons.h
include/libfirm/iroptimize.h
include/libfirm/trouts.h
include/libfirm/typerep.h
ir/tr/type_t.h

index 3a55bb8..ae7894b 100644 (file)
 #include "firm_types.h"
 #include "begin.h"
 
-/** The ins of regions:  regions are loops or blocks.
- *
- *  @todo: we should make a type for the regions, or reuse loop_element.
- */
+/** The ins of regions:  regions are loops or blocks. */
 FIRM_API int get_region_n_ins(void *region);
 FIRM_API void *get_region_in(void *region, int pos);
 FIRM_API void add_region_in(void *region, void *in);
@@ -71,10 +68,7 @@ FIRM_API void *get_loop_cfop(void *region, int pos);
 /** The algorithm to construct the interval graph.
  *
  *  Constructs the cf loop tree and leaves a valid version of it.
- *
- *  @todo: @@@ add flag that states correctness of interval analysis information
- *  to irg.
- **/
+ */
 FIRM_API void construct_intervals(ir_graph *irg);
 
 /** frees interval information of all graphs. */
index 53e5023..3e585b8 100644 (file)
  * @version $Id$
  */
 
-/**@todo
- Ideas for improvement:
- -# Handle construction of exceptions more comfortable:
-    Add new constructors that pass the exception region (or better the
-    Phi for the memories, the ex. region can be found from there) as parameter,
-    constructor then adds all Proj nodes and returns the pointer
-    to the Proj node that selects the result of the arithmetic operation.
- -# Maybe hide the exception region in a global variable, especially if
-    it is always unambiguous.
-*/
-
 /**
  *  @file
  *
index e540754..2d3bcba 100644 (file)
@@ -37,8 +37,8 @@
  * and propagates dead control flow by calling equivalent_node().
  * Independent of compiler flag it removes Tuples from cf edges,
  * Bad predecessors from Blocks and Phis, and unnecessary predecessors of End.
+ * Destroys backedge information.
  *
- * @bug So far destroys backedge information.
  * @bug Chokes on Id nodes if called in a certain order with other
  *      optimizations.  Call local_optimize_graph() before to remove
  *      Ids.
@@ -979,7 +979,8 @@ FIRM_API void garbage_collect_entities(void);
 /** Pass for garbage_collect_entities */
 FIRM_API ir_prog_pass_t *garbage_collect_entities_pass(const char *name);
 
-/** Performs dead node elimination by copying the ir graph to a new obstack.
+/**
+ * Performs dead node elimination by copying the ir graph to a new obstack.
  *
  *  The major intention of this pass is to free memory occupied by
  *  dead nodes and outdated analyzes information.  Further this
@@ -1008,7 +1009,8 @@ FIRM_API void dead_node_elimination(ir_graph *irg);
  */
 FIRM_API ir_graph_pass_t *dead_node_elimination_pass(const char *name);
 
-/** Inlines a method at the given call site.
+/**
+ * Inlines a method at the given call site.
  *
  *  Removes the call node and splits the basic block the call node
  *  belongs to.  Inserts a copy of the called graph between these nodes.
@@ -1043,7 +1045,8 @@ FIRM_API ir_graph_pass_t *dead_node_elimination_pass(const char *name);
  */
 FIRM_API int inline_method(ir_node *call, ir_graph *called_graph);
 
-/** Code Placement.
+/**
+ * Code Placement.
  *
  * Pins all floating nodes to a block where they
  * will be executed only if needed.   Depends on the flag opt_global_cse.
@@ -1051,14 +1054,10 @@ FIRM_API int inline_method(ir_node *call, ir_graph *called_graph);
  * code.  Uses dominator information which it computes if the irg is not
  * in state dom_consistent.  Destroys the out information as it moves nodes
  * to other blocks.  Optimizes Tuples in Control edges.
- * @todo This is not tested!
  *
  * Call remove_critical_cf_edges() before place_code().  This normalizes
  * the control flow graph so that for all operations a basic block exists
  * where they can be optimally placed.
- *
- * @todo A more powerful code placement would move operations past Phi nodes
- * out of loops.
  */
 FIRM_API void place_code(ir_graph *irg);
 
index 48c7399..bafb4b0 100644 (file)
  *  Each entity gets two lists:
  *    - one containing all accesses (Load, (Call), Store),
  *    - and one containing all uses to get a reference (Sel, SymConst).
- *
- * @todo
- *   To list all uses of entities of a type, we also should list all
- *   static/automatic allocated entities in types.  The Alloc nodes
- *   represent only the dynamic allocated entities.
  */
 #ifndef FIRM_ANA_TROUTS_H
 #define FIRM_ANA_TROUTS_H
index 782c95f..de45ebe 100644 (file)
@@ -684,7 +684,7 @@ typedef struct tp_op tp_op;
  * Returns the string for the type opcode.
  *
  * @param op  The type opcode to get the string from.
- * @return a string.  (@todo Null terminated?)
+ * @return    a string.
  */
 FIRM_API const char *get_tpop_name(const tp_op *op);
 
@@ -914,10 +914,9 @@ FIRM_API void resolve_inheritance(mangle_inherited_name_func *mfunc);
 /* Do the sets contain the node itself?  I assume NOT!                     */
 /* ----------------------------------------------------------------------- */
 
-/** The state of the transitive closure.
- *
- *  @todo: we could manage the state for each relation separately.  Invalidating
- *  the entity relations does not mean invalidating the class relation. */
+/**
+ * The state of the transitive closure.
+ */
 typedef enum {
        inh_transitive_closure_none,       /**<  Closure is not computed, can not be accessed. */
        inh_transitive_closure_valid,      /**<  Closure computed and valid. */
@@ -1499,11 +1498,6 @@ FIRM_API int is_class_abstract(const ir_type *clss);
 /** Sets the class abstract flag. */
 FIRM_API void set_class_abstract(ir_type *clss, int flag);
 
-/** Set and get a class' dfn --
-   @todo This is an undocumented field, subject to change! */
-FIRM_API void set_class_dfn(ir_type *clss, int dfn);
-FIRM_API int  get_class_dfn(const ir_type *clss);
-
 /** Returns true if a type is a class type. */
 FIRM_API int is_Class_type(const ir_type *clss);
 
@@ -1839,10 +1833,6 @@ FIRM_API int is_Union_type(const ir_type *uni);
  * - *element_type:   The type of the array elements.
  * - *element_ent:    An entity for the array elements to be used for
  *                      element selection with Sel.
- * @todo
- *   Do we need several entities?  One might want
- *   to select a dimension and not a single element in case of multi
- *   dimensional arrays.
  */
 
 /** Create a new type array.
@@ -2359,16 +2349,14 @@ FIRM_API void type_walk_irg(ir_graph *irg, type_walk_func *pre,
                             type_walk_func *post, void *env);
 
 /**
-    Touches every class in specified order:
-    - first the super class
-    - second the class itself
-    - third the sub classes.  If new classes are created
-    during the traversal these will be visited, too.
-
-    @todo should be named class-walk
-
-    @deprecated will be removed?
-*/
+ * Touches every class in specified order:
+ *    - first the super class
+ *    - second the class itself
+ *    - third the sub classes.  If new classes are created
+ *    during the traversal these will be visited, too.
+ *
+ *    @deprecated will be removed?
+ */
 FIRM_API void type_walk_super2sub(type_walk_func *pre, type_walk_func *post,
                                   void *env);
 
index 7f9c33f..1db06dd 100644 (file)
@@ -278,6 +278,11 @@ void set_union_size(ir_type *tp, unsigned bytes);
 void set_array_size(ir_type *tp, unsigned bytes);
 void set_default_size(ir_type *tp, unsigned bytes);
 
+/** Set and get a class' dfn --
+ * This is an undocumented field, subject to change! */
+void set_class_dfn(ir_type *clss, int dfn);
+int  get_class_dfn(const ir_type *clss);
+
 void add_compound_member(ir_type *compound, ir_entity *entity);
 void remove_compound_member(ir_type *compound, ir_entity *entity);