Interference matrix is now initialized faster
[libfirm] / ir / be / bemain.c
index c5b235f..924d203 100644 (file)
@@ -154,7 +154,7 @@ static const lc_opt_table_entry_t be_main_options[] = {
        LC_OPT_ENT_BOOL     ("omitleaffp", "omit frame pointer in leaf routines",                 &be_options.omit_leaf_fp),
        LC_OPT_ENT_BOOL     ("pic",        "create PIC code",                                     &be_options.pic),
        LC_OPT_ENT_BOOL     ("gprof",      "create gprof profiling code",                         &be_options.gprof),
-       LC_OPT_ENT_ENUM_PTR ("verify",       "verify the backend irg",                              &vrfy_var),
+       LC_OPT_ENT_ENUM_PTR ("verify",     "verify the backend irg",                              &vrfy_var),
        LC_OPT_ENT_BOOL     ("time",       "get backend timing statistics",                       &be_options.timing),
        LC_OPT_ENT_BOOL     ("profile",    "instrument the code for execution count profiling",   &be_options.opt_profile),
        LC_OPT_ENT_ENUM_PTR ("sched",      "select a scheduler",                                  &sched_var),
@@ -445,6 +445,8 @@ static void dump(int mask, ir_graph *irg, const char *suffix,
  */
 static void initialize_birg(be_irg_t *birg, ir_graph *irg, be_main_env_t *env)
 {
+       irg->be_data = birg;
+
        memset(birg, 0, sizeof(*birg));
        birg->irg = irg;
        birg->main_env = env;
@@ -574,7 +576,6 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
        /* First: initialize all birgs */
        for(i = 0; i < num_birgs; ++i) {
                ir_graph *irg = backend_irg_list ? backend_irg_list[i] : get_irp_irg(i);
-               irg->be_data = &birgs[i];
                initialize_birg(&birgs[i], irg, &env);
        }
        arch_env_handle_intrinsics(arch_env);
@@ -841,7 +842,7 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
 
 #define LC_EMIT(timer)  \
                stat_ev_if {    \
-                       stat_ev_dbl(ir_timer_get_name(timer), ir_timer_elapsed_msec(timer));  \
+                       stat_ev_dbl(ir_timer_get_name(timer), ir_timer_elapsed_usec(timer));  \
                } else { \
                        printf("%-20s: %8.3lf msec\n", ir_timer_get_description(timer), (double)ir_timer_elapsed_usec(timer) / 1000.0); \
                } \