diff mbox series

[46/46] Turn stmt_vec_info back into a typedef

Message ID 87efftkkow.fsf@arm.com
State New
Headers show
Series Remove vinfo_for_stmt etc. | expand

Commit Message

Richard Sandiford July 24, 2018, 10:11 a.m. UTC
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-24  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.

Comments

Richard Biener July 31, 2018, 12:07 p.m. UTC | #1
On Tue, Jul 24, 2018 at 12:11 PM Richard Sandiford
<richard.sandiford@arm.com> wrote:
>
> 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.
>

OK.  For the whole series now if I didn't miss anything...

Richard.

> 2018-07-24  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.
>
> Index: gcc/tree-vectorizer.h
> ===================================================================
> --- gcc/tree-vectorizer.h       2018-07-24 10:24:32.472224947 +0100
> +++ gcc/tree-vectorizer.h       2018-07-24 10:24:35.888194598 +0100
> @@ -21,26 +21,7 @@ Software Foundation; either version 3, o
>  #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"
> @@ -1080,17 +1061,6 @@ #define VECT_SCALAR_BOOLEAN_TYPE_P(TYPE)
>         && 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)
>  {
> Index: gcc/tree-vect-loop.c
> ===================================================================
> --- gcc/tree-vect-loop.c        2018-07-24 10:24:29.296253164 +0100
> +++ gcc/tree-vect-loop.c        2018-07-24 10:24:35.884194634 +0100
> @@ -6755,7 +6755,7 @@ vectorizable_reduction (stmt_vec_info st
>    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: gcc/tree-vect-patterns.c
> ===================================================================
> --- gcc/tree-vect-patterns.c    2018-07-24 10:24:02.360492422 +0100
> +++ gcc/tree-vect-patterns.c    2018-07-24 10:24:35.884194634 +0100
> @@ -104,7 +104,7 @@ vect_init_pattern_stmt (gimple *pattern_
>  {
>    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
>  {
>    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: gcc/tree-vect-stmts.c
> ===================================================================
> --- gcc/tree-vect-stmts.c       2018-07-24 10:24:29.300253129 +0100
> +++ gcc/tree-vect-stmts.c       2018-07-24 10:24:35.888194598 +0100
> @@ -2842,7 +2842,7 @@ vect_build_gather_load_calls (stmt_vec_i
>           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;
> @@ -6574,7 +6574,7 @@ vectorizable_store (stmt_vec_info stmt_i
>           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: gcc/tree-vectorizer.c
> ===================================================================
> --- gcc/tree-vectorizer.c       2018-07-24 10:24:32.472224947 +0100
> +++ gcc/tree-vectorizer.c       2018-07-24 10:24:35.888194598 +0100
> @@ -649,7 +649,7 @@ vec_info::set_vinfo_for_stmt (gimple *st
>      }
>    else
>      {
> -      gcc_checking_assert (info == NULL_STMT_VEC_INFO);
> +      gcc_checking_assert (info == NULL);
>        stmt_vec_infos[uid - 1] = info;
>      }
>  }
> @@ -662,7 +662,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 ();
>  }
diff mbox series

Patch

Index: gcc/tree-vectorizer.h
===================================================================
--- gcc/tree-vectorizer.h	2018-07-24 10:24:32.472224947 +0100
+++ gcc/tree-vectorizer.h	2018-07-24 10:24:35.888194598 +0100
@@ -21,26 +21,7 @@  Software Foundation; either version 3, o
 #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"
@@ -1080,17 +1061,6 @@  #define VECT_SCALAR_BOOLEAN_TYPE_P(TYPE)
        && 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)
 {
Index: gcc/tree-vect-loop.c
===================================================================
--- gcc/tree-vect-loop.c	2018-07-24 10:24:29.296253164 +0100
+++ gcc/tree-vect-loop.c	2018-07-24 10:24:35.884194634 +0100
@@ -6755,7 +6755,7 @@  vectorizable_reduction (stmt_vec_info st
   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: gcc/tree-vect-patterns.c
===================================================================
--- gcc/tree-vect-patterns.c	2018-07-24 10:24:02.360492422 +0100
+++ gcc/tree-vect-patterns.c	2018-07-24 10:24:35.884194634 +0100
@@ -104,7 +104,7 @@  vect_init_pattern_stmt (gimple *pattern_
 {
   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
 {
   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: gcc/tree-vect-stmts.c
===================================================================
--- gcc/tree-vect-stmts.c	2018-07-24 10:24:29.300253129 +0100
+++ gcc/tree-vect-stmts.c	2018-07-24 10:24:35.888194598 +0100
@@ -2842,7 +2842,7 @@  vect_build_gather_load_calls (stmt_vec_i
 	  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;
@@ -6574,7 +6574,7 @@  vectorizable_store (stmt_vec_info stmt_i
 	  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: gcc/tree-vectorizer.c
===================================================================
--- gcc/tree-vectorizer.c	2018-07-24 10:24:32.472224947 +0100
+++ gcc/tree-vectorizer.c	2018-07-24 10:24:35.888194598 +0100
@@ -649,7 +649,7 @@  vec_info::set_vinfo_for_stmt (gimple *st
     }
   else
     {
-      gcc_checking_assert (info == NULL_STMT_VEC_INFO);
+      gcc_checking_assert (info == NULL);
       stmt_vec_infos[uid - 1] = info;
     }
 }
@@ -662,7 +662,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 ();
 }