aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2018-07-31 14:26:31 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-07-31 14:26:31 +0000
commit6ef709e50228eb23c25d3620ac6eadb6d765d40d (patch)
tree433895df78a59e03d310b0cee116230e528175d7 /gcc/tree-vectorizer.h
parent458135c0354f19eb2bd032d42c27076def8c31de (diff)
downloadgcc-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.h45
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);