brackets
[libfirm] / ir / common / firm.c
index c42db2f..1f5c023 100644 (file)
@@ -29,6 +29,8 @@
 # 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)
@@ -50,9 +52,9 @@ init_firm(const firm_parameter_t *param)
   }
 
   /* initialize all ident stuff */
-  init_ident (1024);
+  init_ident(def_params.id_if, 1024);
   /* enhanced statistics, need idents */
-  init_stat();
+  init_stat(def_params.enable_statistics);
   /* create the type kinds. */
   init_tpop();
   /* create an obstack and put all tarvals in a pdeq */
@@ -64,7 +66,7 @@ init_firm(const firm_parameter_t *param)
   /* 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 */
@@ -75,7 +77,13 @@ init_firm(const firm_parameter_t *param)
   /* 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);
 }