diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2005-10-05 15:16:42 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2005-10-05 15:16:42 +0000 |
commit | f3940b0e3d26190dbcfe86f0bc5f4a84b259c298 (patch) | |
tree | 182364a4d7933c18a0c9f487847c27928270bd71 /gcc/tree-ssa-opfinalize.h | |
parent | 3015564c8a0d5d125441bf61a10740b07887cb43 (diff) | |
download | gcc-f3940b0e3d26190dbcfe86f0bc5f4a84b259c298.zip gcc-f3940b0e3d26190dbcfe86f0bc5f4a84b259c298.tar.gz gcc-f3940b0e3d26190dbcfe86f0bc5f4a84b259c298.tar.bz2 |
re PR tree-optimization/18587 (build_v_may_defs and build_vuses can be improved when adding)
2005-10-05 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/18587
* tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
(build_defs, build_uses, build_v_may_defs, build_v_must_defs,
build_vuses): Change to VEC type.
(opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
(get_name_decl): New. Return DECL_UID of base variable.
(operand_build_cmp): New. qsort comparison routine.
(operand_build_sort_virtual): New. Sort virtual build vector.
(init_ssa_operands, fini_ssa_operands): Use VEC routines.
(FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
(FINALIZE_BASE): Use get_name_decl.
(finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
(start_ssa_stmt_operands, append_def, append_use, append_vuse,
append_v_may_def, append_v_must_def): Replace opbuild_* routines with
direct VEC_* manipulations.
(build_ssa_operands): Call operand_build_sort_virtual.
(copy_virtual_operand, create_ssa_artficial_load_stmt,
add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
with direct VEC_* manipulations.
* tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
with direct VEC manipulations.
From-SVN: r104996
Diffstat (limited to 'gcc/tree-ssa-opfinalize.h')
-rw-r--r-- | gcc/tree-ssa-opfinalize.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/tree-ssa-opfinalize.h b/gcc/tree-ssa-opfinalize.h index f58c93f..cc48e9e 100644 --- a/gcc/tree-ssa-opfinalize.h +++ b/gcc/tree-ssa-opfinalize.h @@ -63,7 +63,7 @@ FINALIZE_ALLOC (void) static inline void FINALIZE_FUNC (tree stmt) { - int new_i; + unsigned new_i; FINALIZE_TYPE *old_ops, *ptr, *last; FINALIZE_BASE_TYPE old_base; FINALIZE_TYPE new_list; @@ -77,8 +77,8 @@ FINALIZE_FUNC (tree stmt) else old_base = FINALIZE_BASE_ZERO; - new_i = opbuild_first (&FINALIZE_OPBUILD); - while (old_ops && new_i != OPBUILD_LAST) + new_i = 0; + while (old_ops && new_i < VEC_length (tree, FINALIZE_OPBUILD)) { FINALIZE_BASE_TYPE new_base = FINALIZE_OPBUILD_BASE (new_i); if (old_base == new_base) @@ -90,7 +90,7 @@ FINALIZE_FUNC (tree stmt) FINALIZE_CORRECT_USE (FINALIZE_USE_PTR (last), stmt); #endif old_ops = old_ops->next; - new_i = opbuild_next (&FINALIZE_OPBUILD, new_i); + new_i++; } else if (old_base < new_base) @@ -112,16 +112,14 @@ FINALIZE_FUNC (tree stmt) FINALIZE_INITIALIZE (ptr, FINALIZE_OPBUILD_ELEM (new_i), stmt); last->next = ptr; last = ptr; - new_i = opbuild_next (&FINALIZE_OPBUILD, new_i); + new_i++; } if (old_ops) old_base = FINALIZE_BASE (FINALIZE_ELEM (old_ops)); } /* If there is anything remaining in the opbuild list, simply emit them. */ - for ( ; - new_i != OPBUILD_LAST; - new_i = opbuild_next (&FINALIZE_OPBUILD, new_i)) + for ( ; new_i < VEC_length (tree, FINALIZE_OPBUILD); new_i++) { ptr = FINALIZE_ALLOC (); FINALIZE_INITIALIZE (ptr, FINALIZE_OPBUILD_ELEM (new_i), stmt); @@ -154,7 +152,7 @@ FINALIZE_FUNC (tree stmt) for (ptr = FINALIZE_OPS (stmt); ptr; ptr = ptr->next) x++; - gcc_assert (x == opbuild_num_elems (&FINALIZE_OPBUILD)); + gcc_assert (x == VEC_length (tree, FINALIZE_OPBUILD)); } #endif } |