projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simplify test case.
[libfirm]
/
ir
/
be
/
beifg.c
diff --git
a/ir/be/beifg.c
b/ir/be/beifg.c
index
2b3715e
..
666954f
100644
(file)
--- a/
ir/be/beifg.c
+++ b/
ir/be/beifg.c
@@
-24,16
+24,14
@@
* @date 18.11.2005
* @version $Id$
*/
* @date 18.11.2005
* @version $Id$
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
#include "config.h"
-#endif
#include <stdlib.h>
#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"
#include "bitset.h"
#include "irgwalk.h"
#include "irnode_t.h"
@@
-59,7
+57,6
@@
typedef struct _coloring_t coloring_t;
struct _coloring_t {
ir_phase ph;
struct _coloring_t {
ir_phase ph;
- const arch_env_t *arch_env;
ir_graph *irg;
};
ir_graph *irg;
};
@@
-80,16
+77,15
@@
size_t (be_ifg_cliques_iter_size)(const be_ifg_t *ifg)
static void *regs_irn_data_init(ir_phase *ph, const 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;
+
(void)
ph;
+ (void)data;
- return (void
*) arch_get_irn_register(coloring->arch_env,
irn);
+ return (void
*)arch_get_irn_register(
irn);
}
}
-
coloring_t *coloring_init(coloring_t *c, ir_graph *irg, const arch_env_t *aenv
)
+
static coloring_t *coloring_init(coloring_t *c, ir_graph *irg
)
{
phase_init(&c->ph, "regs_map", irg, PHASE_DEFAULT_GROWTH, regs_irn_data_init, NULL);
{
phase_init(&c->ph, "regs_map", irg, PHASE_DEFAULT_GROWTH, regs_irn_data_init, NULL);
- c->arch_env = aenv;
c->irg = irg;
return c;
}
c->irg = irg;
return c;
}
@@
-105,15
+101,15
@@
static void restore_irn_color(ir_node *irn, void *c)
coloring_t *coloring = c;
const arch_register_t *reg = phase_get_irn_data(&coloring->ph, irn);
if(reg)
coloring_t *coloring = c;
const arch_register_t *reg = phase_get_irn_data(&coloring->ph, irn);
if(reg)
- arch_set_irn_register(
coloring->arch_env,
irn, reg);
+ arch_set_irn_register(irn, reg);
}
}
-void coloring_save(coloring_t *c)
+
static
void coloring_save(coloring_t *c)
{
irg_walk_graph(c->irg, NULL, get_irn_color, c);
}
{
irg_walk_graph(c->irg, NULL, get_irn_color, c);
}
-void coloring_restore(coloring_t *c)
+
static
void coloring_restore(coloring_t *c)
{
irg_walk_graph(c->irg, NULL, restore_irn_color, c);
}
{
irg_walk_graph(c->irg, NULL, restore_irn_color, c);
}
@@
-184,7
+180,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);
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;
ir_node *curr;
int i, j;
@@
-276,7
+272,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;
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)
{
be_ifg_foreach_node(ifg, iter1, n)
{
@@
-294,7
+290,7
@@
void be_ifg_check_sorted(const be_ifg_t *ifg)
for (i = 0; i < node_count; i++)
{
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;
int j = 0;
int k = 0;
int degree = 0;
@@
-334,7
+330,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;
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)
{
be_ifg_foreach_node(ifg, iter1, n)
{
@@
-352,7
+348,7
@@
void be_ifg_check_sorted_to_file(const be_ifg_t *ifg, FILE *f)
for (i = 0; i < node_count; i++)
{
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;
int j = 0;
int k = 0;
int degree = 0;
@@
-395,30
+391,30
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
copy_opt_t *co;
be_ifg_t *old_if = chordal_env->ifg;
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)
{
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);
coloring_save(&coloring);
coloring_save(&coloring);
-
lc
_timer_reset(timer);
+
ir
_timer_reset(timer);
for (i = 0; i<tests; i++) /* performance test with std */
{
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);
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);
coloring_restore(&coloring);
@@
-427,13
+423,13
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
co_build_ou_structure(co);
co_build_graph_structure(co);
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);
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);
co_free_graph_structure(co);
co_free_ou_structure(co);
@@
-442,7
+438,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;
/* calculating average */
elapsed_usec = elapsed_usec / tests;
@@
-453,17
+449,17
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
for (i = 0; i<tests; i++) /* performance test with clique */
{
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);
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);
coloring_restore(&coloring);
@@
-472,13
+468,13
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
co_build_ou_structure(co);
co_build_graph_structure(co);
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);
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);
co_free_graph_structure(co);
co_free_ou_structure(co);
@@
-487,7
+483,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;
/* calculating average */
elapsed_usec = elapsed_usec / tests;
@@
-498,17
+494,17
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
for (i = 0; i<tests; i++) /* performance test with list */
{
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);
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);
coloring_restore(&coloring);
@@
-517,13
+513,13
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
co_build_ou_structure(co);
co_build_graph_structure(co);
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);
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);
co_free_graph_structure(co);
co_free_ou_structure(co);
@@
-532,7
+528,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;
/* calculating average */
elapsed_usec = elapsed_usec / tests;
@@
-543,17
+539,17
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
for (i = 0; i<tests; i++) /* performance test with pointer */
{
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);
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);
coloring_restore(&coloring);
@@
-562,13
+558,13
@@
void be_ifg_check_performance(be_chordal_env_t *chordal_env)
co_build_ou_structure(co);
co_build_graph_structure(co);
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);
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);
co_free_graph_structure(co);
co_free_ou_structure(co);
@@
-577,7
+573,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;
/* calculating average */
elapsed_usec = elapsed_usec / tests;
@@
-640,15
+636,15
@@
void be_ifg_dump_dot(be_ifg_t *ifg, ir_graph *irg, FILE *file, const be_ifg_dump
bitset_free(nodes);
}
bitset_free(nodes);
}
-static void int_comp_rec(be_i
rg_t *birg, be_i
fg_t *ifg, ir_node *n, bitset_t *seen)
+static void int_comp_rec(be_ifg_t *ifg, ir_node *n, bitset_t *seen)
{
void *neigh_it = be_ifg_neighbours_iter_alloca(ifg);
ir_node *m;
be_ifg_foreach_neighbour(ifg, neigh_it, n, m) {
{
void *neigh_it = be_ifg_neighbours_iter_alloca(ifg);
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(
m, ignore)) {
bitset_add_irn(seen, m);
bitset_add_irn(seen, m);
- int_comp_rec(
birg,
ifg, m, seen);
+ int_comp_rec(ifg, m, seen);
}
}
}
}
@@
-663,10
+659,10
@@
static int int_component_stat(be_irg_t *birg, be_ifg_t *ifg)
ir_node *n;
be_ifg_foreach_node(ifg, nodes_it, n) {
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(
n, ignore)) {
++n_comp;
bitset_add_irn(seen, n);
++n_comp;
bitset_add_irn(seen, n);
- int_comp_rec(
birg,
ifg, n, seen);
+ int_comp_rec(ifg, n, seen);
}
}
}
}