https://gcc.gnu.org/g:9f13fd1b076d041cde15245fb14aa641dafd32f0
commit r16-4420-g9f13fd1b076d041cde15245fb14aa641dafd32f0 Author: Richard Biener <[email protected]> Date: Tue Oct 14 14:13:56 2025 +0200 Remove REDUC_GROUP_* from public interface The following removes REDUC_GROUP_* from the public vectorizer interface and privatizes REDUC_GROUP_FIRST_ELEMENT which is now only temporarily set during SLP discovery. * tree-vectorizer.h (REDUC_GROUP_FIRST_ELEMENT, REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Remove. * tree-vect-slp.cc (REDUC_GROUP_FIRST_ELEMENT): Re-instantiate here. Diff: --- gcc/tree-vect-slp.cc | 3 +++ gcc/tree-vectorizer.h | 9 +-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index c5a2fe823943..13a2995592b7 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -53,6 +53,9 @@ along with GCC; see the file COPYING3. If not see #include "sreal.h" #include "predict.h" +#define REDUC_GROUP_FIRST_ELEMENT(S) \ + (gcc_checking_assert (!(S)->dr_aux.dr), (S)->first_element) + static bool vect_transform_slp_perm_load_1 (vec_info *, slp_tree, load_permutation_t &, const vec<tree> &, diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index a6c313e0ab98..4785cbdd61df 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -1538,7 +1538,7 @@ public: /* Whether the stmt is SLPed, loop-based vectorized, or both. */ enum slp_vect_type slp_type; - /* Interleaving and reduction chains info. */ + /* Interleaving chains info. */ /* First element in the group. */ stmt_vec_info first_element; /* Pointer to the next element in the group. */ @@ -1711,13 +1711,6 @@ struct gather_scatter_info { #define DR_GROUP_GAP(S) \ (gcc_checking_assert ((S)->dr_aux.dr), (S)->gap) -#define REDUC_GROUP_FIRST_ELEMENT(S) \ - (gcc_checking_assert (!(S)->dr_aux.dr), (S)->first_element) -#define REDUC_GROUP_NEXT_ELEMENT(S) \ - (gcc_checking_assert (!(S)->dr_aux.dr), (S)->next_element) -#define REDUC_GROUP_SIZE(S) \ - (gcc_checking_assert (!(S)->dr_aux.dr), (S)->size) - #define STMT_VINFO_RELEVANT_P(S) ((S)->relevant != vect_unused_in_scope) #define PURE_SLP_STMT(S) ((S)->slp_type == pure_slp)
