int get_irg_recursion_depth(ir_graph *irg);
-/** Construct and destruct the callgraph. */
+/** Construct the callgraph. Expects callee information, i.e.,
+ irg_callee_info_consistent must be set. This can be computed with
+ cgana(). */
void compute_callgraph(void);
+/** Destruct the callgraph. */
void free_callgraph(void);
/** Free callee information.
*
- * Sets callee_info_state of the graph passed to none.
+ * Sets callee_info_state of the graph passed to none. Sets callee field
+ * in all call nodes to NULL. Else it happens that the field contains
+ * pointers to other than firm arrays.
*/
void free_callee_info(ir_graph *irg);
/* Optimize the address expressions passed to call nodes.
* Performs only the optimizations done by cgana. */
-/* @@@ move to irgopt ?! */
-/* @@@ not fully implemented as buggy !!! */
void opt_call_addrs(void);
#include "irprog.h"
#include "irgwalk.h"
-/**------------------------------------------------------------------*/
-/* We represent the fields in entities/types by hashmaps. */
-/**------------------------------------------------------------------*/
+/*------------------------------------------------------------------*/
+/* We represent the fields in entities/types by hashmaps. */
+/*------------------------------------------------------------------*/
static pmap *entity_access_map = NULL;
static pmap *entity_reference_map = NULL;
*/
/**
-* @file trouts.h
-*
-* Trouts list all uses of types and entities.
-* Each type gets a list of all Alloc nodes allocating it.
-* 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.
-*
-* @author Goetz Lindenmaier
-*
-*/
+ * @file trouts.h
+ *
+ * Trouts list all uses of types and entities.
+ * Each type gets a list of all Alloc nodes allocating it.
+ * 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.
+ *
+ * @author Goetz Lindenmaier
+ *
+ */
# ifndef _TROUTS_H_
# define _TROUTS_H_