Hi All, Thank you both for the reviews.
I have tried to address the concerns about unconditionally moving iv step calculation to the loop body by introducing a LOOP_VINFO_IV_INCREMENT_INVARIANT_P macro to determine if the value should calculated in the preheader, or in the loop body. It will still need to be updated to use IFN_VARYING after Tamars patch lands. I also finally managed to get a decent riscv build and test setup going and found some issues, which I have resolved and this is passing riscv regression tests. Bootstrap and regression tested on on aarch64, x86-64, and armhf. Also bootstrapped and regression tested with my upcoming FFR patch which makes use of this. KR, Alfie Alfie Richards (2): vect: add null check for ptr_incr optional in vect_create_data_ref_ptr vect: Introduce LOOP_VINFO_IV_INCREMENT gcc/tree-ssa-loop-manip.cc | 21 ++- gcc/tree-ssa-loop-manip.h | 3 +- gcc/tree-vect-data-refs.cc | 46 +------ gcc/tree-vect-loop-manip.cc | 74 +++++++--- gcc/tree-vect-loop.cc | 90 +++++------- gcc/tree-vect-stmts.cc | 265 ++++++++++++++++++------------------ gcc/tree-vectorizer.h | 10 +- 7 files changed, 256 insertions(+), 253 deletions(-) -- 2.34.1
