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);