X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeifg.c;h=1827de1e5ba841a0c567020917351cc511fc3d49;hb=afbbc0b1ccd684c4c24bfd43d0f994123245f39f;hp=50e08994ded0c7e16a6b91617416cc96a8f4301c;hpb=79ed89a676afd08eb739330d46b85b1d1532aec1;p=libfirm diff --git a/ir/be/beifg.c b/ir/be/beifg.c index 50e08994d..1827de1e5 100644 --- a/ir/be/beifg.c +++ b/ir/be/beifg.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -30,6 +30,10 @@ #include +#include "lc_opts.h" +#include "lc_opts_enum.h" + +#include "timing.h" #include "bitset.h" #include "irgwalk.h" #include "irnode_t.h" @@ -74,7 +78,7 @@ size_t (be_ifg_cliques_iter_size)(const be_ifg_t *ifg) return ifg->impl->cliques_iter_size; } -static void *regs_irn_data_init(ir_phase *ph, ir_node *irn, void *data) +static void *regs_irn_data_init(ir_phase *ph, const ir_node *irn, void *data) { coloring_t *coloring = (coloring_t *) ph; (void) data; @@ -180,7 +184,7 @@ int be_ifg_is_simplicial(const be_ifg_t *ifg, const ir_node *irn) int degree = be_ifg_degree(ifg, irn); void *iter = be_ifg_neighbours_iter_alloca(ifg); - ir_node **neighbours = xmalloc(degree * sizeof(neighbours[0])); + ir_node **neighbours = XMALLOCN(ir_node*, degree); ir_node *curr; int i, j; @@ -257,8 +261,8 @@ static int be_ifg_check_cmp_nodes(const void *a, const void *b) const ir_node *node_a = *(ir_node **)a; const ir_node *node_b = *(ir_node **)b; - long nr_a = get_irn_node_nr(node_a); - long nr_b = get_irn_node_nr(node_b); + long nr_a = get_irn_idx(node_a); + long nr_b = get_irn_idx(node_b); return QSORT_CMP(nr_a, nr_b); } @@ -272,7 +276,7 @@ void be_ifg_check_sorted(const be_ifg_t *ifg) const int node_count = be_ifg_check_get_node_count(ifg); int i = 0; - ir_node **all_nodes = xmalloc(node_count * sizeof(all_nodes[0])); + ir_node **all_nodes = XMALLOCN(ir_node*, node_count); be_ifg_foreach_node(ifg, iter1, n) { @@ -290,7 +294,7 @@ void be_ifg_check_sorted(const be_ifg_t *ifg) for (i = 0; i < node_count; i++) { - ir_node **neighbours = xmalloc(node_count * sizeof(neighbours[0])); + ir_node **neighbours = XMALLOCN(ir_node*, node_count); int j = 0; int k = 0; int degree = 0; @@ -330,7 +334,7 @@ void be_ifg_check_sorted_to_file(const be_ifg_t *ifg, FILE *f) const int node_count = be_ifg_check_get_node_count(ifg); int i = 0; - ir_node **all_nodes = xmalloc(node_count * sizeof(all_nodes[0])); + ir_node **all_nodes = XMALLOCN(ir_node*, node_count); be_ifg_foreach_node(ifg, iter1, n) { @@ -348,7 +352,7 @@ void be_ifg_check_sorted_to_file(const be_ifg_t *ifg, FILE *f) for (i = 0; i < node_count; i++) { - ir_node **neighbours = xmalloc(node_count * sizeof(neighbours[0])); + ir_node **neighbours = XMALLOCN(ir_node*, node_count); int j = 0; int k = 0; int degree = 0; @@ -391,7 +395,7 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) copy_opt_t *co; be_ifg_t *old_if = chordal_env->ifg; - lc_timer_t *timer = lc_timer_register("getTime","get Time of copy minimization using the ifg"); + ir_timer_t *timer = ir_timer_register("getTime","get Time of copy minimization using the ifg"); unsigned long elapsed_usec = 0; if (get_irg_estimated_node_cnt(chordal_env->irg) >= BE_CH_PERFORMANCETEST_MIN_NODES) @@ -399,22 +403,22 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) coloring_init(&coloring, chordal_env->irg, chordal_env->birg->main_env->arch_env); coloring_save(&coloring); - lc_timer_reset(timer); + ir_timer_reset(timer); for (i = 0; iifg = be_ifg_std_new(chordal_env); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); - used_memory = lc_get_heap_used_bytes() - used_memory; + used_memory = ir_get_heap_used_bytes() - used_memory; coloring_restore(&coloring); @@ -423,13 +427,13 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) co_build_ou_structure(co); co_build_graph_structure(co); - rt = lc_timer_enter_high_priority(); - lc_timer_start(timer); + rt = ir_timer_enter_high_priority(); + ir_timer_start(timer); co_solve_heuristic_new(co); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); co_free_graph_structure(co); co_free_ou_structure(co); @@ -438,7 +442,7 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) } - elapsed_usec = lc_timer_elapsed_usec(timer); + elapsed_usec = ir_timer_elapsed_usec(timer); /* calculating average */ elapsed_usec = elapsed_usec / tests; @@ -449,17 +453,17 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) for (i = 0; iifg = be_ifg_clique_new(chordal_env); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); - used_memory = lc_get_heap_used_bytes() - used_memory; + used_memory = ir_get_heap_used_bytes() - used_memory; coloring_restore(&coloring); @@ -468,13 +472,13 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) co_build_ou_structure(co); co_build_graph_structure(co); - rt = lc_timer_enter_high_priority(); - lc_timer_start(timer); + rt = ir_timer_enter_high_priority(); + ir_timer_start(timer); co_solve_heuristic_new(co); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); co_free_graph_structure(co); co_free_ou_structure(co); @@ -483,7 +487,7 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) } - elapsed_usec = lc_timer_elapsed_usec(timer); + elapsed_usec = ir_timer_elapsed_usec(timer); /* calculating average */ elapsed_usec = elapsed_usec / tests; @@ -494,17 +498,17 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) for (i = 0; iifg = be_ifg_list_new(chordal_env); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); - used_memory = lc_get_heap_used_bytes() - used_memory; + used_memory = ir_get_heap_used_bytes() - used_memory; coloring_restore(&coloring); @@ -513,13 +517,13 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) co_build_ou_structure(co); co_build_graph_structure(co); - rt = lc_timer_enter_high_priority(); - lc_timer_start(timer); + rt = ir_timer_enter_high_priority(); + ir_timer_start(timer); co_solve_heuristic_new(co); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); co_free_graph_structure(co); co_free_ou_structure(co); @@ -528,7 +532,7 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) } - elapsed_usec = lc_timer_elapsed_usec(timer); + elapsed_usec = ir_timer_elapsed_usec(timer); /* calculating average */ elapsed_usec = elapsed_usec / tests; @@ -539,17 +543,17 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) for (i = 0; iifg = be_ifg_pointer_new(chordal_env); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); - used_memory = lc_get_heap_used_bytes() - used_memory; + used_memory = ir_get_heap_used_bytes() - used_memory; coloring_restore(&coloring); @@ -558,13 +562,13 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) co_build_ou_structure(co); co_build_graph_structure(co); - rt = lc_timer_enter_high_priority(); - lc_timer_start(timer); + rt = ir_timer_enter_high_priority(); + ir_timer_start(timer); co_solve_heuristic_new(co); - lc_timer_stop(timer); - rt = lc_timer_leave_high_priority(); + ir_timer_stop(timer); + rt = ir_timer_leave_high_priority(); co_free_graph_structure(co); co_free_ou_structure(co); @@ -573,7 +577,7 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env) } - elapsed_usec = lc_timer_elapsed_usec(timer); + elapsed_usec = ir_timer_elapsed_usec(timer); /* calculating average */ elapsed_usec = elapsed_usec / tests; @@ -702,11 +706,6 @@ enum { static int ifg_flavor = BE_IFG_STD; -#ifdef WITH_LIBCORE -#include -#include -#include - static const lc_opt_enum_int_items_t ifg_flavor_items[] = { { "std", BE_IFG_STD }, { "fast", BE_IFG_FAST }, @@ -725,16 +724,13 @@ static const lc_opt_table_entry_t be_ifg_options[] = { LC_OPT_ENT_ENUM_PTR ("ifg", "interference graph flavour", &ifg_flavor_var), LC_OPT_LAST }; -#endif /* WITH_LIBCORE */ void be_init_ifg(void) { -#ifdef WITH_LIBCORE lc_opt_entry_t *be_grp = lc_opt_get_grp(firm_opt_get_root(), "be"); lc_opt_entry_t *ifg_grp = lc_opt_get_grp(be_grp, "ifg"); lc_opt_add_table(ifg_grp, be_ifg_options); -#endif } BE_REGISTER_MODULE_CONSTRUCTOR(be_init_ifg);