X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Farm%2Farm_transform.c;h=0921fd06b036095f98d1921f8362c1dba228f47a;hb=fcb579b8959da1d7563b1a7b9f008a423ffdf75a;hp=ebd4c22f7a7439b1aefa2779d1b8d0a14513c62e;hpb=d51bc5156f1a0c202be8b40c4dd7667bd3a6933e;p=libfirm diff --git a/ir/be/arm/arm_transform.c b/ir/be/arm/arm_transform.c index ebd4c22f7..0921fd06b 100644 --- a/ir/be/arm/arm_transform.c +++ b/ir/be/arm/arm_transform.c @@ -89,8 +89,7 @@ static ir_node *create_mov_node(dbg_info *dbg, ir_node *block, long value) { if (mode_needs_gp_reg(mode)) mode = mode_Iu; res = new_rd_arm_Mov_i(dbg, irg, block, mode, value); - /* ensure the const is scheduled AFTER the stack frame */ - add_irn_dep(res, get_irg_frame(irg)); + be_dep_on_frame(res); return res; } @@ -105,8 +104,7 @@ static ir_node *create_mvn_node(dbg_info *dbg, ir_node *block, long value) { if (mode_needs_gp_reg(mode)) mode = mode_Iu; res = new_rd_arm_Mvn_i(dbg, irg, block, mode, value); - /* ensure the const is scheduled AFTER the stack frame */ - add_irn_dep(res, get_irg_frame(irg)); + be_dep_on_frame(res); return res; } @@ -868,7 +866,7 @@ static ir_node *gen_Load(ir_node *node) { if (be_get_Proj_for_pn(node, pn_Load_res) == NULL) { /* add a result proj and a Keep to produce a pseudo use */ ir_node *proj = new_r_Proj(irg, block, new_load, mode_Iu, pn_arm_Load_res); - be_new_Keep(arch_get_irn_reg_class(env_cg->arch_env, proj, -1), irg, block, 1, &proj); + be_new_Keep(arch_get_irn_reg_class(proj, -1), irg, block, 1, &proj); } return new_load; @@ -1077,8 +1075,7 @@ static ir_node *gen_Const(ir_node *node) { } else { node = new_rd_arm_fpaConst(dbg, irg, block, tv); } - /* ensure the const is scheduled AFTER the stack frame */ - add_irn_dep(node, get_irg_frame(irg)); + be_dep_on_frame(node); return node; } else if (USE_VFP(env_cg->isa)) { @@ -1105,8 +1102,7 @@ static ir_node *gen_SymConst(ir_node *node) { ir_node *res; res = new_rd_arm_SymConst(dbg, irg, block, mode, get_sc_ident(node)); - /* ensure the const is scheduled AFTER the stack frame */ - add_irn_dep(res, get_irg_frame(irg)); + be_dep_on_frame(res); return res; } @@ -1404,7 +1400,7 @@ static ir_node *gen_Proj_be_AddSP(ir_node *node) { if (proj == pn_be_AddSP_sp) { ir_node *res = new_rd_Proj(dbgi, irg, block, new_pred, mode_Iu, pn_arm_SubSPandCopy_stack); - arch_set_irn_register(env_cg->arch_env, res, &arm_gp_regs[REG_SP]); + arch_set_irn_register(res, &arm_gp_regs[REG_SP]); return res; } else if(proj == pn_be_AddSP_res) { return new_rd_Proj(dbgi, irg, block, new_pred, mode_Iu, @@ -1429,7 +1425,7 @@ static ir_node *gen_Proj_be_SubSP(ir_node *node) { if (proj == pn_be_SubSP_sp) { ir_node *res = new_rd_Proj(dbgi, irg, block, new_pred, mode_Iu, pn_arm_AddSP_stack); - arch_set_irn_register(env_cg->arch_env, res, &arm_gp_regs[REG_SP]); + arch_set_irn_register(res, &arm_gp_regs[REG_SP]); return res; } else if (proj == pn_be_SubSP_M) { return new_rd_Proj(dbgi, irg, block, new_pred, mode_M, pn_arm_AddSP_M); @@ -1527,7 +1523,7 @@ static INLINE ir_node *create_const(ir_node **place, block = get_irg_start_block(env_cg->irg); res = func(NULL, env_cg->irg, block); - arch_set_irn_register(env_cg->arch_env, res, reg); + arch_set_irn_register(res, reg); *place = res; add_irn_dep(get_irg_end(env_cg->irg), res); @@ -1590,7 +1586,6 @@ static ir_node *gen_Phi(ir_node *node) { copy_node_attr(node, phi); be_duplicate_deps(node, phi); - be_set_transformed_node(node, phi); be_enqueue_preds(node); return phi; @@ -1713,8 +1708,9 @@ static void arm_register_transformers(void) { /** * Pre-transform all unknown nodes. */ -static void arm_pretransform_node(void *arch_cg) { - arm_code_gen_t *cg = arch_cg; +static void arm_pretransform_node(void) +{ + arm_code_gen_t *cg = env_cg; cg->unknown_gp = be_pre_transform_node(cg->unknown_gp); cg->unknown_fpa = be_pre_transform_node(cg->unknown_fpa); @@ -1765,7 +1761,7 @@ void arm_transform_graph(arm_code_gen_t *cg) { } arm_register_transformers(); env_cg = cg; - be_transform_graph(cg->birg, arm_pretransform_node, cg); + be_transform_graph(cg->birg, arm_pretransform_node); } void arm_init_transform(void) {