From: Matthias Braun Date: Tue, 1 Jun 2010 08:15:46 +0000 (+0000) Subject: remove todo nodes from public API, they were outdated or wrong and well the public... X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=0ab34ea9afbd69f195fc6ce7f66b91d346f39c73;p=libfirm remove todo nodes from public API, they were outdated or wrong and well the public headers are not a good place to put TODOs in [r27616] --- diff --git a/include/libfirm/interval_analysis.h b/include/libfirm/interval_analysis.h index 3a55bb839..ae7894b36 100644 --- a/include/libfirm/interval_analysis.h +++ b/include/libfirm/interval_analysis.h @@ -41,10 +41,7 @@ #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. */ diff --git a/include/libfirm/ircons.h b/include/libfirm/ircons.h index 53e502331..3e585b80a 100644 --- a/include/libfirm/ircons.h +++ b/include/libfirm/ircons.h @@ -26,17 +26,6 @@ * @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 * diff --git a/include/libfirm/iroptimize.h b/include/libfirm/iroptimize.h index e5407549a..2d3bcba98 100644 --- a/include/libfirm/iroptimize.h +++ b/include/libfirm/iroptimize.h @@ -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); diff --git a/include/libfirm/trouts.h b/include/libfirm/trouts.h index 48c7399a9..bafb4b029 100644 --- a/include/libfirm/trouts.h +++ b/include/libfirm/trouts.h @@ -29,11 +29,6 @@ * 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 diff --git a/include/libfirm/typerep.h b/include/libfirm/typerep.h index 782c95f4f..de45ebe29 100644 --- a/include/libfirm/typerep.h +++ b/include/libfirm/typerep.h @@ -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); diff --git a/ir/tr/type_t.h b/ir/tr/type_t.h index 7f9c33fdf..1db06dd87 100644 --- a/ir/tr/type_t.h +++ b/ir/tr/type_t.h @@ -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);