]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
df-problems.c (df_note_bb_compute): Made computation of live info consistent with...
authorKenneth Zadeck <zadeck@naturalbridge.com>
Thu, 21 Jun 2007 16:24:59 +0000 (16:24 +0000)
committerKenneth Zadeck <zadeck@gcc.gnu.org>
Thu, 21 Jun 2007 16:24:59 +0000 (16:24 +0000)
2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>

        * df-problems.c (df_note_bb_compute): Made computation of live
info consistent with df_lr.

From-SVN: r125924

gcc/ChangeLog
gcc/df-problems.c

index 4e0d1ddb4e857f3448531607456180b8e50a0dca..781a421110cc27747c1503782f43c7db20c77cdf 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+        * df-problems.c (df_note_bb_compute): Made computation of live
+       info consistent with df_lr.
+
 2007-06-21  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/32453
index 101b46f58e32d14b9a559cc60e06403c11b30915..6097908e654e4a54b28dcbc1e10ddf845b3708e4 100644 (file)
@@ -46,6 +46,9 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "dce.h"
 #include "vecprim.h"
 
+/* Note that turning REG_DEAD_DEBUGGING on will cause
+   gcc.c-torture/unsorted/dump-noaddr.c to fail because it prints
+   addresses in the dumps.  */  
 #if 0
 #define REG_DEAD_DEBUGGING
 #endif
@@ -3960,8 +3963,8 @@ df_note_bb_compute (unsigned int bb_index,
              df_print_regset (dump_file, live);
            }
 #endif
-         /* We only care about real sets for calls.  Clobbers only
-            may clobbers cannot be depended on.  */
+         /* We only care about real sets for calls.  Clobbers cannot
+            be depended on to really die.  */
          mws_rec = DF_INSN_UID_MWS (uid);
          while (*mws_rec)
            {
@@ -3985,6 +3988,12 @@ df_note_bb_compute (unsigned int bb_index,
                  = df_create_unused_note (insn, old_unused_notes, 
                                           def, live, do_not_gen, 
                                           artificial_uses);
+
+             /* However a may or must clobber still needs to kill the
+                reg so that REG_DEAD notes are later placed
+                appropriately.  */ 
+             else 
+               bitmap_clear_bit (live, DF_REF_REGNO (def));
            }
        }
       else