diff options
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/df-scan.c | 7 | ||||
-rw-r--r-- | gcc/df.h | 4 |
3 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2816c4a..dbc27a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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: diff --git a/gcc/df-scan.c b/gcc/df-scan.c index deaa9f9..39f444f 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -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)) { @@ -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 |