diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-20 15:45:21 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-20 15:45:21 +0000 |
commit | 412da365521a031754ffc6dad9ae785a8d3ed79d (patch) | |
tree | 5f94bb0f06df3da62ef2f314d4c40a0952939b27 /gcc/tree-ssa-pre.c | |
parent | b0160cb4a801854674765bc7f224fa818b30df0f (diff) | |
download | gcc-412da365521a031754ffc6dad9ae785a8d3ed79d.tar.gz |
2004-09-20 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
generating useless garbage.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87760 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 43257bc1093..2c9b4ee5c5c 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -510,8 +510,10 @@ bitmap_insert_into_set (bitmap_set_t set, tree expr) gcc_assert (val); if (!is_gimple_min_invariant (val)) + { bitmap_set_bit (set->values, VALUE_HANDLE_ID (val)); - bitmap_set_bit (set->expressions, SSA_NAME_VERSION (expr)); + bitmap_set_bit (set->expressions, SSA_NAME_VERSION (expr)); + } } /* Insert EXPR into SET. */ @@ -1098,6 +1100,8 @@ clean (value_set_t set) } } +DEF_VEC_MALLOC_P (basic_block); + /* Compute the ANTIC set for BLOCK. ANTIC_OUT[BLOCK] = intersection of ANTIC_IN[b] for all succ(BLOCK), if @@ -1164,24 +1168,23 @@ compute_antic_aux (basic_block block) them. */ else { - varray_type worklist; + VEC (basic_block) * worklist; edge e; size_t i; basic_block bprime, first; - VARRAY_BB_INIT (worklist, 1, "succ"); + worklist = VEC_alloc (basic_block, 2); e = block->succ; while (e) { - VARRAY_PUSH_BB (worklist, e->dest); + VEC_safe_push (basic_block, worklist, e->dest); e = e->succ_next; } - first = VARRAY_BB (worklist, 0); + first = VEC_index (basic_block, worklist, 0); set_copy (ANTIC_OUT, ANTIC_IN (first)); - for (i = 1; i < VARRAY_ACTIVE_SIZE (worklist); i++) + for (i = 1; VEC_iterate (basic_block, worklist, i, bprime); i++) { - bprime = VARRAY_BB (worklist, i); node = ANTIC_OUT->head; while (node) { @@ -1193,7 +1196,7 @@ compute_antic_aux (basic_block block) node = next; } } - VARRAY_CLEAR (worklist); + VEC_free (basic_block, worklist); } /* Generate ANTIC_OUT - TMP_GEN */ |