From 09a3016e274a8f60d8fbf566edc3628b8fd2e6ad Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 24 Apr 2005 19:51:35 +0000 Subject: [PATCH] tree-ssa-live.c (build_tree_conflict_graph): Change the type of tpa_to_clear to VEC(int,heap). * tree-ssa-live.c (build_tree_conflict_graph): Change the type of tpa_to_clear to VEC(int,heap). Update uses of tpa_to_clear. Free tpa_to_clear at the end. From-SVN: r98668 --- gcc/ChangeLog | 4 ++++ gcc/tree-ssa-live.c | 16 ++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 388f5bf3ea9..2b72034591b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -12,6 +12,10 @@ build_assert_expr_for, fp_predicate, has_assert_expr): Use COMPARISON_CLASS_P. + * tree-ssa-live.c (build_tree_conflict_graph): Change the type + of tpa_to_clear to VEC(int,heap). Update uses of + tpa_to_clear. Free tpa_to_clear at the end. + 2005-04-24 Andrew Pinski * tree.h (TREE_THIS_VOLATILE): Document the effect on a diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index 6f9d77ea645..73c46a2cc6e 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -1279,6 +1279,8 @@ add_conflicts_if_valid (tpa_p tpa, conflict_graph graph, } } +DEF_VEC_P(int); +DEF_VEC_ALLOC_P(int,heap); /* Return a conflict graph for the information contained in LIVE_INFO. Only conflicts between items in the same TPA list are added. If optional @@ -1293,8 +1295,8 @@ build_tree_conflict_graph (tree_live_info_p liveinfo, tpa_p tpa, bitmap live; unsigned x, y, i; basic_block bb; - varray_type tpa_to_clear; int *partition_link, *tpa_nodes; + VEC(int,heap) *tpa_to_clear; unsigned l; ssa_op_iter iter; bitmap_iterator bi; @@ -1309,12 +1311,13 @@ build_tree_conflict_graph (tree_live_info_p liveinfo, tpa_p tpa, partition_link = xcalloc (num_var_partitions (map) + 1, sizeof (int)); tpa_nodes = xcalloc (tpa_num_trees (tpa), sizeof (int)); - VARRAY_INT_INIT (tpa_to_clear, 50, "tpa to clear"); + tpa_to_clear = VEC_alloc (int, heap, 50); FOR_EACH_BB (bb) { block_stmt_iterator bsi; tree phi; + int idx; /* Start with live on exit temporaries. */ bitmap_copy (live, live_on_exit (liveinfo, bb)); @@ -1419,7 +1422,7 @@ build_tree_conflict_graph (tree_live_info_p liveinfo, tpa_p tpa, /* If start is 0, a new root reference list is being started. Register it to be cleared. */ if (!start) - VARRAY_PUSH_INT (tpa_to_clear, i); + VEC_safe_push (int, heap, tpa_to_clear, i); /* Add interferences to other tpa members seen. */ for (y = start; y != 0; y = partition_link[y]) @@ -1430,13 +1433,14 @@ build_tree_conflict_graph (tree_live_info_p liveinfo, tpa_p tpa, } /* Now clear the used tpa root references. */ - for (l = 0; l < VARRAY_ACTIVE_SIZE (tpa_to_clear); l++) - tpa_nodes[VARRAY_INT (tpa_to_clear, l)] = 0; - VARRAY_POP_ALL (tpa_to_clear); + for (l = 0; VEC_iterate (int, tpa_to_clear, l, idx); l++) + tpa_nodes[idx] = 0; + VEC_truncate (int, tpa_to_clear, 0); } free (tpa_nodes); free (partition_link); + VEC_free (int, heap, tpa_to_clear); BITMAP_FREE (live); return graph; } -- 2.30.2