On Tue, 6 May 2025, andre.simoesdiasvie...@arm.com wrote: > From: Andre Vieira <andre.simoesdiasvie...@arm.com> > > Somewhat following richi's example of SLP cleanup, this patch series > cleansup SLP code for vectorizable_reduction and friends. > > 1) fold trivially true/false conditions based on the slp_node argument > without code block removal/reindent, etc. > 2) do trivial dead code elimination > 3) first steps in cleanup simple things - it's expected that the 'ncopies' > variable > vanishes (a vec_num one might remain), removed > 'get_initial_def_for_reduction'. Not entirely sure what to do about > STMT_VINFO_VECTYPE. > 4) folds loops that used ncopies and now no longer need to be loops > 5) When trying to do 3, I could not remove the use of 'vec_stmt' for > vectorizable_lc_phi as that was needed to distinguish between 'analysis' and > 'transformation', so in this step we split up vectorizable_lc_phi and create > a vect_transform_lc_phi, similar to other vectorizable_* and vect_transform_*. > 6) Remove the gimple ** argument that is no longer needed from > vectorizable_lc_phi and vect_transform_lc_phi > > The order of 5-6 relative to the rest could be changed, but I only noticed > its need after, happy to re-order and whether there are any objections to > these all being squashed together, there may be an argument for doing 5-6 as > a separate squashed patch. > > I tested a version of these on x86_64-pc-linux-gnu, > aarch64-none-linux-gnu and arm-none-gnueabihf but made some minor > changes since. I'll retest after discussing some further changes around > the STMT_VINFO_VECTYPE stuff.
Thanks for tackling the most complicated case ;) The series is OK if squashed to a single commit with the minor issues resolved (some possibly resolved themselves with later patches in the series, but IIRC not all). Richard. > Andre Vieira (6): > vect: Remove non-SLP path from vectorizable_reduction > vect: Remove non-SLP path from vectorizable_reduction > vect: Remove non-SLP path from vectorizable_reduction > vect: Remove non-SLP path from vectorizable_reduction > vect: Split vectorizable_lc_phi > vect: Split vectorizable_lc_phi > > gcc/tree-vect-loop.cc | 728 ++++++++++++----------------------------- > gcc/tree-vect-stmts.cc | 10 +- > gcc/tree-vectorizer.h | 7 +- > 3 files changed, 209 insertions(+), 536 deletions(-) > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)