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.
This commit is contained in:
parent
6779e9ba2c
commit
4cb52980e5
@ -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
|
||||
|
@ -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 },
|
||||
|
41
gcc/toplev.c
41
gcc/toplev.c
@ -119,10 +119,6 @@ unsigned int save_decoded_options_count;
|
||||
/* Vector of saved Optimization decoded command line options. */
|
||||
vec<cl_decoded_option> *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;
|
||||
/* 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 == AUTODETECT_VALUE)
|
||||
flag_var_tracking = optimize >= 1;
|
||||
|
||||
if (flag_var_tracking_uninit == AUTODETECT_VALUE)
|
||||
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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user