/* init functions are not public */
# include "tv_t.h"
# include "tpop_t.h"
+# include "irprog_t.h"
# include "irnode_t.h"
# include "irmode_t.h"
+# include "ircons_t.h"
# include "irgraph_t.h"
# include "type_t.h"
# include "type_identify.h"
# include "firmstat.h"
+# include "irreflect_t.h"
+# include "irarch.h"
void
init_firm(const firm_parameter_t *param)
if (param) {
/* check for reasonale size */
- assert(param->size <= sizeof(def_params) && (param->size & 3) == 0 && "parameter struct not initialized ???");
+ 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;
}
/* initialize all ident stuff */
- id_init(1024);
+ init_ident(def_params.id_if, 1024);
/* enhanced statistics, need idents */
- stat_init(def_params.enable_statistics);
+ init_stat(def_params.enable_statistics);
/* create the type kinds. */
init_tpop();
/* create an obstack and put all tarvals in a pdeq */
/* init graph construction */
init_irgraph();
/* kind of obstack initialization */
- init_mangle();
+ firm_init_mangle();
/* initalize all op codes an irnode can consist of */
init_op();
/* called once for each run of this library */
/* Constructs some idents needed. */
init_type();
/* allocate a hash table. */
- init_type_identify(def_params.compare_types_func, def_params.hash_types_func);
+ init_type_identify(def_params.ti_if);
+ /* Init reflection facility. */
+ init_rflct();
+
+ /* Init architecture dependent optimizations. */
+ arch_dep_init(arch_dep_default_factory);
+ arch_dep_set_opts(arch_dep_mul_to_shift | arch_dep_div_to_shift | arch_dep_mod_to_shift);
}
finish_op();
finish_mode();
finish_tpop();
- id_finish();
+ finish_ident();
}