This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/24/2018 04:29 AM, tamar.christina@arm.com wrote:
> 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
> 
> 
> rb9153-2.patch
[ ... ]
I think this is fine now.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]