X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fir%2Firgopt.c;h=2f494b9c62f8ab36c94261e2b1e8bee63cddc715;hb=3c3425a50a1d721b74a015c6812257e32feeac85;hp=9bf1bd6da621f5981b819578cc4814cfc1b3bd40;hpb=02f098c997643c82451cd29b6c44d8a75cb4d8d8;p=libfirm diff --git a/ir/ir/irgopt.c b/ir/ir/irgopt.c index 9bf1bd6da..2f494b9c6 100644 --- a/ir/ir/irgopt.c +++ b/ir/ir/irgopt.c @@ -35,6 +35,7 @@ #include "irgopt.h" #include "irgmod.h" #include "irgwalk.h" +#include "ircons.h" #include "adt/pdeq.h" @@ -73,7 +74,7 @@ static inline void do_local_optimize(ir_node *n) if (get_opt_global_cse()) set_irg_pinned(irg, op_pin_state_floats); - clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE); + clear_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_DOMINANCE); /* Clean the value_table in irg for the CSE. */ new_identities(irg); @@ -106,11 +107,8 @@ static void enqueue_node(ir_node *node, pdeq *waitq) */ static void enqueue_users(ir_node *n, pdeq *waitq) { - const ir_edge_t *edge; - foreach_out_edge(n, edge) { - ir_node *succ = get_edge_src_irn(edge); - const ir_edge_t *edge2; + ir_node *succ = get_edge_src_irn(edge); enqueue_node(succ, waitq); @@ -142,9 +140,7 @@ static void find_unreachable_blocks(ir_node *block, void *env) ir_graph *irg = get_irn_irg(block); ir_node *end = get_irg_end(irg); - const ir_edge_t *edge; foreach_block_succ(block, edge) { - const ir_edge_t *edge2; ir_node *succ_block = get_edge_src_irn(edge); enqueue_node(succ_block, waitq); foreach_out_edge(succ_block, edge2) { @@ -198,11 +194,11 @@ int optimize_graph_df(ir_graph *irg) set_irg_pinned(irg, op_pin_state_floats); /* enable unreachable code elimination */ - assert(!is_irg_state(irg, IR_GRAPH_STATE_OPTIMIZE_UNREACHABLE_CODE)); - set_irg_state(irg, IR_GRAPH_STATE_OPTIMIZE_UNREACHABLE_CODE); + assert(!irg_is_constrained(irg, IR_GRAPH_CONSTRAINT_OPTIMIZE_UNREACHABLE_CODE)); + add_irg_constraints(irg, IR_GRAPH_CONSTRAINT_OPTIMIZE_UNREACHABLE_CODE); new_identities(irg); - edges_assure(irg); + assure_edges(irg); assure_doms(irg); @@ -226,13 +222,12 @@ int optimize_graph_df(ir_graph *irg) ir_free_resources(irg, IR_RESOURCE_IRN_LINK); /* disable unreachable code elimination */ - clear_irg_state(irg, IR_GRAPH_STATE_OPTIMIZE_UNREACHABLE_CODE); - set_irg_state(irg, IR_GRAPH_STATE_NO_UNREACHABLE_CODE); + clear_irg_constraints(irg, IR_GRAPH_CONSTRAINT_OPTIMIZE_UNREACHABLE_CODE); + add_irg_properties(irg, IR_GRAPH_PROPERTY_NO_UNREACHABLE_CODE); /* invalidate infos */ - clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE); - clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_LOOPINFO); - clear_irg_state(irg, IR_GRAPH_STATE_VALID_EXTENDED_BLOCKS); + clear_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_DOMINANCE); + clear_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_LOOPINFO); edges_deactivate(irg); /* Finally kill BAD and doublets from the keep alives.