X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal_main.c;h=a7159f971bc55d66858d315a1670db7417c8b42e;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=a80d70571a2da99108230cc5ccd46d32ca242a69;hpb=eb383da34f77e8666dc1738188618edda9b269d1;p=libfirm diff --git a/ir/be/bechordal_main.c b/ir/be/bechordal_main.c index a80d70571..a7159f971 100644 --- a/ir/be/bechordal_main.c +++ b/ir/be/bechordal_main.c @@ -232,6 +232,9 @@ static const lc_opt_table_entry_t be_chordal_options[] = { { NULL } }; +extern void be_spill_remat_register_options(lc_opt_entry_t *ent); + + static void be_ra_chordal_register_options(lc_opt_entry_t *grp) { static int run_once = 0; @@ -246,6 +249,9 @@ static void be_ra_chordal_register_options(lc_opt_entry_t *grp) co_register_options(chordal_grp); be_java_coal_register_options(chordal_grp); +#ifdef WITH_ILP + be_spill_remat_register_options(chordal_grp); +#endif } #endif /* WITH_LIBCORE */ @@ -379,7 +385,7 @@ static be_ra_timer_t *be_ra_chordal_main(const be_irg_t *bi) ra_timer.t_epilog = lc_timer_register("ra_epilog", "regalloc epilog"); ra_timer.t_live = lc_timer_register("ra_liveness", "be liveness"); ra_timer.t_spill = lc_timer_register("ra_spill", "spiller"); - ra_timer.t_spillslots = lc_timer_register("ra_spill", "spillslots"); + ra_timer.t_spillslots = lc_timer_register("ra_spillslots", "spillslots"); ra_timer.t_color = lc_timer_register("ra_color", "graph coloring"); ra_timer.t_ifg = lc_timer_register("ra_ifg", "interference graph"); ra_timer.t_copymin = lc_timer_register("ra_copymin", "copy minimization"); @@ -483,7 +489,9 @@ static be_ra_timer_t *be_ra_chordal_main(const be_irg_t *bi) ); dump(BE_CH_DUMP_SPILL, irg, chordal_env.cls, "-spill", dump_ir_block_graph_sched); + check_for_memory_operands(&chordal_env); + be_abi_fix_stack_nodes(bi->abi, chordal_env.lv); BE_TIMER_PUSH(ra_timer.t_verify); @@ -589,10 +597,10 @@ static be_ra_timer_t *be_ra_chordal_main(const be_irg_t *bi) /* verify spillslots */ if (options.vrfy_option == BE_CH_VRFY_WARN) { - be_verify_spillslots(irg); + be_verify_spillslots(main_env->arch_env, irg); } else if (options.vrfy_option == BE_CH_VRFY_ASSERT) { - assert(be_verify_spillslots(irg) && "Spillslot verification failed"); + assert(be_verify_spillslots(main_env->arch_env, irg) && "Spillslot verification failed"); } BE_TIMER_POP(ra_timer.t_verify);