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> 2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
* doc/invoke.texi: Document -mbitops for SH. * doc/invoke.texi: Document -mbitops for SH.

View File

@ -1,6 +1,6 @@
/* Optimize by combining instructions for GNU compiler. /* Optimize by combining instructions for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 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. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
@ -976,8 +976,18 @@ create_log_links (void)
assignments later. */ assignments later. */
if (regno >= FIRST_PSEUDO_REGISTER if (regno >= FIRST_PSEUDO_REGISTER
|| asm_noperands (PATTERN (use_insn)) < 0) || 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; next_use[regno] = NULL_RTX;
} }