From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1851) id 1BF93385841D; Thu, 14 Oct 2021 11:08:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1BF93385841D Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Martin Liska To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/marxin/heads/remove-AUTODETECT_VALUE-opt-value-v3)] Eliminate AUTODETECT_VALUE usage in options. X-Act-Checkin: gcc X-Git-Author: Martin Liska X-Git-Refname: refs/users/marxin/heads/remove-AUTODETECT_VALUE-opt-value-v3 X-Git-Oldrev: 3d0a7271b383c95d5c8dc9647966517a61e71abb X-Git-Newrev: 4d9adc296aa527d9ae504da4271e7293d77bceed Message-Id: <20211014110815.1BF93385841D@sourceware.org> Date: Thu, 14 Oct 2021 11:08:15 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Oct 2021 11:08:15 -0000 https://gcc.gnu.org/g:4d9adc296aa527d9ae504da4271e7293d77bceed commit 4d9adc296aa527d9ae504da4271e7293d77bceed Author: Martin Liska Date: Tue Oct 12 14:31:50 2021 +0200 Eliminate AUTODETECT_VALUE usage in options. gcc/ChangeLog: * common.opt: Stop using AUTODETECT_VALUE and use EnabledBy where possible. * opts.c: Enable OPT_fvar_tracking with optimize >= 1. * toplev.c (AUTODETECT_VALUE): Remove macro. (process_options): Simplify by using EnabledBy and OPT_fvar_tracking. Use OPTION_SET_P macro instead of AUTODETECT_VALUE. Diff: --- gcc/common.opt | 24 ++++++++++-------------- gcc/opts.c | 1 + gcc/toplev.c | 41 ++++++++++++++--------------------------- 3 files changed, 25 insertions(+), 41 deletions(-) diff --git a/gcc/common.opt b/gcc/common.opt index 1eedfeaf539..a2af7fb36e0 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -3003,19 +3003,16 @@ Common Undocumented Var(flag_use_linker_plugin) ; Positive if we should track variables, negative if we should run ; the var-tracking pass only to discard debug annotations, zero if -; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it -; will be set according to optimize, debug_info_level and debug_hooks -; in process_options (). +; we're not to run it. fvar-tracking -Common Var(flag_var_tracking) Init(2) PerFunction +Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit) Perform variable tracking. ; Positive if we should track variables at assignments, negative if ; we should run the var-tracking pass only to discard debug -; annotations. When flag_var_tracking_assignments == -; AUTODETECT_VALUE it will be set according to flag_var_tracking. +; annotations. fvar-tracking-assignments -Common Var(flag_var_tracking_assignments) Init(2) PerFunction +Common Var(flag_var_tracking_assignments) PerFunction Perform variable tracking by annotating assignments. ; Nonzero if we should toggle flag_var_tracking_assignments after @@ -3026,8 +3023,7 @@ Toggle -fvar-tracking-assignments. ; Positive if we should track uninitialized variables, negative if ; we should run the var-tracking pass only to discard debug -; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it -; will be set according to flag_var_tracking. +; annotations. fvar-tracking-uninit Common Var(flag_var_tracking_uninit) PerFunction Perform variable tracking and also tag variables that are uninitialized. @@ -3190,11 +3186,11 @@ Common Driver RejectNegative JoinedOrMissing Generate debug information in default format. gas-loc-support -Common Driver Var(dwarf2out_as_loc_support) Init(2) +Common Driver Var(dwarf2out_as_loc_support) Assume assembler support for (DWARF2+) .loc directives. gas-locview-support -Common Driver Var(dwarf2out_as_locview_support) Init(2) +Common Driver Var(dwarf2out_as_locview_support) Assume assembler support for view in (DWARF2+) .loc directives. gcoff @@ -3248,7 +3244,7 @@ Common Driver JoinedOrMissing Generate debug information in default extended format. ginline-points -Common Driver Var(debug_inline_points) Init(2) +Common Driver Var(debug_inline_points) Generate extended entry point information for inlined functions. ginternal-reset-location-views @@ -3288,7 +3284,7 @@ Common Driver JoinedOrMissing Negative(gvms) Generate debug information in extended STABS format. gstatement-frontiers -Common Driver Var(debug_nonbind_markers_p) Init(2) +Common Driver Var(debug_nonbind_markers_p) Emit progressive recommended breakpoint locations. gstrict-dwarf @@ -3304,7 +3300,7 @@ Common Driver Var(flag_gtoggle) Toggle debug information generation. gvariable-location-views -Common Driver Var(debug_variable_location_views, 1) Init(2) +Common Driver Var(debug_variable_location_views, 1) Augment variable location lists with progressive views. gvariable-location-views=incompat5 diff --git a/gcc/opts.c b/gcc/opts.c index fc71b6e4242..65fe192a198 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -581,6 +581,7 @@ static const struct default_options default_options_table[] = { OPT_LEVELS_1_PLUS, OPT_ftree_sink, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_ftree_slsr, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_ftree_ter, NULL, 1 }, + { OPT_LEVELS_1_PLUS, OPT_fvar_tracking, NULL, 1 }, /* -O1 (and not -Og) optimizations. */ { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fbranch_count_reg, NULL, 1 }, diff --git a/gcc/toplev.c b/gcc/toplev.c index 81546b19e91..4f574a5aad3 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -119,10 +119,6 @@ unsigned int save_decoded_options_count; /* Vector of saved Optimization decoded command line options. */ vec *save_opt_decoded_options; -/* Used to enable -fvar-tracking, -fweb and -frename-registers according - to optimize in process_options (). */ -#define AUTODETECT_VALUE 2 - /* Debug hooks - dependent upon command line options. */ const struct gcc_debug_hooks *debug_hooks; @@ -1483,8 +1479,9 @@ process_options (bool no_backend) || !dwarf_debuginfo_p () || debug_hooks->var_location == do_nothing_debug_hooks.var_location) { - if (flag_var_tracking == 1 - || flag_var_tracking_uninit == 1) + if ((OPTION_SET_P (flag_var_tracking) && flag_var_tracking == 1) + || (OPTION_SET_P (flag_var_tracking_uninit) + && flag_var_tracking_uninit == 1)) { if (debug_info_level < DINFO_LEVEL_NORMAL) warning_at (UNKNOWN_LOCATION, 0, @@ -1505,19 +1502,11 @@ process_options (bool no_backend) if (flag_dump_go_spec != NULL) debug_hooks = dump_go_spec_init (flag_dump_go_spec, debug_hooks); - /* If the user specifically requested variable tracking with tagging - uninitialized variables, we need to turn on variable tracking. - (We already determined above that variable tracking is feasible.) */ - if (flag_var_tracking_uninit == 1) - flag_var_tracking = 1; - - if (flag_var_tracking == AUTODETECT_VALUE) - flag_var_tracking = optimize >= 1; - - if (flag_var_tracking_uninit == AUTODETECT_VALUE) - flag_var_tracking_uninit = flag_var_tracking; + /* One could use EnabledBy, but it would lead to a circular dependency. */ + if (!OPTION_SET_P (flag_var_tracking_uninit)) + flag_var_tracking_uninit = flag_var_tracking; - if (flag_var_tracking_assignments == AUTODETECT_VALUE) + if (!OPTION_SET_P (flag_var_tracking_assignments)) flag_var_tracking_assignments = (flag_var_tracking && !(flag_selective_scheduling || flag_selective_scheduling2)); @@ -1533,21 +1522,19 @@ process_options (bool no_backend) warning_at (UNKNOWN_LOCATION, 0, "var-tracking-assignments changes selective scheduling"); - if (debug_nonbind_markers_p == AUTODETECT_VALUE) + if (!OPTION_SET_P (debug_nonbind_markers_p)) debug_nonbind_markers_p = (optimize && debug_info_level >= DINFO_LEVEL_NORMAL && dwarf_debuginfo_p () && !(flag_selective_scheduling || flag_selective_scheduling2)); - if (dwarf2out_as_loc_support == AUTODETECT_VALUE) - dwarf2out_as_loc_support - = dwarf2out_default_as_loc_support (); - if (dwarf2out_as_locview_support == AUTODETECT_VALUE) - dwarf2out_as_locview_support - = dwarf2out_default_as_locview_support (); + if (!OPTION_SET_P (dwarf2out_as_loc_support)) + dwarf2out_as_loc_support = dwarf2out_default_as_loc_support (); + if (!OPTION_SET_P (dwarf2out_as_locview_support)) + dwarf2out_as_locview_support = dwarf2out_default_as_locview_support (); - if (debug_variable_location_views == AUTODETECT_VALUE) + if (!OPTION_SET_P (debug_variable_location_views)) { debug_variable_location_views = (flag_var_tracking @@ -1581,7 +1568,7 @@ process_options (bool no_backend) debug_internal_reset_location_views = 0; } - if (debug_inline_points == AUTODETECT_VALUE) + if (!OPTION_SET_P (debug_inline_points)) debug_inline_points = debug_variable_location_views; else if (debug_inline_points && !debug_nonbind_markers_p) {