diff options
author | Trevor Saunders <tsaunders@mozilla.com> | 2013-11-01 20:31:32 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2013-11-01 16:31:32 -0400 |
commit | 07687835bea637072221fdcbeb11cf14c43986f7 (patch) | |
tree | 9b926d72ddfbc7904a373e59872f1d07b4e4e417 /gcc/tree-parloops.c | |
parent | 654a6bb421af2e0aadccc0b29ce5af298519c8e9 (diff) | |
download | gcc-07687835bea637072221fdcbeb11cf14c43986f7.zip gcc-07687835bea637072221fdcbeb11cf14c43986f7.tar.gz gcc-07687835bea637072221fdcbeb11cf14c43986f7.tar.bz2 |
Replace some heap vectors with stack vectors.
From http://gcc.gnu.org/ml/gcc-patches/2013-10/msg02735.html
This patch is pretty dull, it just replaces a bunch of things of the
form
vec<T> x;
x.create (N); // N is a constant
blah blah
x.release ();
by
stack_vec<T, N> x;
blah blah
2013-11-01 Trevor Saunders <tsaunders@mozilla.com>
gcc/
* function.c (reorder_blocks): Convert block_stack to a stack_vec.
* gimplify.c (gimplify_compound_lval): Likewise.
* graphite-clast-to-gimple.c (gloog): Likewise.
* graphite-dependences.c (loop_is_parallel_p): Likewise.
* graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
(limit_scop); Likewise.
(build_scops): Likewise.
(dot_scop): Likewise.
* graphite-sese-to-poly.c (sese_dom_walker): Likewise.
(build_scop_drs): Likewise.
(insert_stmts): Likewise.
(insert_out_of_ssa_copy): Likewise.
(remove_phi): Likewise.
(rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise.
* hw-doloop.c (discover_loop): Likewise.
* tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise.
* tree-dfa.c (dump_enumerated_decls): Likewise.
* tree-if-conv.c (if_convertable_loop_p): Likewise.
* tree-inline.c (tree_function_versioning): Likewise.
* tree-loop-distribution.c (build_rdg): Likewise.
(rdg_flag_vertex_and_dependent): Likewise.
(distribute_loop): Likewise.
* tree-parloops.c (loop_parallel_p): Likewise.
(eliminate_local_variables): Likewise.
(separate_decls_in_region): Likewise.
* tree-predcom.c (tree_predictive_commoning_loop): Likewise.
* tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
* tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
* tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise.
* tree-vect-patterns.c (vect_pattern_recog): Likewise.
* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
(vectorizable_condition): Likewise.
gcc/cp/
* semantics.c (build_anon_member_initialization): Convert fields to be
a stack_vec.
From-SVN: r204301
Diffstat (limited to 'gcc/tree-parloops.c')
-rw-r--r-- | gcc/tree-parloops.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index b843fe5..25a0f0a 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -395,7 +395,6 @@ lambda_transform_legal_p (lambda_trans_matrix trans, static bool loop_parallel_p (struct loop *loop, struct obstack * parloop_obstack) { - vec<loop_p> loop_nest; vec<ddr_p> dependence_relations; vec<data_reference_p> datarefs; lambda_trans_matrix trans; @@ -412,9 +411,9 @@ loop_parallel_p (struct loop *loop, struct obstack * parloop_obstack) /* Check for problems with dependences. If the loop can be reversed, the iterations are independent. */ + stack_vec<loop_p, 3> loop_nest; datarefs.create (10); - dependence_relations.create (10 * 10); - loop_nest.create (3); + dependence_relations.create (100); if (! compute_data_dependences_for_loop (loop, true, &loop_nest, &datarefs, &dependence_relations)) { @@ -440,7 +439,6 @@ loop_parallel_p (struct loop *loop, struct obstack * parloop_obstack) " FAILED: data dependencies exist across iterations\n"); end: - loop_nest.release (); free_dependence_relations (dependence_relations); free_data_refs (datarefs); @@ -741,8 +739,7 @@ static void eliminate_local_variables (edge entry, edge exit) { basic_block bb; - vec<basic_block> body; - body.create (3); + stack_vec<basic_block, 3> body; unsigned i; gimple_stmt_iterator gsi; bool has_debug_stmt = false; @@ -772,7 +769,6 @@ eliminate_local_variables (edge entry, edge exit) eliminate_local_variables_stmt (entry, &gsi, decl_address); decl_address.dispose (); - body.release (); } /* Returns true if expression EXPR is not defined between ENTRY and @@ -1297,8 +1293,7 @@ separate_decls_in_region (edge entry, edge exit, tree type, type_name, nvar; gimple_stmt_iterator gsi; struct clsn_data clsn_data; - vec<basic_block> body; - body.create (3); + stack_vec<basic_block, 3> body; basic_block bb; basic_block entry_bb = bb1; basic_block exit_bb = exit->dest; @@ -1356,8 +1351,6 @@ separate_decls_in_region (edge entry, edge exit, } } - body.release (); - if (name_copies.elements () == 0 && reduction_list.elements () == 0) { /* It may happen that there is nothing to copy (if there are only |