aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-stmts.c
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@linaro.org>2012-06-26 09:05:48 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2012-06-26 09:05:48 +0000
commit38eec4c652ecafe1056be45914e0a906e7d43c44 (patch)
treecd00eac064512bb0c8c0e08fc883a8a88233df53 /gcc/tree-vect-stmts.c
parente4ae19bc4c940dcc7bc89eecd60d75dc7e17dd5c (diff)
downloadgcc-38eec4c652ecafe1056be45914e0a906e7d43c44.zip
gcc-38eec4c652ecafe1056be45914e0a906e7d43c44.tar.gz
gcc-38eec4c652ecafe1056be45914e0a906e7d43c44.tar.bz2
re PR regression/53729 (PR53636 fix caused bb-slp-16.c to FAIL on sparc64 and powerpc64)
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. From-SVN: r188979
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r--gcc/tree-vect-stmts.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 5853d4f..010181c 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -931,6 +931,16 @@ vect_get_store_cost (struct data_reference *dr, int ncopies,
break;
}
+ case dr_unaligned_unsupported:
+ {
+ *inside_cost = VECT_MAX_COST;
+
+ if (vect_print_dump_info (REPORT_COST))
+ fprintf (vect_dump, "vect_model_store_cost: unsupported access.");
+
+ break;
+ }
+
default:
gcc_unreachable ();
}
@@ -1094,6 +1104,16 @@ vect_get_load_cost (struct data_reference *dr, int ncopies,
break;
}
+ case dr_unaligned_unsupported:
+ {
+ *inside_cost = VECT_MAX_COST;
+
+ if (vect_print_dump_info (REPORT_COST))
+ fprintf (vect_dump, "vect_model_load_cost: unsupported access.");
+
+ break;
+ }
+
default:
gcc_unreachable ();
}