- removed obstack from be_main_env_t, it was only used to allocate one arch_env,...
[libfirm] / ir / be / beifg.c
index fd020ce..0914d60 100644 (file)
@@ -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.
  *
 
 #include <stdlib.h>
 
-#include <libcore/lc_opts.h>
-#include <libcore/lc_opts_enum.h>
-#include <libcore/lc_timing.h>
+#include "lc_opts.h"
+#include "lc_opts_enum.h"
 
+#include "timing.h"
 #include "bitset.h"
 #include "irgwalk.h"
 #include "irnode_t.h"
@@ -78,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;
@@ -261,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);
 }
@@ -395,30 +395,30 @@ 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)
        {
-               coloring_init(&coloring, chordal_env->irg, chordal_env->birg->main_env->arch_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; i<tests; i++) /* performance test with std */
                {
 
-                       used_memory = lc_get_heap_used_bytes();
+                       used_memory = ir_get_heap_used_bytes();
 
-                       rt = lc_timer_enter_high_priority();
-                       lc_timer_start(timer);
+                       rt = ir_timer_enter_high_priority();
+                       ir_timer_start(timer);
 
                        chordal_env->ifg = 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);
 
@@ -427,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);
@@ -442,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;
 
@@ -453,17 +453,17 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env)
 
                for (i = 0; i<tests; i++)  /* performance test with clique */
                {
-                       used_memory = lc_get_heap_used_bytes();
+                       used_memory = ir_get_heap_used_bytes();
 
-                       rt = lc_timer_enter_high_priority();
-                       lc_timer_start(timer);
+                       rt = ir_timer_enter_high_priority();
+                       ir_timer_start(timer);
 
                        chordal_env->ifg = 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);
 
@@ -472,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);
@@ -487,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;
 
@@ -498,17 +498,17 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env)
 
                for (i = 0; i<tests; i++)  /* performance test with list */
                {
-                       used_memory = lc_get_heap_used_bytes();
+                       used_memory = ir_get_heap_used_bytes();
 
-                       rt = lc_timer_enter_high_priority();
-                       lc_timer_start(timer);
+                       rt = ir_timer_enter_high_priority();
+                       ir_timer_start(timer);
 
                        chordal_env->ifg = 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);
 
@@ -517,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);
@@ -532,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;
 
@@ -543,17 +543,17 @@ void be_ifg_check_performance(be_chordal_env_t *chordal_env)
 
                for (i = 0; i<tests; i++)  /* performance test with pointer */
                {
-                       used_memory = lc_get_heap_used_bytes();
+                       used_memory = ir_get_heap_used_bytes();
 
-                       rt = lc_timer_enter_high_priority();
-                       lc_timer_start(timer);
+                       rt = ir_timer_enter_high_priority();
+                       ir_timer_start(timer);
 
                        chordal_env->ifg = 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);
 
@@ -562,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);
@@ -577,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;
 
@@ -646,7 +646,7 @@ static void int_comp_rec(be_irg_t *birg, be_ifg_t *ifg, ir_node *n, bitset_t *se
        ir_node *m;
 
        be_ifg_foreach_neighbour(ifg, neigh_it, n, m) {
-               if(!bitset_contains_irn(seen, m) && !arch_irn_is(birg->main_env->arch_env, m, ignore)) {
+               if(!bitset_contains_irn(seen, m) && !arch_irn_is(&birg->main_env->arch_env, m, ignore)) {
                        bitset_add_irn(seen, m);
                        int_comp_rec(birg, ifg, m, seen);
                }
@@ -663,7 +663,7 @@ static int int_component_stat(be_irg_t *birg, be_ifg_t *ifg)
        ir_node *n;
 
        be_ifg_foreach_node(ifg, nodes_it, n) {
-               if (! bitset_contains_irn(seen, n) && ! arch_irn_is(birg->main_env->arch_env, n, ignore)) {
+               if (! bitset_contains_irn(seen, n) && ! arch_irn_is(&birg->main_env->arch_env, n, ignore)) {
                        ++n_comp;
                        bitset_add_irn(seen, n);
                        int_comp_rec(birg, ifg, n, seen);