X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbedomfront.c;h=6736b34879ad52be825b9d443c020faf7d72e9a4;hb=b6d85190f667fe9f06e69d9cf3a3c8e004f1350b;hp=d5a3abea75f9d3f16c2197cd0724793730d7aadf;hpb=73d95329a72d4a4e061a6f05fd28200566f26c03;p=libfirm diff --git a/ir/be/bedomfront.c b/ir/be/bedomfront.c index d5a3abea7..6736b3487 100644 --- a/ir/be/bedomfront.c +++ b/ir/be/bedomfront.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -40,7 +40,7 @@ /** * The dominance frontier for a graph. */ -struct _be_dom_front_info_t { +struct be_dom_front_info_t { pmap *df_map; /**< A map, mapping every block to a list of its dominance frontier blocks. */ struct obstack obst; /**< An obstack holding all the frontier data. */ }; @@ -72,7 +72,7 @@ static ir_node **compute_df(ir_node *blk, be_dom_front_info_t *info) const ir_edge_t *edge; ir_node **df_list = NEW_ARR_F(ir_node *, 0); ir_node **df; - int len; + size_t len; /* Add local dominance frontiers */ foreach_block_succ(blk, edge) { @@ -89,11 +89,11 @@ static ir_node **compute_df(ir_node *blk, be_dom_front_info_t *info) * dominated by the given block. */ for (c = get_Block_dominated_first(blk); c; c = get_Block_dominated_next(c)) { - int i; + size_t i; ir_node **df_c_list = compute_df(c, info); - for (i = ARR_LEN(df_c_list) - 1; i >= 0; --i) { - ir_node *w = df_c_list[i]; + for (i = ARR_LEN(df_c_list); i > 0;) { + ir_node *w = df_c_list[--i]; if (get_idom(w) != blk) ARR_APP1(ir_node *, df_list, w); } @@ -133,5 +133,5 @@ void be_free_dominance_frontiers(be_dom_front_info_t *info) ir_node **be_get_dominance_frontier(const be_dom_front_info_t *info, ir_node *block) { - return pmap_get(info->df_map, block); + return (ir_node**)pmap_get(info->df_map, block); }