re PR bootstrap/52397 (comparison failure with Ada enabled)

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.

From-SVN: r184652
This commit is contained in:
Jakub Jelinek 2012-02-29 09:12:04 +01:00 committed by Jakub Jelinek
parent 5cda350e60
commit bf743fc408
3 changed files with 14 additions and 5 deletions

View 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:

View 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))
{

View File

@ -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