summaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-04 18:55:45 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-04 18:55:45 +0000
commit8f7630da88af4c628ca9bbc9b5396cac9d1b3cea (patch)
treec1c231b2d242caf3900b052944d562c37f52fc2e /gcc/toplev.c
parent5d8a44e03a2619c1ef2f61b9cbe41e45183865c7 (diff)
downloadgcc-8f7630da88af4c628ca9bbc9b5396cac9d1b3cea.tar.gz
* toplev.c (process_options): Move setter of flag_var_tracking
before other tests that depend on it. Move down setter of flag_rename_registers. Don't enable var-tracking-assignments by default if selective scheduling is enabled. Warn if both are enabled. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151433 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 1d69bb965d3..c18965a3c6e 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1982,15 +1982,18 @@ process_options (void)
flag_var_tracking_uninit = 0;
}
- if (flag_rename_registers == AUTODETECT_VALUE)
- flag_rename_registers = default_debug_hooks->var_location
- != do_nothing_debug_hooks.var_location;
+ /* 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)
+ flag_var_tracking = 1;
if (flag_var_tracking == AUTODETECT_VALUE)
flag_var_tracking = optimize >= 1;
if (flag_var_tracking_assignments == AUTODETECT_VALUE)
- flag_var_tracking_assignments = flag_var_tracking;
+ flag_var_tracking_assignments = flag_var_tracking
+ && !(flag_selective_scheduling || flag_selective_scheduling2);
if (flag_var_tracking_assignments_toggle)
flag_var_tracking_assignments = !flag_var_tracking_assignments;
@@ -1998,6 +2001,14 @@ process_options (void)
if (flag_var_tracking_assignments && !flag_var_tracking)
flag_var_tracking = flag_var_tracking_assignments = -1;
+ if (flag_var_tracking_assignments
+ && (flag_selective_scheduling || flag_selective_scheduling2))
+ warning (0, "var-tracking-assignments changes selective scheduling");
+
+ if (flag_rename_registers == AUTODETECT_VALUE)
+ flag_rename_registers = default_debug_hooks->var_location
+ != do_nothing_debug_hooks.var_location;
+
if (flag_tree_cselim == AUTODETECT_VALUE)
#ifdef HAVE_conditional_move
flag_tree_cselim = 1;
@@ -2005,12 +2016,6 @@ process_options (void)
flag_tree_cselim = 0;
#endif
- /* 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)
- flag_var_tracking = 1;
-
/* If auxiliary info generation is desired, open the output file.
This goes in the same directory as the source file--unlike
all the other output files. */