This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/34916] [4.3/4.4 Regression] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os
- From: "hutchinsonandy at aim dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Mar 2008 23:40:16 -0000
- Subject: [Bug target/34916] [4.3/4.4 Regression] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os
- References: <bug-34916-15663@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from hutchinsonandy at aim dot com 2008-03-15 23:40 -------
This appear to be same bug where combine is erroneously assuming all DF
register references are to different instructions. So it tries combining
instructions with themselves and stuff gets lost.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35519
The above testcase still fails with gcc version 4.4.0 20080305.
However, with patch from PR35519 it produces correct code:
23 /* prologue: function */
24 /* frame size = 0 */
25 .LM2:
26 0000 2BE0 ldi r18,lo8(11)
27 0002 30E0 ldi r19,hi8(11)
28 0004 40E0 ldi r20,hlo8(11)
29 0006 50E0 ldi r21,hhi8(11)
30 0008 0E94 0000 call __mulsi3
31 .LVL1:
32 /* epilogue start */
33 .LM3:
34 000c 0895 ret
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34916