diff options
author | Martin Liska <mliska@suse.cz> | 2020-07-31 10:53:39 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-08-24 10:21:09 +0200 |
commit | cdb2e365fc0dba2ee052827e5ca65234ca82d605 (patch) | |
tree | 7f37c2b6a9b46a3312078c93aa11aac56c20a00b /gcc/tree-vect-loop.c | |
parent | adc646b10c7168c3c95373ee9321e3760fc4c5f1 (diff) | |
download | gcc-cdb2e365fc0dba2ee052827e5ca65234ca82d605.zip gcc-cdb2e365fc0dba2ee052827e5ca65234ca82d605.tar.gz gcc-cdb2e365fc0dba2ee052827e5ca65234ca82d605.tar.bz2 |
SLP: support entire BB.
gcc/ChangeLog:
* tree-vect-data-refs.c (dr_group_sort_cmp): Work on
data_ref_pair.
(vect_analyze_data_ref_accesses): Work on groups.
(vect_find_stmt_data_reference): Add group_id argument and fill
up dataref_groups vector.
* tree-vect-loop.c (vect_get_datarefs_in_loop): Pass new
arguments.
(vect_analyze_loop_2): Likewise.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Pass argument.
(vect_slp_bb_region): Likewise.
(vect_slp_region): Likewise.
(vect_slp_bb):Work on the entire BB.
* tree-vectorizer.h (vect_analyze_data_ref_accesses): Add new
argument.
(vect_find_stmt_data_reference): Likewise.
gcc/testsuite/ChangeLog:
* gcc.dg/vect/bb-slp-38.c: Adjust pattern as now we only process
a single vectorization and now 2 partial.
* gcc.dg/vect/bb-slp-45.c: New test.
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index dba230f..a92813e 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -1865,7 +1865,8 @@ vect_get_datarefs_in_loop (loop_p loop, basic_block *bbs, if (is_gimple_debug (stmt)) continue; ++(*n_stmts); - opt_result res = vect_find_stmt_data_reference (loop, stmt, datarefs); + opt_result res = vect_find_stmt_data_reference (loop, stmt, datarefs, + NULL, 0); if (!res) { if (is_gimple_call (stmt) && loop->safelen) @@ -2087,7 +2088,7 @@ vect_analyze_loop_2 (loop_vec_info loop_vinfo, bool &fatal, unsigned *n_stmts) /* Analyze the access patterns of the data-refs in the loop (consecutive, complex, etc.). FORNOW: Only handle consecutive access pattern. */ - ok = vect_analyze_data_ref_accesses (loop_vinfo); + ok = vect_analyze_data_ref_accesses (loop_vinfo, NULL); if (!ok) { if (dump_enabled_p ()) |