diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-14 10:22:43 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-14 10:22:43 +0000 |
commit | 56f280c4e1666af026e5c2c274e8b1a165691ea1 (patch) | |
tree | 9b340b8d6c331d28e231ef93373d6e4219525626 /gcc/params.h | |
parent | 5574dbdd51f2fab4b84bb3b5cde65239c2845624 (diff) | |
download | gcc-56f280c4e1666af026e5c2c274e8b1a165691ea1.tar.gz |
* params.c (params_finished): New.
(add_params): Assert !params_finished.
(finish_params): New.
(set_param_value_internal): Take params and params_set
parameters. Assert params_finished.
(set_param_value, maybe_set_param_value): Take params and
params_set parameters. Update calls to set_param_value_internal.
(set_default_param_value): Assert !params_finished. Don't use
set_param_value_internal.
(default_param_value, init_param_values): New.
* params.h (struct param_info): Change value to default_value.
Remove set.
(set_param_value, maybe_set_param_value): Add params and
params_set parameters.
(PARAM_VALUE): Get parameters from global_options.
(PARAM_SET_P): Remove.
(finish_params, default_param_value, init_param_values): New.
* common.opt (param_values): New Variable.
* config/arm/arm.c (arm_option_override): Pass extra arguments to
maybe_set_param_value.
* config/i386/i386.c (ix86_option_override_internal): Pass extra
arguments to maybe_set_param_value.
* config/picochip/picochip.c (picochip_option_override): Pass
extra arguments to maybe_set_param_value.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
extra arguments to maybe_set_param_value.
* config/s390/s390.c (s390_option_override): Use
maybe_set_param_value instead of set_param_value. Pass extra
arguments to maybe_set_param_value.
* config/sparc/sparc.c (sparc_option_override): Pass extra
arguments to maybe_set_param_value.
* config/spu/spu.c (spu_option_override): Pass extra arguments to
maybe_set_param_value.
* opts.c (handle_param): Take opts and opts_set parameters.
Update call to set_param_value.
(initial_min_crossjump_insns,
initial_max_fields_for_field_sensitive,
initial_loop_invariant_max_bbs_in_loop): Remove.
(init_options_once): Don't set them.
(init_options_struct): Initialize parameters structures.
(default_options_optimization): Use default_param_value when
restoring defaults. Update calls to maybe_set_param_value.
(finish_options): Update calls to maybe_set_param_value.
(common_handle_option): Update calls to handle_param and
set_param_value.
* toplev.c (DEFPARAM): Update definition for changes to
param_info.
(general_init): Call finish_params.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165460 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/params.h')
-rw-r--r-- | gcc/params.h | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/gcc/params.h b/gcc/params.h index b924e781a1e..5aeb3ef47d7 100644 --- a/gcc/params.h +++ b/gcc/params.h @@ -44,11 +44,9 @@ typedef struct param_info /* The name used with the `--param <name>=<value>' switch to set this value. */ const char *const option; - /* The associated value. */ - int value; - /* True if the parameter was explicitly set. */ - bool set; + /* The default value. */ + int default_value; /* Minimum acceptable value. */ int min_value; @@ -72,9 +70,12 @@ extern size_t get_num_compiler_params (void); extern void add_params (const param_info params[], size_t n); -/* Set the VALUE associated with the parameter given by NAME. */ +/* Set the VALUE associated with the parameter given by NAME in the + table PARAMS using PARAMS_SET to indicate which have been + explicitly set. */ -extern void set_param_value (const char *name, int value); +extern void set_param_value (const char *name, int value, + int *params, int *params_set); /* The parameters in use by language-independent code. */ @@ -90,22 +91,31 @@ typedef enum compiler_param /* The value of the parameter given by ENUM. Not an lvalue. */ #define PARAM_VALUE(ENUM) \ - ((int) compiler_params[(int) ENUM].value) + ((int) global_options.x_param_values[(int) ENUM]) /* Set the value of the parameter given by NUM to VALUE, implicitly, - if it has not been set explicitly by the user. */ + if it has not been set explicitly by the user, in the table PARAMS + using PARAMS_SET to indicate which have been explicitly set. */ -extern void maybe_set_param_value (compiler_param num, int value); +extern void maybe_set_param_value (compiler_param num, int value, + int *params, int *params_set); /* Set the default value of a parameter given by NUM to VALUE, before option processing. */ extern void set_default_param_value (compiler_param num, int value); -/* True if the value of the parameter was explicitly changed. Not an - lvalue. */ -#define PARAM_SET_P(ENUM) \ - ((bool) compiler_params[(int) ENUM].set) +/* Note that all parameters have been added and all default values + set. */ +extern void finish_params (void); + +/* Return the default value of parameter NUM. */ + +extern int default_param_value (compiler_param num); + +/* Initialize an array PARAMS with default values of the + parameters. */ +extern void init_param_values (int *params); /* Macros for the various parameters. */ #define STRUCT_REORG_COLD_STRUCT_RATIO \ |