X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firtypeinfo.h;h=9c559dcd2b15852c014bc7aa6a66ca313cd8954e;hb=6cd6e689bec4c3090cf54956ff8b8d4e340085ef;hp=c7664696f8f8c77751b67b64e03cc32ed4e2681f;hpb=6f2b3c2901153e4df55ccea111c25d14b0917065;p=libfirm diff --git a/include/libfirm/irtypeinfo.h b/include/libfirm/irtypeinfo.h index c7664696f..9c559dcd2 100644 --- a/include/libfirm/irtypeinfo.h +++ b/include/libfirm/irtypeinfo.h @@ -22,7 +22,6 @@ * @brief Data structure to hold type information for nodes. * @author Goetz Lindenmaier * @date 28.8.2003 - * @version $Id$ * @brief * Data structure to hold type information for nodes. * @@ -34,6 +33,7 @@ #define FIRM_ANA_IRTYPEINFO_H #include "firm_types.h" +#include "begin.h" /* ------------ Auxiliary type. --------------------------------------- */ @@ -43,7 +43,7 @@ * variable is initialized by init_irtypeinfo(). The type is freed by * free_irtypeinfo(). */ -extern ir_type *initial_type; +FIRM_API ir_type *initial_type; @@ -54,13 +54,15 @@ extern ir_type *initial_type; * Initializes the type information module. * Generates a type inititial_type and sets the type of all nodes to this type. * Calling set/get_irn_typeinfo_type() is invalid before calling init. Requires memory - * in the order of MIN(, #irnodes). + * in the order of MIN(\, \#irnodes). */ -void init_irtypeinfo(void); -void free_irtypeinfo(void); +FIRM_API void init_irtypeinfo(void); +/** Frees memory used by the type information module */ +FIRM_API void free_irtypeinfo(void); /* ------------ Irgraph state handling. ------------------------------- */ +/** typeinfo information state */ typedef enum { ir_typeinfo_none, /**< No typeinfo computed, calls to set/get_irn_typeinfo_type() are invalid. */ @@ -70,8 +72,10 @@ typedef enum { because of other transformations. */ } ir_typeinfo_state; -void set_irg_typeinfo_state(ir_graph *irg, ir_typeinfo_state s); -ir_typeinfo_state get_irg_typeinfo_state(const ir_graph *irg); +/** Sets state of typeinfo information in graph @p irg to @p state. */ +FIRM_API void set_irg_typeinfo_state(ir_graph *irg, ir_typeinfo_state state); +/** Returns state of typeinfo information in graph @p irg. */ +FIRM_API ir_typeinfo_state get_irg_typeinfo_state(const ir_graph *irg); /** Returns accumulated type information state information. * @@ -79,10 +83,11 @@ ir_typeinfo_state get_irg_typeinfo_state(const ir_graph *irg); * consistent. Returns ir_typeinfo_inconsistent if at least one irg has inconsistent * or no type information. Returns ir_typeinfo_none if no irg contains type information. */ -ir_typeinfo_state get_irp_typeinfo_state(void); -void set_irp_typeinfo_state(ir_typeinfo_state s); -/** If typeinfo is consistent, sets it to inconsistent. */ -void set_irp_typeinfo_inconsistent(void); +FIRM_API ir_typeinfo_state get_irp_typeinfo_state(void); +/** Sets state of typeinfo information for the current program to @p state */ +FIRM_API void set_irp_typeinfo_state(ir_typeinfo_state state); +/** Sets state of typeinfo information for the current program to #ir_typeinfo_inconsistent */ +FIRM_API void set_irp_typeinfo_inconsistent(void); /* ------------ Irnode type information. ------------------------------ */ @@ -92,7 +97,10 @@ void set_irp_typeinfo_inconsistent(void); * ir_typeinfo_consistent or ir_typeinfo_inconsistent. They * assume current_ir_graph set properly. */ -ir_type *get_irn_typeinfo_type(const ir_node *n); -void set_irn_typeinfo_type(ir_node *n, ir_type *tp); +FIRM_API ir_type *get_irn_typeinfo_type(const ir_node *n); +/** Sets type information of procedure graph node @p node to type @p type. */ +FIRM_API void set_irn_typeinfo_type(ir_node *node, ir_type *type); + +#include "end.h" #endif