#include "irgraph_t.h"
#include "irprintf.h"
#include "obst.h"
+#include "error.h"
#include "bespillmorgan.h"
#include "bechordal_t.h"
/*
* All values that are used within the block are not unused (and therefore not
* livethrough_unused)
+ *
+ * TODO FIXME use block out edges and not schedule to find uses
*/
+ panic("needs fixing");
sched_foreach(block, node) {
int i, arity;
ir_node *node;
int max_pressure;
int loop_unused_spills_needed;
- pset *live_nodes = pset_new_ptr_default();
+ ir_nodeset_t live_nodes;
const be_lv_t *lv = env->lv;
- be_liveness_end_of_block(lv, env->arch, env->cls, block, live_nodes);
- max_pressure = pset_count(live_nodes);
+ ir_nodeset_init(&live_nodes);
+
+ be_liveness_end_of_block(lv, env->arch, env->cls, block, &live_nodes);
+ max_pressure = ir_nodeset_size(&live_nodes);
DBG((dbg, DBG_LIVE, "Reduce pressure to %d In Block %+F:\n", env->registers_available, block));
if(is_Phi(node))
break;
- be_liveness_transfer(env->arch, env->cls, node, live_nodes);
- pressure = pset_count(live_nodes);
+ be_liveness_transfer(env->arch, env->cls, node, &live_nodes);
+ pressure = ir_nodeset_size(&live_nodes);
if(pressure > max_pressure)
max_pressure = pressure;
}
- del_pset(live_nodes);
+ ir_nodeset_destroy(&live_nodes);
loop_unused_spills_needed = max_pressure - env->registers_available;