diff options
Diffstat (limited to 'gcc/config/arm/arm.c')
-rw-r--r-- | gcc/config/arm/arm.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 7c9cdbd..ca7fd90 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -3524,9 +3524,8 @@ arm_option_override (void) but measurable, size reduction for PIC code. Therefore, we decrease the bar for unrestricted expression hoisting to the cost of PIC address calculation, which is 2 instructions. */ - maybe_set_param_value (PARAM_GCSE_UNRESTRICTED_COST, 2, - global_options.x_param_values, - global_options_set.x_param_values); + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + param_gcse_unrestricted_cost, 2); /* ARM EABI defaults to strict volatile bitfields. */ if (TARGET_AAPCS_BASED && flag_strict_volatile_bitfields < 0 @@ -3546,47 +3545,43 @@ arm_option_override (void) override the defaults unless we are tuning for a core we have researched values for. */ if (current_tune->prefetch.num_slots > 0) - maybe_set_param_value (PARAM_SIMULTANEOUS_PREFETCHES, - current_tune->prefetch.num_slots, - global_options.x_param_values, - global_options_set.x_param_values); + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + param_simultaneous_prefetches, + current_tune->prefetch.num_slots); if (current_tune->prefetch.l1_cache_line_size >= 0) - maybe_set_param_value (PARAM_L1_CACHE_LINE_SIZE, - current_tune->prefetch.l1_cache_line_size, - global_options.x_param_values, - global_options_set.x_param_values); + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + param_l1_cache_line_size, + current_tune->prefetch.l1_cache_line_size); if (current_tune->prefetch.l1_cache_size >= 0) - maybe_set_param_value (PARAM_L1_CACHE_SIZE, - current_tune->prefetch.l1_cache_size, - global_options.x_param_values, - global_options_set.x_param_values); + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + param_l1_cache_size, + current_tune->prefetch.l1_cache_size); /* Look through ready list and all of queue for instructions relevant for L2 auto-prefetcher. */ - int param_sched_autopref_queue_depth; + int sched_autopref_queue_depth; switch (current_tune->sched_autopref) { case tune_params::SCHED_AUTOPREF_OFF: - param_sched_autopref_queue_depth = -1; + sched_autopref_queue_depth = -1; break; case tune_params::SCHED_AUTOPREF_RANK: - param_sched_autopref_queue_depth = 0; + sched_autopref_queue_depth = 0; break; case tune_params::SCHED_AUTOPREF_FULL: - param_sched_autopref_queue_depth = max_insn_queue_index + 1; + sched_autopref_queue_depth = max_insn_queue_index + 1; break; default: gcc_unreachable (); } - maybe_set_param_value (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH, - param_sched_autopref_queue_depth, - global_options.x_param_values, - global_options_set.x_param_values); + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + param_sched_autopref_queue_depth, + sched_autopref_queue_depth); /* Currently, for slow flash data, we just disable literal pools. We also disable it for pure-code. */ @@ -31748,8 +31743,6 @@ arm_valid_target_attribute_p (tree fndecl, tree ARG_UNUSED (name), DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fndecl) = new_optimize; - finalize_options_struct (&func_options); - return ret; } |