OSDN Git Service

PR bootstrap/52397
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Feb 2012 08:12:04 +0000 (08:12 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Feb 2012 08:12:04 +0000 (08:12 +0000)
* df.h (struct df_d): Adjust comment that hard_regs_live_count
doesn't count DEBUG_INSN refs.
* df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
for DEBUG_INSN refs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184652 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/df-scan.c
gcc/df.h

index 2816c4a..dbc27a2 100644 (file)
@@ -1,3 +1,11 @@
+2012-02-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/52397
+       * df.h (struct df_d): Adjust comment that hard_regs_live_count
+       doesn't count DEBUG_INSN refs.
+       * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
+       for DEBUG_INSN refs.
+
 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
 
        Partially revert:
index deaa9f9..39f444f 100644 (file)
@@ -1,6 +1,6 @@
 /* Scanning of rtl for dataflow analysis.
    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-   2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+   2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
    Originally contributed by Michael P. Hayes
              (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com)
    Major rewrite contributed by Danny Berlin (dberlin@dberlin.org)
@@ -2794,8 +2794,9 @@ df_ref_create_structure (enum df_ref_class cl,
   DF_REF_FLAGS_CLEAR (this_ref, DF_HARD_REG_LIVE);
 
   /* See if this ref needs to have DF_HARD_REG_LIVE bit set.  */
-  if ((regno < FIRST_PSEUDO_REGISTER)
-      && (!DF_REF_IS_ARTIFICIAL (this_ref)))
+  if (regno < FIRST_PSEUDO_REGISTER
+      && !DF_REF_IS_ARTIFICIAL (this_ref)
+      && !DEBUG_INSN_P (DF_REF_INSN (this_ref)))
     {
       if (DF_REF_REG_DEF_P (this_ref))
        {
index f59b525..aec9788 100644 (file)
--- a/gcc/df.h
+++ b/gcc/df.h
@@ -1,7 +1,7 @@
 /* Form lists of pseudo register references for autoinc optimization
    for GNU compiler.  This is part of flow optimization.
    Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008,
-   2009, 2010  Free Software Foundation, Inc.
+   2009, 2010, 2011, 2012  Free Software Foundation, Inc.
    Originally contributed by Michael P. Hayes
              (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com)
    Major rewrite contributed by Danny Berlin (dberlin@dberlin.org)
@@ -574,7 +574,7 @@ struct df_d
      uses and defs as well as refs in eq notes are ignored.  If the
      ref is a def, it cannot be a MAY_CLOBBER def.  If the ref is a
      use, it cannot be the emim_reg_set or be the frame or arg pointer
-     register.
+     register.  Uses in debug insns are ignored.
 
      IT IS NOT ACCEPTABLE TO MANUALLY CHANGE THIS ARRAY.  This array
      always reflects the actual number of refs in the insn stream that