[PATCH][GCC][front-end][opt-framework] Update options framework for parameters to properly handle and validate configure time params. [Patch (2/3)]

tamar.christina@arm.com tamar.christina@arm.com
Tue Jul 24 10:29:00 GMT 2018


Hi All,

This patch is re-spun to handle the configure changes in patch 4 / 6 of the previous series.

This patch now changes it so that default parameters are validated during
initialization. This change is needed to ensure parameters set via by the
target specific common initialization routines still keep the parameters within
the valid range.

Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-pc-linux-gnu and no issues.
Both targets were tested with stack clash on and off by default.

Ok for trunk?

Thanks,
Tamar

gcc/
2018-07-24  Tamar Christina  <tamar.christina@arm.com>

	* params.c (validate_param): New.
	(add_params): Use it.
	(set_param_value): Refactor param validation into validate_param.
	(diagnostic.h): Include.
	* diagnostic.h (diagnostic_ready_p): New.

> -----Original Message-----
> From: Jeff Law <law@redhat.com>
> Sent: Wednesday, July 11, 2018 20:24
> To: Tamar Christina <Tamar.Christina@arm.com>; gcc-patches@gcc.gnu.org
> Cc: nd <nd@arm.com>; joseph@codesourcery.com
> Subject: Re: [PATCH][GCC][front-end][opt-framework] Update options
> framework for parameters to properly handle and validate configure time
> params. [Patch (2/3)]
> 
> On 07/11/2018 05:24 AM, Tamar Christina wrote:
> > Hi All,
> >
> > This patch builds on a previous patch to pass param options down from
> > configure by adding more expansive validation and correctness checks.
> >
> > These are set very early on and allow the target to validate or reject
> > the values as they see fit.
> >
> > To do this compiler_param has been extended to hold a value set at
> > configure time, this value is used to be able to distinguish between
> >
> > 1) default value
> > 2) configure value
> > 3) back-end default
> > 4) user specific value.
> >
> > The priority of the values should be 4 > 2 > 3 > 1.  The compiler will
> > now also validate the values in params.def after setting them.  This
> > means invalid values will no longer be accepted.
> >
> > This also changes it so that default parameters are validated during
> > initialization. This change is needed to ensure parameters set via
> > configure or by the target specific common initialization routines
> > still keep the parameters within the valid range.
> >
> > Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-pc-linux-gnu
> and no issues.
> > Both targets were tested with stack clash on and off by default.
> >
> > Ok for trunk?
> >
> > Thanks,
> > Tamar
> >
> > gcc/
> > 2018-07-11  Tamar Christina  <tamar.christina@arm.com>
> >
> > 	* params.h (struct param_info): Add configure_value.
> > 	* params.c (DEFPARAMCONF): New.
> > 	(DEFPARAM, DEFPARAMENUM5): Set configure_value.
> > 	(validate_param): New.
> > 	(add_params): Use it.
> > 	(set_param_value): Refactor param validation into validate_param.
> > 	(maybe_set_param_value): Don't override value from configure.
> > 	(diagnostic.h): Include.
> > 	* params-enum.h (DEFPARAMCONF): New.
> > 	* params-list.h: Likewise.
> > 	* params-options.h: Likewise.
> > 	* params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE):
> Use it.
> > 	* diagnostic.h (diagnostic_ready_p): New.
> Generally OK, though probably should depend on what we decide WRT
> configurability.  ie, I'm not convinced we need to be able to set the default
> via a configure time option.  And if we don't support that this patch gets
> somewhat simpler.
> 
> jeff
> >

-------------- next part --------------
A non-text attachment was scrubbed...
Name: rb9153-2.patch
Type: text/x-diff
Size: 4569 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180724/87a8989b/attachment.bin>


More information about the Gcc-patches mailing list