diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2018-07-31 14:21:45 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-07-31 14:21:45 +0000 |
commit | c98d05955ba54fcdbae37f2a9e81b8cca6f1ca59 (patch) | |
tree | 95f219682b2ae0c794bd3e824106dcd8939d555c /gcc/tree-vectorizer.c | |
parent | 6585ff8f3a55bbfed6a4f2c2addac7a27ed087d3 (diff) | |
download | gcc-c98d05955ba54fcdbae37f2a9e81b8cca6f1ca59.zip gcc-c98d05955ba54fcdbae37f2a9e81b8cca6f1ca59.tar.gz gcc-c98d05955ba54fcdbae37f2a9e81b8cca6f1ca59.tar.bz2 |
[08/46] Add vec_info::lookup_def
This patch adds a vec_info helper for checking whether an operand is an
SSA_NAME that is defined in the vectorisable region.
2018-07-31 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vectorizer.h (vec_info::lookup_def): Declare.
* tree-vectorizer.c (vec_info::lookup_def): New function.
* tree-vect-patterns.c (vect_get_internal_def): Use it.
(vect_widened_op_tree): Likewise.
* tree-vect-stmts.c (vect_is_simple_use): Likewise.
* tree-vect-loop.c (vect_analyze_loop_operations): Likewise.
(vectorizable_reduction): Likewise.
(vect_valid_reduction_input_p): Take a stmt_vec_info instead
of a gimple *.
(vect_is_slp_reduction): Update calls accordingly. Use
vec_info::lookup_def.
(vect_is_simple_reduction): Likewise
* tree-vect-slp.c (vect_detect_hybrid_slp_1): Use vec_info::lookup_def.
From-SVN: r263123
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r-- | gcc/tree-vectorizer.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 9273f4d..372cf69 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -535,6 +535,19 @@ vec_info::lookup_stmt (gimple *stmt) return NULL; } +/* If NAME is an SSA_NAME and its definition has an associated stmt_vec_info, + return that stmt_vec_info, otherwise return null. It is safe to call + this on arbitrary operands. */ + +stmt_vec_info +vec_info::lookup_def (tree name) +{ + if (TREE_CODE (name) == SSA_NAME + && !SSA_NAME_IS_DEFAULT_DEF (name)) + return lookup_stmt (SSA_NAME_DEF_STMT (name)); + return NULL; +} + /* A helper function to free scev and LOOP niter information, as well as clear loop constraint LOOP_C_FINITE. */ |