This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/67761] [6 Regression] Bootstrap failure on x86
- From: "ienkovich at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 29 Sep 2015 15:41:54 +0000
- Subject: [Bug bootstrap/67761] [6 Regression] Bootstrap failure on x86
- Auto-submitted: auto-generated
- References: <bug-67761-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67761
Ilya Enkovich <ienkovich at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2015-09-29
Assignee|unassigned at gcc dot gnu.org |ienkovich at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
The problem is in debug insns which are not ignored by introduced
transformation. It results in cost model affected by debug info and causes
these comparison failures. I'm testing this fix:
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 6f2380f..7b3ffb0 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2919,6 +2919,10 @@ scalar_chain::analyze_register_chain (bitmap candidates,
df_ref ref)
for (chain = DF_REF_CHAIN (ref); chain; chain = chain->next)
{
unsigned uid = DF_REF_INSN_UID (chain->ref);
+
+ if (!NONDEBUG_INSN_P (DF_REF_INSN (chain->ref)))
+ continue;
+
if (!DF_REF_REG_MEM_P (chain->ref))
{
if (bitmap_bit_p (insns, uid))
@@ -3279,7 +3283,7 @@ scalar_chain::convert_reg (unsigned regno)
bitmap_clear_bit (conv, DF_REF_INSN_UID (ref));
}
}
- else
+ else if (NONDEBUG_INSN_P (DF_REF_INSN (ref)))
{
replace_rtx (DF_REF_INSN (ref), reg, scopy);
df_insn_rescan (DF_REF_INSN (ref));