*/
#include "config.h"
+#include "beschedrss.h"
+
#include <limits.h>
#include "obst.h"
ir_node *irn;
ir_nodeset_iterator_init(&iter, ns);
- while( (irn = ir_nodeset_iterator_next(&iter)) != NULL ) {
+ while ( (irn = ir_nodeset_iterator_next(&iter)) != NULL ) {
ir_fprintf(stderr, "%s%+F\n", prefix, irn);
}
}
plist_element_t *el;
(void) rss;
- assert(is_Sink(v->irn) || ((plist_count(v->descendant_list) > 0 && v->descendants) || 1));
- assert(is_Sink(u->irn) || ((plist_count(u->consumer_list) > 0 && u->consumer) || 1));
-
/* as we loop over the list: loop over the shorter one */
if (plist_count(v->descendant_list) > plist_count(u->consumer_list)) {
list = u->consumer_list;
if (rss->opts->dump_flags & RSS_DUMP_MAXAC)
debug_vcg_dump_pkg(rss, values, iteration);
- if(temp != NULL) {
+ if (temp != NULL) {
ir_nodeset_destroy(temp);
free(temp);
}
be simultaneously alive with u
*/
bitset_copy(bs_tmp, bs_vdesc);
- mu1 = bitset_popcnt(bitset_and(bs_tmp, bs_sv));
+ bitset_and(bs_tmp, bs_sv);
+ mu1 = bitset_popcount(bs_tmp);
/*
mu2 = | accum_desc_all_pkiller(u) without descendants(v) |
*/
if (is_pkiller) {
bitset_copy(bs_tmp, bs_ukilldesc);
- mu2 = bitset_popcnt(bitset_andnot(bs_tmp, bs_vdesc));
+ bitset_andnot(bs_tmp, bs_vdesc);
+ mu2 = bitset_popcount(bs_tmp);
}
else {
mu2 = 0;
arch_put_non_ignore_regs(rss->cls, arch_nonign_bs);
be_abi_put_ignore_regs(rss->abi, rss->cls, abi_ign_bs);
bitset_andnot(arch_nonign_bs, abi_ign_bs);
- available_regs = bitset_popcnt(arch_nonign_bs);
+ available_regs = bitset_popcount(arch_nonign_bs);
//num_live = pset_count(rss->live_block);
//available_regs -= num_live < available_regs ? num_live : 0;
/* update the dvg */
update_dvg(rss, &dvg, ser->v, ser->u);
update_dvg(rss, &dvg, get_rss_irn(rss, ser->edge->src), get_rss_irn(rss, ser->edge->tgt));
- if(sat_vals != NULL) {
+ if (sat_vals != NULL) {
ir_nodeset_destroy(sat_vals);
free(sat_vals);
}
int i, n;
const ir_edge_t *edge;
- phase_init(&rss->ph, "rss block preprocessor", rss->irg, PHASE_DEFAULT_GROWTH, init_rss_irn, NULL);
+ phase_init(&rss->ph, rss->irg, init_rss_irn);
DBG((rss->dbg, LEVEL_1, "preprocessing block %+F\n", block));
rss->block = block;
ir_nodeset_destroy(&rss->live_block);
}
- phase_free(&rss->ph);
+ phase_deinit(&rss->ph);
}
-/**
- * Register the options.
- */
+BE_REGISTER_MODULE_CONSTRUCTOR(be_init_schedrss);
void be_init_schedrss(void)
{
lc_opt_entry_t *be_grp = lc_opt_get_grp(firm_opt_get_root(), "be");
lc_opt_add_table(rss_grp, rss_option_table);
}
-BE_REGISTER_MODULE_CONSTRUCTOR(be_init_schedrss);
-
/**
* Preprocess the irg for scheduling.
*/