fixed typedef
[libfirm] / ir / be / bemain.c
index a554b7b..8ed05fd 100644 (file)
@@ -178,6 +178,10 @@ void be_opt_register(void)
 /* Parse one argument. */
 int be_parse_arg(const char *arg) {
 #ifdef WITH_LIBCORE
+       if (strcmp(arg, "help") == 0 || (arg[0] == '?' && arg[1] == '\0')) {
+               lc_opt_print_help(be_grp_root, stdout);
+               return -1;
+       }
        return lc_opt_from_single_arg(be_grp_root, NULL, arg, NULL);
 #endif /* WITH_LIBCORE */
 }
@@ -280,6 +284,9 @@ static void be_main_loop(FILE *file_handle)
 
        isa = arch_env_get_isa(env.arch_env);
 
+       // /* for debugging, anchors helps */
+       // dump_all_anchors(1);
+
        /* For all graphs */
        for (i = 0, n = get_irp_n_irgs(); i < n; ++i) {
                ir_graph *irg = get_irp_irg(i);
@@ -328,21 +335,22 @@ static void be_main_loop(FILE *file_handle)
 
                dump(DUMP_PREPARED, irg, "-prepared", dump_ir_block_graph);
 
-               /* add Keeps for should_be_different constrained nodes */
-               assure_constraints(&birg);
-               dump(DUMP_PREPARED, irg, "-assured", dump_ir_block_graph);
-
                /* Schedule the graphs. */
                arch_code_generator_before_sched(birg.cg);
                list_sched(&birg, be_disable_mris);
                dump(DUMP_SCHED, irg, "-sched", dump_ir_block_graph_sched);
 
+               /* add Keeps for should_be_different constrained nodes  */
+               /* beware: needs schedule due to usage of be_ssa_constr */
+               assure_constraints(&birg);
+               dump(DUMP_PREPARED, irg, "-assured", dump_ir_block_graph_sched);
+
                /* connect all stack modifying nodes together (see beabi.c) */
                be_abi_fix_stack_nodes(birg.abi);
                dump(DUMP_SCHED, irg, "-fix_stack", dump_ir_block_graph_sched);
 
                /* Verify the schedule */
-               sched_verify_irg(irg);
+               assert(sched_verify_irg(irg));
 
                /* do some statistics */
                be_do_stat_reg_pressure(&birg);
@@ -361,7 +369,6 @@ static void be_main_loop(FILE *file_handle)
 
 //             free_ir_graph(irg);
        }
-
        be_done_env(&env);
 }