#define DEBUG_LVL 0 //(DBG_START | DBG_DECIDE | DBG_WSETS | DBG_FIX | DBG_SPILL)
DEBUG_ONLY(static firm_dbg_module_t *dbg = NULL;)
-#define MIN(a,b) (((a)<(b))?(a):(b))
-
typedef struct _workset_t workset_t;
typedef struct _belady_env_t {
}
DBG((dbg, DBG_DECIDE, " demand = %d\n", demand));
-
/*
* 2. Make room for at least 'demand' slots
*/
before its first usage, remove it from start workset */
for (i=max_allowed; i<ws->len; ++i) {
ir_node *irn = ws->vals[i].irn;
+
if (!pset_find_ptr(bel->used, irn)) {
ir_node *curr_bb = get_nodes_block(bel->instr);
workset_t *ws_start = get_block_info(curr_bb)->ws_start;
user = get_irn_edge(get_irn_irg(irn), irn, 0)->src;
- src = get_irn_n(irn, be_pos_Copy_orig);
+ src = be_get_Copy_op(irn);
set_irn_n(user, 0, src);
}
}