projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add temporary fix for conv-problems
[libfirm]
/
ir
/
be
/
becopyheur4.c
diff --git
a/ir/be/becopyheur4.c
b/ir/be/becopyheur4.c
index
ece1314
..
7654c69
100644
(file)
--- a/
ir/be/becopyheur4.c
+++ b/
ir/be/becopyheur4.c
@@
-171,10
+171,10
@@
static void dbg_aff_chunk(const co_mst_env_t *env, const aff_chunk_t *c)
*/
static void dbg_admissible_colors(const co_mst_env_t *env, const co_mst_irn_t *node)
{
*/
static void dbg_admissible_colors(const co_mst_env_t *env, const co_mst_irn_t *node)
{
-
bitset_pos_t
idx;
+
unsigned
idx;
(void) env;
(void) env;
- if (bitset_popcnt(node->adm_colors) < 1)
+ if (bitset_popc
ou
nt(node->adm_colors) < 1)
fprintf(stderr, "no admissible colors?!?");
else {
bitset_foreach(node->adm_colors, idx) {
fprintf(stderr, "no admissible colors?!?");
else {
bitset_foreach(node->adm_colors, idx) {
@@
-405,7
+405,7
@@
static void *co_mst_irn_init(ir_phase *ph, const ir_node *irn, void *old)
bitset_andnot(res->adm_colors, env->ignore_regs);
/* compute the constraint factor */
bitset_andnot(res->adm_colors, env->ignore_regs);
/* compute the constraint factor */
- res->constr_factor = (real_t) (1 + env->n_regs - bitset_popcnt(res->adm_colors)) / env->n_regs;
+ res->constr_factor = (real_t) (1 + env->n_regs - bitset_popc
ou
nt(res->adm_colors)) / env->n_regs;
/* set the number of interfering affinity neighbours to -1, they are calculated later */
res->int_aff_neigh = -1;
/* set the number of interfering affinity neighbours to -1, they are calculated later */
res->int_aff_neigh = -1;
@@
-566,7
+566,7
@@
static void aff_chunk_assure_weight(co_mst_env_t *env, aff_chunk_t *c)
node->chunk = c;
if (node->constr_factor > REAL(0.0)) {
node->chunk = c;
if (node->constr_factor > REAL(0.0)) {
-
bitset_pos_t
col;
+
unsigned
col;
bitset_foreach (node->adm_colors, col)
c->color_affinity[col].cost += node->constr_factor;
}
bitset_foreach (node->adm_colors, col)
c->color_affinity[col].cost += node->constr_factor;
}
@@
-588,7
+588,7
@@
static void aff_chunk_assure_weight(co_mst_env_t *env, aff_chunk_t *c)
c->color_affinity[i].cost *= (REAL(1.0) / ARR_LEN(c->n));
c->weight = w;
c->color_affinity[i].cost *= (REAL(1.0) / ARR_LEN(c->n));
c->weight = w;
- // c->weight = bitset_popcnt(c->nodes);
+ // c->weight = bitset_popc
ou
nt(c->nodes);
c->weight_consistent = 1;
}
}
c->weight_consistent = 1;
}
}
@@
-1425,7
+1425,8
@@
static int co_solve_heuristic_mst(copy_opt_t *co)
stat_ev_tim_push();
/* init phase */
stat_ev_tim_push();
/* init phase */
- phase_init(&mst_env.ph, "co_mst", co->irg, PHASE_DEFAULT_GROWTH, co_mst_irn_init, &mst_env);
+ phase_init(&mst_env.ph, co->irg, co_mst_irn_init);
+ phase_set_private(&mst_env.ph, &mst_env);
k = be_put_ignore_regs(co->cenv->birg, co->cls, ignore_regs);
k = n_regs - k;
k = be_put_ignore_regs(co->cenv->birg, co->cls, ignore_regs);
k = n_regs - k;
@@
-1491,7
+1492,7
@@
static int co_solve_heuristic_mst(copy_opt_t *co)
/* free allocated memory */
del_pqueue(mst_env.chunks);
/* free allocated memory */
del_pqueue(mst_env.chunks);
- phase_
free
(&mst_env.ph);
+ phase_
deinit
(&mst_env.ph);
del_pset(mst_env.chunkset);
stat_ev_tim_pop("heur4_total");
del_pset(mst_env.chunkset);
stat_ev_tim_pop("heur4_total");