X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_optimize.c;h=2e6ab0d7cb47f08554da4ddf9bf22847d69c3e21;hb=2b589bc2c8f25c342de8c3320d086a714449259a;hp=be4ec7582bf98c8844f05d06a5c5009b265702b1;hpb=2ebc2d3cd8d238348e733c38712dc037c2d27dd7;p=libfirm diff --git a/ir/be/ia32/ia32_optimize.c b/ir/be/ia32/ia32_optimize.c index be4ec7582..2e6ab0d7c 100644 --- a/ir/be/ia32/ia32_optimize.c +++ b/ir/be/ia32/ia32_optimize.c @@ -153,8 +153,6 @@ static void peephole_ia32_Cmp(ir_node *const node) int ins_permuted; ir_node *test; arch_register_t const *reg; - ir_edge_t const *edge; - ir_edge_t const *tmp; if (get_ia32_op_type(node) != ia32_Normal) return; @@ -188,7 +186,7 @@ static void peephole_ia32_Cmp(ir_node *const node) reg = arch_get_irn_register_out(node, pn_ia32_Cmp_eflags); arch_set_irn_register_out(test, pn_ia32_Test_eflags, reg); - foreach_out_edge_safe(node, edge, tmp) { + foreach_out_edge_safe(node, edge) { ir_node *const user = get_edge_src_irn(edge); if (is_Proj(user)) @@ -221,7 +219,6 @@ static void peephole_ia32_Test(ir_node *node) ir_mode *flags_mode; ir_mode *op_mode; ir_node *schedpoint; - const ir_edge_t *edge; produces_flag_t produced; if (get_nodes_block(left) != block) @@ -364,8 +361,6 @@ static void peephole_ia32_Test(ir_node *node) */ static void peephole_ia32_Return(ir_node *node) { - ir_node *irn; - if (!ia32_cg_config.use_pad_return) return; @@ -405,18 +400,16 @@ static void peephole_ia32_Return(ir_node *node) */ static void peephole_IncSP_Store_to_push(ir_node *irn) { - int i; - int maxslot; - int inc_ofs; - ir_node *node; - ir_node *stores[MAXPUSH_OPTIMIZE]; - ir_node *block; - ir_graph *irg; - ir_node *curr_sp; - ir_mode *spmode; - ir_node *first_push = NULL; - ir_edge_t const *edge; - ir_edge_t const *next; + int i; + int maxslot; + int inc_ofs; + ir_node *node; + ir_node *stores[MAXPUSH_OPTIMIZE]; + ir_node *block; + ir_graph *irg; + ir_node *curr_sp; + ir_mode *spmode; + ir_node *first_push = NULL; memset(stores, 0, sizeof(stores)); @@ -515,7 +508,7 @@ static void peephole_IncSP_Store_to_push(ir_node *irn) mem_proj = new_r_Proj(push, mode_M, pn_ia32_Push_M); /* rewire Store Projs */ - foreach_out_edge_safe(store, edge, next) { + foreach_out_edge_safe(store, edge) { ir_node *proj = get_edge_src_irn(edge); if (!is_Proj(proj)) continue; @@ -534,7 +527,7 @@ static void peephole_IncSP_Store_to_push(ir_node *irn) inc_ofs -= 4; } - foreach_out_edge_safe(irn, edge, next) { + foreach_out_edge_safe(irn, edge) { ir_node *const src = get_edge_src_irn(edge); int const pos = get_edge_src_pos(edge); @@ -580,7 +573,6 @@ static ir_node *create_push(dbg_info *dbgi, ir_node *block, static void peephole_store_incsp(ir_node *store) { dbg_info *dbgi; - ir_node *node; ir_node *block; ir_node *noreg; ir_node *mem; @@ -803,7 +795,6 @@ static void peephole_Load_IncSP_to_pop(ir_node *irn) for (++i; i <= maxslot; ++i) { ir_node *load = loads[i]; ir_node *mem, *pop; - const ir_edge_t *edge, *tmp; const arch_register_t *reg; mem = get_irn_n(load, n_ia32_mem); @@ -821,7 +812,7 @@ static void peephole_Load_IncSP_to_pop(ir_node *irn) sched_add_before(irn, pop); /* rewire now */ - foreach_out_edge_safe(load, edge, tmp) { + foreach_out_edge_safe(load, edge) { ir_node *proj = get_edge_src_irn(edge); set_Proj_pred(proj, pop); @@ -1278,7 +1269,7 @@ void ia32_peephole_optimization(ir_graph *irg) */ /* pass 1 */ - clear_irp_opcodes_generic_func(); + ir_clear_opcodes_generic_func(); register_peephole_optimisation(op_ia32_Cmp, peephole_ia32_Cmp); register_peephole_optimisation(op_ia32_Cmp8Bit, peephole_ia32_Cmp); register_peephole_optimisation(op_ia32_Lea, peephole_ia32_Lea); @@ -1291,7 +1282,7 @@ void ia32_peephole_optimization(ir_graph *irg) be_peephole_opt(irg); /* pass 2 */ - clear_irp_opcodes_generic_func(); + ir_clear_opcodes_generic_func(); register_peephole_optimisation(op_ia32_Const, peephole_ia32_Const); register_peephole_optimisation(op_be_IncSP, peephole_be_IncSP); register_peephole_optimisation(op_ia32_Test, peephole_ia32_Test); @@ -1308,8 +1299,7 @@ void ia32_peephole_optimization(ir_graph *irg) static inline void try_kill(ir_node *node) { if (get_irn_mode(node) == mode_T) { - const ir_edge_t *edge, *next; - foreach_out_edge_safe(node, edge, next) { + foreach_out_edge_safe(node, edge) { ir_node *proj = get_edge_src_irn(edge); try_kill(proj); } @@ -1354,6 +1344,7 @@ static void optimize_conv_store(ir_node *node) if (get_mode_size_bits(conv_mode) < get_mode_size_bits(store_mode)) return; + ir_fprintf(stderr, "Optimisation warning: unoptimized ia32 Store(Conv) (%+F, %+F)\n", node, pred); set_irn_n(node, n_ia32_Store_val, get_irn_n(pred, n_ia32_Conv_I2I_val)); if (get_irn_n_edges(pred_proj) == 0) { kill_node(pred_proj); @@ -1405,6 +1396,7 @@ static void optimize_load_conv(ir_node *node) } /* kill the conv */ + ir_fprintf(stderr, "Optimisation warning: unoptimized ia32 Conv(Load) (%+F, %+F)\n", node, predpred); exchange(node, pred); } @@ -1481,6 +1473,7 @@ static void optimize_conv_conv(ir_node *node) } } + ir_fprintf(stderr, "Optimisation warning: unoptimized ia32 Conv(Conv) (%+F, %+F)\n", node, pred); /* Some user (like Phis) won't be happy if we change the mode. */ set_irn_mode(result_conv, get_irn_mode(node));