fixed 64bit Shift lowering
[libfirm] / ir / be / bemain.c
index 311abc7..6dac697 100644 (file)
@@ -87,7 +87,7 @@ static be_options_t be_options = {
        DUMP_NONE,                         /* dump flags */
        BE_TIME_OFF,                       /* no timing */
        0,                                 /* no opt profile */
-       1,                                 /* try to omit frame pointer */
+       0,                                 /* try to omit frame pointer */
        0,                                 /* no stabs debugging output */
        BE_VRFY_WARN,                      /* verification level: warn */
        BE_SCHED_LIST,                     /* scheduler: list scheduler */
@@ -148,7 +148,7 @@ static lc_opt_enum_int_var_t sched_var = {
 static const lc_opt_table_entry_t be_main_options[] = {
        LC_OPT_ENT_STR      ("config",   "read another config file containing backend options", config_file, sizeof(config_file)),
        LC_OPT_ENT_ENUM_MASK("dump",     "dump irg on several occasions",                       &dump_var),
-       LC_OPT_ENT_NEGBOOL  ("noomitfp", "do not omit frame pointer",                           &be_options.omit_fp),
+       LC_OPT_ENT_BOOL     ("omitfp",   "omit frame pointer",                                  &be_options.omit_fp),
        LC_OPT_ENT_BOOL     ("stabs",    "enable stabs debug support",                          &be_options.stabs_debug_support),
        LC_OPT_ENT_ENUM_PTR ("vrfy",     "verify the backend irg",                              &vrfy_var),
        LC_OPT_ENT_BOOL     ("time",     "get backend timing statistics",                       &be_options.timing),
@@ -323,9 +323,6 @@ static void initialize_birg(be_irg_t *birg, ir_graph *irg, be_main_env_t *env)
        /* Ensure, that the ir_edges are computed. */
        edges_assure(irg);
 
-       /* reset the phi handler. */
-       be_phi_handler_reset(env->phi_handler);
-
        set_irg_phase_state(irg, phase_backend);
 
        dump(DUMP_INITIAL, irg, "-prepared", dump_ir_block_graph);
@@ -450,6 +447,9 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
                /* set the current graph (this is important for several firm functions) */
                current_ir_graph = irg;
 
+               /* reset the phi handler. */
+               be_phi_handler_reset(env.phi_handler);
+
 #ifdef FIRM_STATISTICS
                stat_ev_ctx_push_fobj("irg", irg);
 #endif
@@ -490,9 +490,6 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
                /* some transformations need to be done before abi introduce */
                arch_code_generator_before_abi(birg->cg);
 
-               /* reset the phi handler. */
-               be_phi_handler_reset(env.phi_handler);
-
                /* implement the ABI conventions. */
                BE_TIMER_PUSH(t_abi);
                birg->abi = be_abi_introduce(birg);
@@ -514,6 +511,9 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
                arch_code_generator_prepare_graph(birg->cg);
                BE_TIMER_POP(t_codegen);
 
+               /* reset the phi handler. */
+               be_phi_handler_reset(env.phi_handler);
+
                be_do_stat_nodes(irg, "03 Prepare");
 
                dump(DUMP_PREPARED, irg, "-prepared", dump_ir_block_graph);
@@ -760,7 +760,7 @@ void be_main(FILE *file_handle, const char *cup_name)
        }
 
        if (be_options.statev) {
-               const char *dot = rindex(cup_name, '.');
+               const char *dot = strrchr(cup_name, '.');
                const char *pos = dot ? dot : cup_name + strlen(cup_name);
                char       *buf = alloca(pos - cup_name + 1);
                strncpy(buf, cup_name, pos - cup_name);