]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
toplev.c (process_options): Move setter of flag_var_tracking before other tests that...
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 4 Sep 2009 18:55:45 +0000 (18:55 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 4 Sep 2009 18:55:45 +0000 (18:55 +0000)
* 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

gcc/ChangeLog
gcc/toplev.c

index ceafb4536ff81def7af30e352c00b1794fdf4868..e88346b8476b1b7baffb933d54e06820337dabbb 100644 (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
index 1d69bb965d3b41031fd79e759da1c6e6da8fb1d9..c18965a3c6e383c93ee8959dfbfccbbb51c31452 100644 (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.  */