On 03/08/16 23:42, Andrew Pinski wrote: > Hi, > This patch adds to the thunderx model, the vector cost model. I > benchmarked this on SPEC CPU INT 2006 and got a small speed up. I > have a few more cost model patches that I am going upstream but they > are going to be split up. > > OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions. >
OK. R. > Thanks, > Andrew Pinski > > ChangeLog: > * config/aarch64/aarch64.c (thunderx_vector_cost): New variable. > (thunderx_tunings): Use thunderx_vector_cost instead of generic_vector_cost. > > > addthunderxcost.diff.txt > > > Index: config/aarch64/aarch64.c > =================================================================== > --- config/aarch64/aarch64.c (revision 239098) > +++ config/aarch64/aarch64.c (working copy) > @@ -376,6 +376,24 @@ static const struct cpu_vector_cost gene > 1 /* cond_not_taken_branch_cost */ > }; > > +/* ThunderX costs for vector insn classes. */ > +static const struct cpu_vector_cost thunderx_vector_cost = > +{ > + 1, /* scalar_stmt_cost */ > + 3, /* scalar_load_cost */ > + 1, /* scalar_store_cost */ > + 4, /* vec_stmt_cost */ > + 4, /* vec_permute_cost */ > + 2, /* vec_to_scalar_cost */ > + 2, /* scalar_to_vec_cost */ > + 3, /* vec_align_load_cost */ > + 10, /* vec_unalign_load_cost */ > + 10, /* vec_unalign_store_cost */ > + 1, /* vec_store_cost */ > + 3, /* cond_taken_branch_cost */ > + 3 /* cond_not_taken_branch_cost */ > +}; > + > /* Generic costs for vector insn classes. */ > static const struct cpu_vector_cost cortexa57_vector_cost = > { > @@ -677,7 +695,7 @@ static const struct tune_params thunderx > &thunderx_extra_costs, > &generic_addrcost_table, > &thunderx_regmove_cost, > - &generic_vector_cost, > + &thunderx_vector_cost, > &generic_branch_cost, > &generic_approx_modes, > 6, /* memmov_cost */ >