From: Alexandre Oliva Date: Fri, 4 Sep 2009 18:55:45 +0000 (+0000) Subject: toplev.c (process_options): Move setter of flag_var_tracking before other tests that... X-Git-Tag: releases/gcc-4.5.0~3674 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6751b6f658de1f96923b5f671cf8f1bcedf90c7d;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ceafb4536ff8..e88346b8476b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-09-04 Alexandre Oliva + + * 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 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match diff --git a/gcc/toplev.c b/gcc/toplev.c index 1d69bb965d3b..c18965a3c6e3 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. */