re PR target/34916 (gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os)

PR rtl-optimization/34916
PR middle-end/35519
* combine.c (create_log_links): Do not create duplicate LOG_LINKS
between instruction pairs

From-SVN: r133920
This commit is contained in:
Andy Hutchinson 2008-04-04 23:45:46 +00:00 committed by Andy Hutchinson
parent 9eb3a0dd85
commit 3c2397cdca
2 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
PR rtl-optimization/34916
PR middle-end/35519
* combine.c (create_log_links): Do not create duplicate LOG_LINKS
between instruction pairs.
2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
* doc/invoke.texi: Document -mbitops for SH.

View File

@ -1,6 +1,6 @@
/* Optimize by combining instructions for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Free Software Foundation, Inc.
This file is part of GCC.
@ -976,8 +976,18 @@ create_log_links (void)
assignments later. */
if (regno >= FIRST_PSEUDO_REGISTER
|| asm_noperands (PATTERN (use_insn)) < 0)
LOG_LINKS (use_insn) =
alloc_INSN_LIST (insn, LOG_LINKS (use_insn));
{
/* Don't add duplicate links between instructions. */
rtx links;
for (links = LOG_LINKS (use_insn); links;
links = XEXP (links, 1))
if (insn == XEXP (links, 0))
break;
if (!links)
LOG_LINKS (use_insn) =
alloc_INSN_LIST (insn, LOG_LINKS (use_insn));
}
}
next_use[regno] = NULL_RTX;
}