X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal_main.c;h=a7159f971bc55d66858d315a1670db7417c8b42e;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=4afa70c0ae02a8ff9b5d3b84931cc5359ee0eebf;hpb=ac27e70e651b32cb031ac354dbae4a6a126ff792;p=libfirm diff --git a/ir/be/bechordal_main.c b/ir/be/bechordal_main.c index 4afa70c0a..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 */ @@ -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); @@ -609,18 +617,6 @@ static be_ra_timer_t *be_ra_chordal_main(const be_irg_t *bi) free_execfreq(chordal_env.exec_freq); BE_TIMER_POP(ra_timer.t_epilog); - - BE_TIMER_PUSH(ra_timer.t_verify); - - /* verify spillslots */ - if (options.vrfy_option == BE_CH_VRFY_WARN) { - be_verify_schedule(irg); - } - else if (options.vrfy_option == BE_CH_VRFY_ASSERT) { - assert(be_verify_schedule(irg) && "Schedule verification failed"); - } - BE_TIMER_POP(ra_timer.t_verify); - BE_TIMER_POP(ra_timer.t_other); #undef BE_TIMER_PUSH