diff options
author | Ulrich Weigand <ulrich.weigand@linaro.org> | 2012-06-26 09:05:48 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@linaro.org> | 2012-06-26 09:05:48 +0000 |
commit | c4ca8710b85e2553e94ce002c7e5f6630a6d8a98 (patch) | |
tree | cd00eac064512bb0c8c0e08fc883a8a88233df53 /gcc/tree-vect-slp.c | |
parent | 001bb4bc00c052a33aee2a0eb4c56fce3bf5a9cf (diff) |
PR tree-optimization/53729
PR tree-optimization/53636
* tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
vect_verify_datarefs_alignment until after statements have
been marked as relevant/irrelevant.
* tree-vect-data-refs.c (vect_verify_datarefs_alignment):
Skip irrelevant statements.
(vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
instead of STMT_VINFO_RELEVANT.
(vect_get_data_access_cost): Do not check for supportable
alignment before calling vect_get_load_cost/vect_get_store_cost.
* tree-vect-stmts.c (vect_get_store_cost): Do not abort when
handling unsupported alignment.
(vect_get_load_cost): Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@188979 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r-- | gcc/tree-vect-slp.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 0692d0b7007..5d11552a1a0 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -2050,16 +2050,6 @@ vect_slp_analyze_bb_1 (basic_block bb) return NULL; } - if (!vect_verify_datarefs_alignment (NULL, bb_vinfo)) - { - if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS)) - fprintf (vect_dump, "not vectorized: unsupported alignment in basic " - "block.\n"); - - destroy_bb_vec_info (bb_vinfo); - return NULL; - } - /* Check the SLP opportunities in the basic block, analyze and build SLP trees. */ if (!vect_analyze_slp (NULL, bb_vinfo)) @@ -2082,6 +2072,16 @@ vect_slp_analyze_bb_1 (basic_block bb) vect_mark_slp_stmts_relevant (SLP_INSTANCE_TREE (instance)); } + if (!vect_verify_datarefs_alignment (NULL, bb_vinfo)) + { + if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS)) + fprintf (vect_dump, "not vectorized: unsupported alignment in basic " + "block.\n"); + + destroy_bb_vec_info (bb_vinfo); + return NULL; + } + if (!vect_slp_analyze_operations (bb_vinfo)) { if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS)) |