Commit 0ab34ea9 authored by Matthias Braun's avatar Matthias Braun
Browse files

remove todo nodes from public API, they were outdated or wrong and well the...

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]
parent f736dac2
......@@ -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. */
......
......@@ -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
*
......
......@@ -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);
......
......@@ -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
......
......@@ -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);
......
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment