On Sat, Oct 15, 2016 at 01:07:12PM +1100, kugan wrote: > Hi Bin, > > On 15/10/16 00:15, Bin Cheng wrote: > >+/* Test for likely overcommitment of vector hardware resources. If a > >+ loop iteration is relatively large, and too large a percentage of > >+ instructions in the loop are vectorized, the cost model may not > >+ adequately reflect delays from unavailable vector resources. > >+ Penalize the loop body cost for this case. */ > >+ > >+static void > >+aarch64_density_test (struct aarch64_vect_loop_cost_data *data) > >+{ > >+ const int DENSITY_PCT_THRESHOLD = 85; > >+ const int DENSITY_SIZE_THRESHOLD = 128; > >+ const int DENSITY_PENALTY = 10; > >+ struct loop *loop = data->loop_info; > >+ basic_block *bbs = get_loop_body (loop); > > Is this worth being part of the cost model such that it can have > different defaults for different micro-architecture?
I think this is a relevant point, even if we do choose these values for the generic compilation model, we may want to tune this on a per-core basis. So, pulling these magic numbers out in to a new field in the CPU tuning structures (tune_params) is probably the right approach. Thanks, James