diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2018-06-20 08:06:27 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-06-20 08:06:27 +0000 |
commit | e3947d809d75c6bc47e600ce490c238006c2de2b (patch) | |
tree | 556707591b83d585de8ceef3746d12aaea8c5132 /gcc/tree-vect-loop.c | |
parent | d54a098e48987e7368ff190b703efd72aba9e6d9 (diff) | |
download | gcc-e3947d809d75c6bc47e600ce490c238006c2de2b.zip gcc-e3947d809d75c6bc47e600ce490c238006c2de2b.tar.gz gcc-e3947d809d75c6bc47e600ce490c238006c2de2b.tar.bz2 |
[2/n] PR85694: Attach a DEF_SEQ only to the original statement
A pattern's PATTERN_DEF_SEQ was attached to both the original statement
and the main pattern statement, which made it harder to update later.
This patch attaches it to just the original statement. In practice,
anything that cared had ready access to both.
2018-06-20 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq
that the sequence is attached to the original statement rather
than the pattern statement.
* tree-vect-loop.c (vect_determine_vf_for_stmt): Take the
PATTERN_DEF_SEQ from the original statement rather than
the main pattern statement.
* tree-vect-stmts.c (free_stmt_vec_info): Likewise.
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
(vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ.
From-SVN: r261785
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index b07fcde..5a73a97 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -224,10 +224,10 @@ vect_determine_vf_for_stmt (stmt_vec_info stmt_info, poly_uint64 *vf, if (STMT_VINFO_IN_PATTERN_P (stmt_info) && STMT_VINFO_RELATED_STMT (stmt_info)) { + gimple *pattern_def_seq = STMT_VINFO_PATTERN_DEF_SEQ (stmt_info); stmt_info = vinfo_for_stmt (STMT_VINFO_RELATED_STMT (stmt_info)); /* If a pattern statement has def stmts, analyze them too. */ - gimple *pattern_def_seq = STMT_VINFO_PATTERN_DEF_SEQ (stmt_info); for (gimple_stmt_iterator si = gsi_start (pattern_def_seq); !gsi_end_p (si); gsi_next (&si)) { @@ -2247,10 +2247,10 @@ again: STMT_SLP_TYPE (stmt_info) = loop_vect; if (STMT_VINFO_IN_PATTERN_P (stmt_info)) { + gimple *pattern_def_seq = STMT_VINFO_PATTERN_DEF_SEQ (stmt_info); stmt_info = vinfo_for_stmt (STMT_VINFO_RELATED_STMT (stmt_info)); STMT_SLP_TYPE (stmt_info) = loop_vect; - for (gimple_stmt_iterator pi - = gsi_start (STMT_VINFO_PATTERN_DEF_SEQ (stmt_info)); + for (gimple_stmt_iterator pi = gsi_start (pattern_def_seq); !gsi_end_p (pi); gsi_next (&pi)) { gimple *pstmt = gsi_stmt (pi); |