[46/46] Turn stmt_vec_info back into a typedef
authorRichard Sandiford <richard.sandiford@arm.com>
Tue, 31 Jul 2018 14:26:40 +0000 (14:26 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 31 Jul 2018 14:26:40 +0000 (14:26 +0000)
This patch removes the stmt_vec_info wrapper class added near the
beginning of the series and turns stmt_vec_info back into a typedef.

2018-07-31  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vectorizer.h (stmt_vec_info): Turn back into a typedef.
(NULL_STMT_VEC_INFO): Delete.
(stmt_vec_info::operator*): Likewise.
(stmt_vec_info::operator gimple *): Likewise.
* tree-vect-loop.c (vectorizable_reduction): Use NULL instead
of NULL_STMT_VEC_INFO.
* tree-vect-patterns.c (vect_init_pattern_stmt): Likewise.
(vect_reassociating_reduction_p): Likewise.
* tree-vect-stmts.c (vect_build_gather_load_calls): Likewise.
(vectorizable_store): Likewise.
* tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise.
(vec_info::free_stmt_vec_infos): Likewise.

From-SVN: r263161

gcc/ChangeLog
gcc/tree-vect-loop.c
gcc/tree-vect-patterns.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.c
gcc/tree-vectorizer.h

index 92bd5ba1a0f93640d9515a0bc1ff655106ce387d..133eaf39cdb195e9e9e16ec98f6e6ee2a96f0d31 100644 (file)
@@ -1,3 +1,18 @@
+2018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vectorizer.h (stmt_vec_info): Turn back into a typedef.
+       (NULL_STMT_VEC_INFO): Delete.
+       (stmt_vec_info::operator*): Likewise.
+       (stmt_vec_info::operator gimple *): Likewise.
+       * tree-vect-loop.c (vectorizable_reduction): Use NULL instead
+       of NULL_STMT_VEC_INFO.
+       * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise.
+       (vect_reassociating_reduction_p): Likewise.
+       * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise.
+       (vectorizable_store): Likewise.
+       * tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise.
+       (vec_info::free_stmt_vec_infos): Likewise.
+
 2018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
 
        * tree-vectorizer.h (vect_stmt_in_region_p): Delete.
index 7ce9ca5e6fc021ce9d97e4b87e8e00205851c3bb..b1c8277e33b55ddfe7d2d78576253ad257f99f0b 100644 (file)
@@ -6755,7 +6755,7 @@ vectorizable_reduction (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
   if (slp_node)
     neutral_op = neutral_op_for_slp_reduction
       (slp_node_instance->reduc_phis, code,
-       REDUC_GROUP_FIRST_ELEMENT (stmt_info) != NULL_STMT_VEC_INFO);
+       REDUC_GROUP_FIRST_ELEMENT (stmt_info) != NULL);
 
   if (double_reduc && reduction_type == FOLD_LEFT_REDUCTION)
     {
index 6adc41375f432c0f60be0cd86f0e1f854c3862fb..eb0e296b4849388e202153d342a9dfb1d193ab47 100644 (file)
@@ -104,7 +104,7 @@ vect_init_pattern_stmt (gimple *pattern_stmt, stmt_vec_info orig_stmt_info,
 {
   vec_info *vinfo = orig_stmt_info->vinfo;
   stmt_vec_info pattern_stmt_info = vinfo->lookup_stmt (pattern_stmt);
-  if (pattern_stmt_info == NULL_STMT_VEC_INFO)
+  if (pattern_stmt_info == NULL)
     pattern_stmt_info = orig_stmt_info->vinfo->add_stmt (pattern_stmt);
   gimple_set_bb (pattern_stmt, gimple_bb (orig_stmt_info->stmt));
 
@@ -819,7 +819,7 @@ vect_reassociating_reduction_p (stmt_vec_info stmt_vinfo)
 {
   return (STMT_VINFO_DEF_TYPE (stmt_vinfo) == vect_reduction_def
          ? STMT_VINFO_REDUC_TYPE (stmt_vinfo) != FOLD_LEFT_REDUCTION
-         : REDUC_GROUP_FIRST_ELEMENT (stmt_vinfo) != NULL_STMT_VEC_INFO);
+         : REDUC_GROUP_FIRST_ELEMENT (stmt_vinfo) != NULL);
 }
 
 /* As above, but also require it to have code CODE and to be a reduction
index 568705c3eed2f173f7117bbf1198f656288d158d..4869b634a609395f28c5b6411bf4259bf89355cc 100644 (file)
@@ -2847,7 +2847,7 @@ vect_build_gather_load_calls (stmt_vec_info stmt_info,
          new_stmt_info = loop_vinfo->lookup_def (var);
        }
 
-      if (prev_stmt_info == NULL_STMT_VEC_INFO)
+      if (prev_stmt_info == NULL)
        STMT_VINFO_VEC_STMT (stmt_info) = *vec_stmt = new_stmt_info;
       else
        STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt_info;
@@ -6578,7 +6578,7 @@ vectorizable_store (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
          stmt_vec_info new_stmt_info
            = vect_finish_stmt_generation (stmt_info, new_stmt, gsi);
 
-         if (prev_stmt_info == NULL_STMT_VEC_INFO)
+         if (prev_stmt_info == NULL)
            STMT_VINFO_VEC_STMT (stmt_info) = *vec_stmt = new_stmt_info;
          else
            STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt_info;
index 44a0c4d1ce5d86bbdf4707b79ad76bc0743f0114..d58729be246b149e44f0a64a0d33ee6ebb36093c 100644 (file)
@@ -660,7 +660,7 @@ vec_info::set_vinfo_for_stmt (gimple *stmt, stmt_vec_info info)
     }
   else
     {
-      gcc_checking_assert (info == NULL_STMT_VEC_INFO);
+      gcc_checking_assert (info == NULL);
       stmt_vec_infos[uid - 1] = info;
     }
 }
@@ -673,7 +673,7 @@ vec_info::free_stmt_vec_infos (void)
   unsigned int i;
   stmt_vec_info info;
   FOR_EACH_VEC_ELT (stmt_vec_infos, i, info)
-    if (info != NULL_STMT_VEC_INFO)
+    if (info != NULL)
       free_stmt_vec_info (info);
   stmt_vec_infos.release ();
 }
index 717d3733d2e7221ddc396cd7f2e93dd505648212..47a459bbc47dd2e6b4e1c19684936764f8847cae 100644 (file)
@@ -21,26 +21,7 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_TREE_VECTORIZER_H
 #define GCC_TREE_VECTORIZER_H
 
-class stmt_vec_info {
-public:
-  stmt_vec_info () {}
-  stmt_vec_info (struct _stmt_vec_info *ptr) : m_ptr (ptr) {}
-  struct _stmt_vec_info *operator-> () const { return m_ptr; }
-  struct _stmt_vec_info &operator* () const;
-  operator struct _stmt_vec_info * () const { return m_ptr; }
-  operator gimple * () const;
-  operator void * () const { return m_ptr; }
-  operator bool () const { return m_ptr; }
-  bool operator == (const stmt_vec_info &x) { return x.m_ptr == m_ptr; }
-  bool operator == (_stmt_vec_info *x) { return x == m_ptr; }
-  bool operator != (const stmt_vec_info &x) { return x.m_ptr != m_ptr; }
-  bool operator != (_stmt_vec_info *x) { return x != m_ptr; }
-
-private:
-  struct _stmt_vec_info *m_ptr;
-};
-
-#define NULL_STMT_VEC_INFO (stmt_vec_info (NULL))
+typedef struct _stmt_vec_info *stmt_vec_info;
 
 #include "tree-data-ref.h"
 #include "tree-hash-traits.h"
@@ -1091,17 +1072,6 @@ STMT_VINFO_BB_VINFO (stmt_vec_info stmt_vinfo)
        && TYPE_PRECISION (TYPE) == 1           \
        && TYPE_UNSIGNED (TYPE)))
 
-inline _stmt_vec_info &
-stmt_vec_info::operator* () const
-{
-  return *m_ptr;
-}
-
-inline stmt_vec_info::operator gimple * () const
-{
-  return m_ptr ? m_ptr->stmt : NULL;
-}
-
 static inline bool
 nested_in_vect_loop_p (struct loop *loop, stmt_vec_info stmt_info)
 {