From: Kazu Hirata Date: Mon, 2 May 2005 08:56:52 +0000 (+0000) Subject: tree-scalar-evolution.c (get_exit_conditions_rec, [...]): Use VEC instead of VARRAY. X-Git-Tag: misc/cutover-cvs2svn~3552 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5310bac6da16b88a13f5fe2070f2eede1e35b79f;p=thirdparty%2Fgcc.git tree-scalar-evolution.c (get_exit_conditions_rec, [...]): Use VEC instead of VARRAY. * tree-scalar-evolution.c (get_exit_conditions_rec, select_loops_exit_conditions, number_of_iterations_for_all_loops, analyze_scalar_evolution_for_all_loop_phi_nodes, scev_analysis): Use VEC instead of VARRAY. From-SVN: r99093 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8efc9dc7c9bc..790c285bbd0e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-05-02 Kazu Hirata + + * tree-scalar-evolution.c (get_exit_conditions_rec, + select_loops_exit_conditions, + number_of_iterations_for_all_loops, + analyze_scalar_evolution_for_all_loop_phi_nodes, + scev_analysis): Use VEC instead of VARRAY. + 2005-05-02 Michael Matz PR c++/19542 diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index c923409d6ed3..e0ef0ee33084 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -1012,7 +1012,7 @@ get_loop_exit_condition (struct loop *loop) static void get_exit_conditions_rec (struct loop *loop, - varray_type *exit_conditions) + VEC(tree,heap) **exit_conditions) { if (!loop) return; @@ -1026,7 +1026,7 @@ get_exit_conditions_rec (struct loop *loop, tree loop_condition = get_loop_exit_condition (loop); if (loop_condition) - VARRAY_PUSH_TREE (*exit_conditions, loop_condition); + VEC_safe_push (tree, heap, *exit_conditions, loop_condition); } } @@ -1035,7 +1035,7 @@ get_exit_conditions_rec (struct loop *loop, static void select_loops_exit_conditions (struct loops *loops, - varray_type *exit_conditions) + VEC(tree,heap) **exit_conditions) { struct loop *function_body = loops->parray[0]; @@ -2274,16 +2274,16 @@ end: from the EXIT_CONDITIONS array. */ static void -number_of_iterations_for_all_loops (varray_type exit_conditions) +number_of_iterations_for_all_loops (VEC(tree,heap) **exit_conditions) { unsigned int i; unsigned nb_chrec_dont_know_loops = 0; unsigned nb_static_loops = 0; + tree cond; - for (i = 0; i < VARRAY_ACTIVE_SIZE (exit_conditions); i++) + for (i = 0; VEC_iterate (tree, *exit_conditions, i, cond); i++) { - tree res = number_of_iterations_in_loop - (loop_containing_stmt (VARRAY_TREE (exit_conditions, i))); + tree res = number_of_iterations_in_loop (loop_containing_stmt (cond)); if (chrec_contains_undetermined (res)) nb_chrec_dont_know_loops++; else @@ -2426,20 +2426,21 @@ gather_chrec_stats (tree chrec, struct chrec_stats *stats) index. This allows the parallelization of the loop. */ static void -analyze_scalar_evolution_for_all_loop_phi_nodes (varray_type exit_conditions) +analyze_scalar_evolution_for_all_loop_phi_nodes (VEC(tree,heap) **exit_conditions) { unsigned int i; struct chrec_stats stats; + tree cond; reset_chrecs_counters (&stats); - for (i = 0; i < VARRAY_ACTIVE_SIZE (exit_conditions); i++) + for (i = 0; VEC_iterate (tree, *exit_conditions, i, cond); i++) { struct loop *loop; basic_block bb; tree phi, chrec; - loop = loop_containing_stmt (VARRAY_TREE (exit_conditions, i)); + loop = loop_containing_stmt (cond); bb = loop->header; for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi)) @@ -2604,16 +2605,16 @@ simple_iv (struct loop *loop, tree stmt, tree op, tree *base, tree *step, void scev_analysis (void) { - varray_type exit_conditions; + VEC(tree,heap) *exit_conditions; - VARRAY_GENERIC_PTR_INIT (exit_conditions, 37, "exit_conditions"); + exit_conditions = VEC_alloc (tree, heap, 37); select_loops_exit_conditions (current_loops, &exit_conditions); if (dump_file && (dump_flags & TDF_STATS)) - analyze_scalar_evolution_for_all_loop_phi_nodes (exit_conditions); + analyze_scalar_evolution_for_all_loop_phi_nodes (&exit_conditions); - number_of_iterations_for_all_loops (exit_conditions); - VARRAY_CLEAR (exit_conditions); + number_of_iterations_for_all_loops (&exit_conditions); + VEC_free (tree, heap, exit_conditions); } /* Finalize the scalar evolution analysis. */