diff options
author | Ira Rosen <irar@il.ibm.com> | 2009-06-01 08:15:01 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2009-06-01 08:15:01 +0000 |
commit | e9dbe7bb252efef01651d46da119afcdea78a301 (patch) | |
tree | 456887f907250fda0da8266501593e5916fb59a6 /gcc/tree-vect-data-refs.c | |
parent | a7ad6c2d616aff70b3ad1b17bae0d9fd9ba0478a (diff) | |
download | gcc-e9dbe7bb252efef01651d46da119afcdea78a301.zip gcc-e9dbe7bb252efef01651d46da119afcdea78a301.tar.gz gcc-e9dbe7bb252efef01651d46da119afcdea78a301.tar.bz2 |
re PR tree-optimization/39129 (The meaning of 'BB' in "too many BBs in loop")
PR tree-optimization/39129
* tree-vect-loop-manip.c (conservative_cost_threshold): Change the
printed message.
(vect_do_peeling_for_loop_bound): Use
LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
(vect_loop_versioning): Likewise.
(vect_create_cond_for_alias_checks): Fix indentation.
* tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
macros.
(LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
(LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
* tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
"control flow in loop".
(vect_estimate_min_profitable_iters): Use
LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
(vect_create_data_ref_ptr): Don't mention array dimension in printing.
* tree-vect-stmts.c (vectorizable_store): Replace the check that the
statement belongs to a group of strided accesses with the exact code
check.
(vectorizable_load): Likewise.
* tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
From-SVN: r148036
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 0116ddf..3279d8c 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -1196,15 +1196,15 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo) } } - vect_versioning_for_alias_required = - (VEC_length (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo)) > 0); + vect_versioning_for_alias_required + = LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo); /* Temporarily, if versioning for alias is required, we disable peeling until we support peeling and versioning. Often peeling for alignment will require peeling for loop-bound, which in turn requires that we know how to adjust the loop ivs after the loop. */ if (vect_versioning_for_alias_required - || !vect_can_advance_ivs_p (loop_vinfo) + || !vect_can_advance_ivs_p (loop_vinfo) || !slpeel_can_duplicate_loop_p (loop, single_exit (loop))) do_peeling = false; @@ -1366,7 +1366,7 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo) } /* Versioning requires at least one misaligned data reference. */ - if (VEC_length (gimple, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo)) == 0) + if (!LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo)) do_versioning = false; else if (!do_versioning) VEC_truncate (gimple, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo), 0); @@ -2356,10 +2356,9 @@ vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop, tree data_ref_base = base_name; fprintf (vect_dump, "create vector-pointer variable to type: "); print_generic_expr (vect_dump, vectype, TDF_SLIM); - if (TREE_CODE (data_ref_base) == VAR_DECL) - fprintf (vect_dump, " vectorizing a one dimensional array ref: "); - else if (TREE_CODE (data_ref_base) == ARRAY_REF) - fprintf (vect_dump, " vectorizing a multidimensional array ref: "); + if (TREE_CODE (data_ref_base) == VAR_DECL + || TREE_CODE (data_ref_base) == ARRAY_REF) + fprintf (vect_dump, " vectorizing an array ref: "); else if (TREE_CODE (data_ref_base) == COMPONENT_REF) fprintf (vect_dump, " vectorizing a record based array ref: "); else if (TREE_CODE (data_ref_base) == SSA_NAME) |