Commit 482b6187 authored by Christian Würdig's avatar Christian Würdig
Browse files

spills and reloads don't take frame pointer as input any more

parent a0abe932
......@@ -366,7 +366,6 @@ static void spill_phi(spill_env_t *env, spill_info_t *spillinfo) {
assert(be_is_Reload(reload) || is_Phi(reload));
set_irn_n(reload, get_edge_src_pos(edge), spillinfo->spill);
}
set_irn_n(old_spill, be_pos_Spill_frame, new_Bad());
set_irn_n(old_spill, be_pos_Spill_val, new_Bad());
//sched_remove(old_spill);
spillinfo->old_spill = NULL;
......@@ -429,7 +428,7 @@ static int is_value_available(spill_env_t *env, ir_node *arg, ir_node *reloader)
*
* So we can only do this test for ignore registers (of our register class)
*/
if(arch_get_irn_reg_class(env->arch_env, arg, -1) == env->chordal_env->cls
if(arch_get_irn_reg_class(env->arch_env, arg, -1) == env->cls
&& arch_irn_is(env->arch_env, arg, ignore)) {
int i, arity;
......
......@@ -3401,16 +3401,14 @@ connect_all_spills_with_keep(spill_ilp_t * si)
/** insert a spill at an arbitrary position */
ir_node *be_spill2(const arch_env_t *arch_env, ir_node *irn, ir_node *insert)
{
ir_node *bl = is_Block(insert)?insert:get_nodes_block(insert);
ir_node *bl = is_Block(insert)?insert:get_nodes_block(insert);
ir_graph *irg = get_irn_irg(bl);
ir_node *frame = get_irg_frame(irg);
ir_node *spill;
ir_node *next;
const arch_register_class_t *cls = arch_get_irn_reg_class(arch_env, irn, -1);
const arch_register_class_t *cls_frame = arch_get_irn_reg_class(arch_env, frame, -1);
ir_node *frame = get_irg_frame(irg);
ir_node *spill;
ir_node *next;
const arch_register_class_t *cls = arch_get_irn_reg_class(arch_env, irn, -1);
spill = be_new_Spill(cls, cls_frame, irg, bl, frame, irn);
spill = be_new_Spill(cls, irg, bl, irn);
/*
* search the right insertion point. a spill of a phi cannot be put
......@@ -3424,7 +3422,7 @@ ir_node *be_spill2(const arch_env_t *arch_env, ir_node *irn, ir_node *insert)
* which is its default initialization (see above).
*/
if(bl == get_irg_start_block(irg) && sched_get_time_step(frame) >= sched_get_time_step(insert))
if (bl == get_irg_start_block(irg) && sched_get_time_step(frame) >= sched_get_time_step(insert))
insert = frame;
for (next = sched_next(insert); is_Phi(next) || is_Proj(next); next = sched_next(insert))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment