#include "begin.h"
/**
- * libFirm initialization parameters.
- * @deprecated
- */
-struct firm_parameter_t {
- /**
- * The size of this structure. init_firm() will only initialize
- * this amount of data. This allows to add more fields to this structure
- * without breaking compatibility to older source.
- */
- unsigned int size;
-
- /**
- * 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;
-
- /**
- * This function is called, whenever a local variable is
- * 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;
-
- /**
- * The interface functions for the type identification module.
- * If not set, the default implementation with compare_strict() and
- * firm_hash_name() will be used.
- */
- type_identify_if_t *ti_if;
-
- /**
- * dummy parameter
- * (this used to hold an identifier module structure)
- */
- void *id_if;
-
- /**
- * 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;
-
- /**
- * dummy (here was dbg_info *builtin_dbg before)
- */
- void *dummy;
-};
-
-typedef struct firm_parameter_t firm_parameter_t;
-
-/**
- * Initialize the firm library.
- *
* Initializes the firm library. Allocates default data structures.
- * Initializes configurable behavior of the library.
- *
- * @param params should be NULL (you can pass a structure containing
- * initial parameters but this is deprecated)
*/
-FIRM_API void ir_init(const firm_parameter_t *params);
+FIRM_API void ir_init(void);
/**
* Frees all memory occupied by the firm library.
/** returns string describing libFirm build */
FIRM_API const char *ir_get_version_build(void);
-
-
/**
* a list of firm kinds
* Most important datastructures in firm contain a firm_kind field at the
return grp;
}
-void ir_init(const firm_parameter_t *param)
+void ir_init(void)
{
- firm_parameter_t def_params;
- unsigned int size;
-
/* for historical reasons be_init must be run first */
firm_be_init();
- memset(&def_params, 0, sizeof(def_params));
-
- if (param) {
- /* check for reasonable size */
- assert(param->size <= sizeof(def_params) && (param->size & 3) == 0 &&
- "parameter struct not initialized ???");
- size = sizeof(def_params);
- if (param->size < size)
- size = param->size;
-
- memcpy(&def_params, param, size);
- }
-
/* initialize firm flags */
firm_init_flags();
/* initialize all ident stuff */
init_ident();
- /* enhanced statistics, need idents and hooks */
- if (def_params.enable_statistics != 0)
- firm_init_stat(def_params.enable_statistics);
/* Edges need hooks. */
init_edges();
/* create the type kinds. */
firm_init_mangle();
/* initialize all op codes an irnode can consist of */
init_op();
- /* called once for each run of this library */
- if (def_params.initialize_local_func != NULL)
- ir_set_uninitialized_local_variable_func(
- def_params.initialize_local_func);
/* initialize reassociation */
firm_init_reassociation();
/* initialize function call optimization */