This is the mail archive of the gcc@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: How to set params under option?


On Wed, Aug 1, 2012 at 9:25 AM, Konstantin Vladimirov
<konstantin.vladimirov@gmail.com> wrote:
> Hi,
>
> Working on private backend. Need to add some knobs to tune inlining.
> Code (with name of backend substituted to "my"):
>
> in my.c file:
>
> #undef TARGET_OPTION_DEFAULT_PARAMS
> #define TARGET_OPTION_DEFAULT_PARAMS my_option_default_params
>
> static void
> my_option_default_params (void)
> {
>   my_log("Large function size = %d\n", my_large_function_size);
>   my_log("Function growth = %d\n", my_function_growth);
>   my_log("Large module size = %d\n", my_large_module_size);
>   my_log("Module growth = %d\n", my_module_growth);
>
>   set_default_param_value(PARAM_LARGE_FUNCTION_INSNS, my_large_function_size);
>   set_default_param_value(PARAM_LARGE_FUNCTION_GROWTH, my_function_growth);
>   set_default_param_value(PARAM_LARGE_UNIT_INSNS, my_large_module_size);
>   set_default_param_value(PARAM_INLINE_UNIT_GROWTH, my_module_growth);
> }
>
> in my.opt file:
>
> heur-function-growth=
> Target RejectNegative Joined UInteger Var(my_function_growth) Init(100)
> Acceptable large (see below what means large) function growth as a
> result of inlining in percents (100% by default)
>
> heur-module-growth=
> Target RejectNegative Joined UInteger Var(my_module_growth) Init(30)
> Acceptable module growth as a result of inlining in percents (30% by default)
>
> heur-large-function-size=
> Target RejectNegative Joined UInteger Var(my_large_function_size) Init(2700)
> Size in instructions of function that considered to be large (2700 by default)
>
> heur-large-module-size=
> Target RejectNegative Joined UInteger Var(my_large_module_size) Init(10000)
> Size in instructions of module, that is considered to be large (10000
> by default)
>
> But in the log output all values in my_option_default_params function
> are zeros. Under debugger I can see that it is called earlier, than my
> options initialized. Are there any other ways to make such knobs?

Err - why not simply let the user specify --param large-function-size=2700?

> ---
> With best regards, Konstantin


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