/**
* libFirm initialization parameters.
+ * @deprecated
*/
struct _firm_parameter_t {
/**
/**
* Statistic options. If statistic function where enabled, these
* flags configure it, see enum firmstat_options_t.
+ * @deprecated call firm_init_stat(options) instead
*/
unsigned enable_statistics;
* used before definition. The function should insert a default value,
* and/or raise a compiler error/warning. Note that returning
* an Unknown is allowed here.
+ * @deprecated call ir_set_uninitialized_local_variable_func() instead
*/
uninitialized_local_variable_func_t *initialize_local_func;
type_identify_if_t *ti_if;
/**
- * The interface for the ident module.
- * If not set, the default libFirm ident module (using hash sets).
+ * dummy parameter
+ * (this used to hold an identifier module structure)
*/
- ident_if_t *id_if;
+ void *id_if;
/**
- * The default calling convention.
+ * dummy parameter
+ * (this used to hold a default calling convention, but this concept is no
+ * more. You should always set the calling convention manually after
+ * creating the method entity if you need something else)
*/
unsigned cc_mask;
* Initializes the firm library. Allocates default data structures.
* Initializes configurable behavior of the library.
*
- * @param params A structure containing the parameters of the libFirm.
- *
- * The parameter struct may be NULL. In that case, the original FIRM behavior
- * is conserved.
+ * @param params should be NULL (you can pass a structure containing
+ * initial parameters but this is deprecated)
*/
-FIRM_DLL void ir_init(const firm_parameter_t *params);
+FIRM_API void ir_init(const firm_parameter_t *params);
/**
* Frees all memory occupied by the firm library.
*/
-FIRM_DLL void ir_finish(void);
+FIRM_API void ir_finish(void);
/** returns the libFirm major version number */
-FIRM_DLL unsigned ir_get_version_major(void);
+FIRM_API unsigned ir_get_version_major(void);
/** returns libFirm minor version number */
-FIRM_DLL unsigned ir_get_version_minor(void);
+FIRM_API unsigned ir_get_version_minor(void);
/** returns string describing libFirm revision */
-FIRM_DLL const char *ir_get_version_revision(void);
+FIRM_API const char *ir_get_version_revision(void);
/** returns string describing libFirm build */
-FIRM_DLL const char *ir_get_version_build(void);
+FIRM_API const char *ir_get_version_build(void);
-/** a list of firm kinds
- @@@ not all datatypes are tagged yet. */
+/**
+ * a list of firm kinds
+ * Most important datastructures in firm contain a firm_kind field at the
+ * beginning so given void* pointer you can usually still guess the kind
+ * of thing the pointer points to.
+ * This is used in debug helper functions and printers.
+ */
typedef enum {
k_BAD = 0, /**< An invalid firm node. */
k_entity, /**< An entity. */
*
* @param firm_thing pointer representing a firm object
*/
-FIRM_DLL firm_kind get_kind(const void *firm_thing);
+FIRM_API firm_kind get_kind(const void *firm_thing);
/** Returns the kind of a thing as a string. */
-FIRM_DLL const char *print_firm_kind(void *firm_thing);
+FIRM_API const char *print_firm_kind(void *firm_thing);
/** Print an identification of a firm thing. */
-FIRM_DLL void firm_identify_thing(void *X);
+FIRM_API void firm_identify_thing(void *X);
#include "end.h"