https://gcc.gnu.org/g:2c0ce83c9faa1cbea9136a35de14a9f07b4fe6d4

commit r16-3179-g2c0ce83c9faa1cbea9136a35de14a9f07b4fe6d4
Author: Richard Biener <rguent...@suse.de>
Date:   Tue Aug 12 15:47:06 2025 +0200

    Simplify vect_supportable_dr_alignment API
    
    The gather_scatter_info pointer is only used as flag, so pass down
    a flag.
    
            * tree-vectorizer.h (vect_supportable_dr_alignment): Pass
            a bool instead of a pointer to gather_scatter_info.
            * tree-vect-data-refs.cc (vect_supportable_dr_alignment):
            Likewise.
            * tree-vect-stmts.cc (get_load_store_type): Adjust.

Diff:
---
 gcc/tree-vect-data-refs.cc | 3 +--
 gcc/tree-vect-stmts.cc     | 2 +-
 gcc/tree-vectorizer.h      | 2 +-
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index a3d3b3e7f433..4cfd1a301c2b 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -6541,7 +6541,7 @@ vect_can_force_dr_alignment_p (const_tree decl, 
poly_uint64 alignment)
 enum dr_alignment_support
 vect_supportable_dr_alignment (vec_info *vinfo, dr_vec_info *dr_info,
                               tree vectype, int misalignment,
-                              gather_scatter_info *gs_info)
+                              bool is_gather_scatter)
 {
   data_reference *dr = dr_info->dr;
   stmt_vec_info stmt_info = dr_info->stmt;
@@ -6652,7 +6652,6 @@ vect_supportable_dr_alignment (vec_info *vinfo, 
dr_vec_info *dr_info,
 
   bool is_packed = false;
   tree type = TREE_TYPE (DR_REF (dr));
-  bool is_gather_scatter = gs_info != nullptr;
   if (misalignment == DR_MISALIGNMENT_UNKNOWN)
     is_packed = not_size_aligned (DR_REF (dr));
   if (targetm.vectorize.support_vector_misalignment (mode, type, misalignment,
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 22397dc8bc33..1aa3c37d25e0 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -2346,7 +2346,7 @@ get_load_store_type (vec_info  *vinfo, stmt_vec_info 
stmt_info,
       *alignment_support_scheme
        = vect_supportable_dr_alignment
           (vinfo, first_dr_info, vectype, *misalignment,
-           *memory_access_type == VMAT_GATHER_SCATTER ? gs_info : nullptr);
+           *memory_access_type == VMAT_GATHER_SCATTER);
     }
 
   if (overrun_p)
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 041cff80286f..729c7044ef39 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -2549,7 +2549,7 @@ extern bool ref_within_array_bound (gimple *, tree);
 extern bool vect_can_force_dr_alignment_p (const_tree, poly_uint64);
 extern enum dr_alignment_support vect_supportable_dr_alignment
                                   (vec_info *, dr_vec_info *, tree, int,
-                                    gather_scatter_info * = nullptr);
+                                   bool = false);
 extern tree vect_get_smallest_scalar_type (stmt_vec_info, tree);
 extern opt_result vect_analyze_data_ref_dependences (loop_vec_info, unsigned 
int *);
 extern bool vect_slp_analyze_instance_dependence (vec_info *, slp_instance);

Reply via email to