diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2018-07-31 14:26:31 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-07-31 14:26:31 +0000 |
commit | 6ef709e50228eb23c25d3620ac6eadb6d765d40d (patch) | |
tree | 433895df78a59e03d310b0cee116230e528175d7 /gcc/tree-vectorizer.h | |
parent | 458135c0354f19eb2bd032d42c27076def8c31de (diff) | |
download | gcc-6ef709e50228eb23c25d3620ac6eadb6d765d40d.zip gcc-6ef709e50228eb23c25d3620ac6eadb6d765d40d.tar.gz gcc-6ef709e50228eb23c25d3620ac6eadb6d765d40d.tar.bz2 |
[44/46] Remove global vinfo_for_stmt-related routines
There are no more direct uses of:
- new_stmt_vec_info
- set_vinfo_for_stmt
- free_stmt_vec_infos
- free_stmt_vec_info
outside of vec_info, so they can now be private member functions.
It also seemed better to put them in tree-vectorizer.c, along with the
other vec_info routines.
We can also get rid of:
- vinfo_for_stmt
- stmt_vec_info_vec
- set_stmt_vec_info_vec
since nothing now uses them. This was the main goal of the series.
2018-07-31 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vectorizer.h (vec_info::new_vinfo_for_stmt)
(vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos)
(vec_info::free_stmt_vec_info): New private member functions.
(set_stmt_vec_info_vec, free_stmt_vec_infos, vinfo_for_stmt)
(set_vinfo_for_stmt, new_stmt_vec_info, free_stmt_vec_info): Delete.
* tree-parloops.c (gather_scalar_reductions): Remove calls to
set_stmt_vec_info_vec and free_stmt_vec_infos.
* tree-vect-loop.c (_loop_vec_info): Remove call to
set_stmt_vec_info_vec.
* tree-vect-stmts.c (new_stmt_vec_info, set_stmt_vec_info_vec)
(free_stmt_vec_infos, free_stmt_vec_info): Delete in favor of...
* tree-vectorizer.c (vec_info::new_stmt_vec_info)
(vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos)
(vec_info::free_stmt_vec_info): ...these new functions. Remove
assignments in {vec_info::,}new_stmt_vec_info that are redundant
with the clearing in the xcalloc.
(stmt_vec_info_vec): Delete.
(vec_info::vec_info): Don't call set_stmt_vec_info_vec.
(vectorize_loops): Likewise.
(vec_info::~vec_info): Remove argument from call to
free_stmt_vec_infos.
(vec_info::add_stmt): Remove vinfo argument from call to
new_stmt_vec_info.
From-SVN: r263159
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r-- | gcc/tree-vectorizer.h | 45 |
1 files changed, 6 insertions, 39 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index b9aa9c4..d88ea2b 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -267,6 +267,12 @@ struct vec_info { /* Cost data used by the target cost model. */ void *target_cost_data; + +private: + stmt_vec_info new_stmt_vec_info (gimple *stmt); + void set_vinfo_for_stmt (gimple *, stmt_vec_info); + void free_stmt_vec_infos (); + void free_stmt_vec_info (stmt_vec_info); }; struct _loop_vec_info; @@ -1096,43 +1102,6 @@ inline stmt_vec_info::operator gimple * () const return m_ptr ? m_ptr->stmt : NULL; } -extern vec<stmt_vec_info> *stmt_vec_info_vec; - -void set_stmt_vec_info_vec (vec<stmt_vec_info> *); -void free_stmt_vec_infos (vec<stmt_vec_info> *); - -/* Return a stmt_vec_info corresponding to STMT. */ - -static inline stmt_vec_info -vinfo_for_stmt (gimple *stmt) -{ - int uid = gimple_uid (stmt); - if (uid <= 0) - return NULL; - - return (*stmt_vec_info_vec)[uid - 1]; -} - -/* Set vectorizer information INFO for STMT. */ - -static inline void -set_vinfo_for_stmt (gimple *stmt, stmt_vec_info info) -{ - unsigned int uid = gimple_uid (stmt); - if (uid == 0) - { - gcc_checking_assert (info); - uid = stmt_vec_info_vec->length () + 1; - gimple_set_uid (stmt, uid); - stmt_vec_info_vec->safe_push (info); - } - else - { - gcc_checking_assert (info == NULL_STMT_VEC_INFO); - (*stmt_vec_info_vec)[uid - 1] = info; - } -} - static inline bool nested_in_vect_loop_p (struct loop *loop, stmt_vec_info stmt_info) { @@ -1502,8 +1471,6 @@ extern bool supportable_widening_operation (enum tree_code, stmt_vec_info, extern bool supportable_narrowing_operation (enum tree_code, tree, tree, enum tree_code *, int *, vec<tree> *); -extern stmt_vec_info new_stmt_vec_info (gimple *stmt, vec_info *); -extern void free_stmt_vec_info (stmt_vec_info); extern unsigned record_stmt_cost (stmt_vector_for_cost *, int, enum vect_cost_for_stmt, stmt_vec_info, int, enum vect_cost_model_location); |