diff options
author | Richard Biener <rguenther@suse.de> | 2015-10-13 08:39:41 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-10-13 08:39:41 +0000 |
commit | b939ea86b96fcff3f4fe61ad794858ddae553563 (patch) | |
tree | 729ac9ed62a9b2397629cfbe0dfe7004f66eaabf /gcc/tree-vect-loop.c | |
parent | 9b054b08813d37586d6765fd087b0fc85dc94daf (diff) | |
download | gcc-b939ea86b96fcff3f4fe61ad794858ddae553563.zip gcc-b939ea86b96fcff3f4fe61ad794858ddae553563.tar.gz gcc-b939ea86b96fcff3f4fe61ad794858ddae553563.tar.bz2 |
tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate the data dependence vector.
2015-10-13 Richard Biener <rguenther@suse.de>
* tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
the data dependence vector.
(vect_peeling_hash_insert): Get the peeling hash table as argument.
(vect_peeling_hash_get_lowest_cost): Likewise.
(vect_enhance_data_refs_alignment): Adjust.
(struct _vect_peel_info, struct _vect_peel_extended_info,
struct peel_info_hasher): Move from ...
* tree-vectorizer.h: ... here.
(LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
(LOOP_VINFO_PEELING_HTAB): Likewise.
(struct _loop_vec_info): Remove min_profitable_iters and
peeling_htab members.
* tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
here.
(destroy_loop_vec_info): Adjust.
(vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
(vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
to estimate alias versioning cost.
* tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
From-SVN: r228751
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 6b37238..6840535 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -937,23 +937,20 @@ new_loop_vec_info (struct loop *loop) LOOP_VINFO_NITERSM1 (res) = NULL; LOOP_VINFO_NITERS (res) = NULL; LOOP_VINFO_NITERS_UNCHANGED (res) = NULL; - LOOP_VINFO_COST_MODEL_MIN_ITERS (res) = 0; LOOP_VINFO_COST_MODEL_THRESHOLD (res) = 0; LOOP_VINFO_VECTORIZABLE_P (res) = 0; LOOP_VINFO_PEELING_FOR_ALIGNMENT (res) = 0; LOOP_VINFO_VECT_FACTOR (res) = 0; - LOOP_VINFO_LOOP_NEST (res).create (3); - LOOP_VINFO_DATAREFS (res).create (10); - LOOP_VINFO_DDRS (res).create (10 * 10); + LOOP_VINFO_LOOP_NEST (res) = vNULL; + LOOP_VINFO_DATAREFS (res) = vNULL; + LOOP_VINFO_DDRS (res) = vNULL; LOOP_VINFO_UNALIGNED_DR (res) = NULL; - LOOP_VINFO_MAY_MISALIGN_STMTS (res).create ( - PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS)); - LOOP_VINFO_MAY_ALIAS_DDRS (res).create ( - PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS)); - LOOP_VINFO_GROUPED_STORES (res).create (10); - LOOP_VINFO_REDUCTIONS (res).create (10); - LOOP_VINFO_REDUCTION_CHAINS (res).create (10); - LOOP_VINFO_SLP_INSTANCES (res).create (10); + LOOP_VINFO_MAY_MISALIGN_STMTS (res) = vNULL; + LOOP_VINFO_MAY_ALIAS_DDRS (res) = vNULL; + LOOP_VINFO_GROUPED_STORES (res) = vNULL; + LOOP_VINFO_REDUCTIONS (res) = vNULL; + LOOP_VINFO_REDUCTION_CHAINS (res) = vNULL; + LOOP_VINFO_SLP_INSTANCES (res) = vNULL; LOOP_VINFO_SLP_UNROLLING_FACTOR (res) = 1; LOOP_VINFO_TARGET_COST_DATA (res) = init_cost (loop); LOOP_VINFO_PEELING_FOR_GAPS (res) = false; @@ -1036,9 +1033,6 @@ destroy_loop_vec_info (loop_vec_info loop_vinfo, bool clean_stmts) LOOP_VINFO_REDUCTIONS (loop_vinfo).release (); LOOP_VINFO_REDUCTION_CHAINS (loop_vinfo).release (); - delete LOOP_VINFO_PEELING_HTAB (loop_vinfo); - LOOP_VINFO_PEELING_HTAB (loop_vinfo) = NULL; - destroy_cost_data (LOOP_VINFO_TARGET_COST_DATA (loop_vinfo)); loop_vinfo->scalar_cost_vec.release (); @@ -1786,7 +1780,6 @@ vect_analyze_loop_2 (loop_vec_info loop_vinfo) int min_profitable_estimate, min_profitable_iters; vect_estimate_min_profitable_iters (loop_vinfo, &min_profitable_iters, &min_profitable_estimate); - LOOP_VINFO_COST_MODEL_MIN_ITERS (loop_vinfo) = min_profitable_iters; if (min_profitable_iters < 0) { @@ -2810,7 +2803,7 @@ vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo, if (LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo)) { /* FIXME: Make cost depend on complexity of individual check. */ - unsigned len = LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo).length (); + unsigned len = LOOP_VINFO_COMP_ALIAS_DDRS (loop_vinfo).length (); (void) add_stmt_cost (target_cost_data, len, vector_stmt, NULL, 0, vect_prologue); dump_printf (MSG_NOTE, |