On Mon, Jan 30, 2017 at 2:01 AM, Richard Biener <richard.guent...@gmail.com> wrote: > On Sat, Jan 28, 2017 at 9:34 PM, Andrew Pinski <apin...@cavium.com> wrote: >> Hi, >> On some (most) AARCH64 cores, it is not always profitable to >> vectorize some integer loops. This patch does two things (I can split >> it into different patches if needed). >> 1) It splits the aarch64 back-end's vector cost model's vector and >> scalar costs into int and fp fields >> 1a) For thunderx2t99, models correctly the integer vector/scalar costs. >> 2) Fixes/Improves a few calls to record_stmt_cost in tree-vect-loop.c >> where stmt_info was not being passed. >> >> OK? Bootstrapped and tested on aarch64-linux-gnu and provides 20% on >> libquantum and ~1% overall on SPEC CPU 2006 int. > > + { > + struct _stmt_vec_info *stmt_info > + = si->stmt ? vinfo_for_stmt (si->stmt) : NULL; > > use stmt_vec_info instead of 'struct _stmt_vec_info *'.
Understood. I was just copying from previous in the file and I did not notice I should have converted into C++ style :). > > The vectorizer changes are ok with that change. Thanks, Andrew > > Thanks, > Richard. > >> Thanks, >> Andrew Pinski >> >> ChangeLog: >> * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass >> stmt_info to record_stmt_cost. >> (vect_get_known_peeling_cost): Pass stmt_info if known to record_stmt_cost. >> >> * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split >> cpu_vector_cost field into >> scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost >> field into vec_int_stmt_cost and vec_fp_stmt_cost. >> * config/aarch64/aarch64.c (generic_vector_cost): Update for the >> splitting of scalar_stmt_cost and vec_stmt_cost. >> (thunderx_vector_cost): Likewise. >> (cortexa57_vector_cost): LIkewise. >> (exynosm1_vector_cost): Likewise. >> (xgene1_vector_cost): Likewise. >> (thunderx2t99_vector_cost): Improve after the splitting of the two fields. >> (aarch64_builtin_vectorization_cost): Update for the splitting of >> scalar_stmt_cost and vec_stmt_cost.