The aim of this series is to: (a) make the vectoriser refer to statements using its own expanded stmt_vec_info rather than the underlying gimple stmt. This reduces the number of stmt lookups from 480 in current sources to under 100.
(b) make the remaining lookups relative the owning vec_info rather than to global state. The original motivation was to make it more natural to have multiple vec_infos live at once. The series is a clean-up only in a data structure sense. It certainly doesn't make the code prettier, and in the end it only shaves 120 LOC in total. But I think it should make it easier to do follow-on clean-ups. The series was pretty tedious to write to and will be pretty tedious to review, sorry. I tested each individual patch on aarch64-linux-gnu and the series as a whole on aarch64-linux-gnu with SVE, aarch64_be-elf and x86_64-linux-gnu. I also built and tested at least one target per CPU directory, made sure that there were no new warnings, and checked for differences in assembly output for gcc.dg, g++.dg and gcc.c-torture. There were a couple of cases in vect-alias-check-* of equality comparisons using the opposite operand order, which is an unrelated problem. There were no other differences. OK to install? Thanks, Richard