toplev.c (process_options): Move setter of flag_var_tracking before other tests that depend on it.

* 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.

From-SVN: r151433
This commit is contained in:
Alexandre Oliva 2009-09-04 18:55:45 +00:00 committed by Alexandre Oliva
parent 24277d3405
commit 6751b6f658
2 changed files with 23 additions and 10 deletions

View File

@ -1,3 +1,11 @@
2009-09-04 Alexandre Oliva <aoliva@redhat.com>
* 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.
2009-09-04 Alexandre Oliva <aoliva@redhat.com>
* var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match

View File

@ -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. */