James, Since other members of the "tune_params" structure were signed integers, even though negative numbers would make no sense for most either, I followed the same pattern. Regardless, here's a patch with unsigned integers as you requested: [AArch64] Add extra tuning parameters for target processors 2015-11-05 Evandro Menezes gcc/ * config/aarch64/aarch64-protos.h (tune_params): Add new members "max_case_values" and "cache_line_size". * config/aarch64/aarch64.c (aarch64_case_values_threshold): New function. (aarch64_override_options_internal): Tune heuristics based on new members in "tune_params". (TARGET_CASE_VALUES_THRESHOLD): Define macro. Please, commit if it's alright. Thank you, -- Evandro Menezes On 11/05/2015 03:22 AM, James Greenhalgh wrote: > On Wed, Nov 04, 2015 at 05:21:03PM -0600, Evandro Menezes wrote: >> Please, ignore the previous patch. This is the intended patch. >> >> Sorry. >> >> -- >> Evandro Menezes >> >> On 11/04/2015 05:18 PM, Evandro Menezes wrote: >>> This patch adds extra tuning information about AArch64 targets: >>> >>> * Maximum number of case values before resorting to a jump table >>> The default values assumed independently of the specific backends >>> may be rather low for modern processors, which sport quite efficient >>> direct branch prediction, whereas indirect branch prediction is >>> still typically not so efficient. This value may be specifically >>> set for a processor or left at zero to use the default values. >>> * L1 cache line size >>> The auto-prefetcher uses this information when emitting software >>> prefetch insns. >>> >>> Please, commit if it's alright. >>> >>> Thank you, >>> > Thanks for the patch, > >> diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h >> index 81792bc..ecf4685 100644 >> --- a/gcc/config/aarch64/aarch64-protos.h >> +++ b/gcc/config/aarch64/aarch64-protos.h >> @@ -195,6 +195,9 @@ struct tune_params >> int vec_reassoc_width; >> int min_div_recip_mul_sf; >> int min_div_recip_mul_df; >> + int max_case_values; /* Case values threshold; or 0 for the default. */ > If we're using an int, how about -1 as the sentinel value? (Maybe someone > really likes jump tables!). Otherwise, make this an unsigned int? > >> + >> + int cache_line_size; /* Cache line size; or 0 for the default. */ > unsigned int? > > The patch is otherwise OK, though it needs a ChangeLog. > > Thanks, > James > >