This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/23954] [4.1/4.2 regression] FAIL: gcc.c-torture/execute/20040709-1.c execution, -Os
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Dec 2005 18:01:00 -0000
- Subject: [Bug middle-end/23954] [4.1/4.2 regression] FAIL: gcc.c-torture/execute/20040709-1.c execution, -Os
- References: <bug-23954-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #12 from dave at hiauly1 dot hia dot nrc dot ca 2005-12-18 18:01 -------
Subject: Re: [4.1/4.2 regression] FAIL: gcc.c-torture/execute/20040709-1.c
execution, -Os
> Unable to reproduce with GCC 4.1 without further feedback. Apparently already
> fixed or made latent on GCC 4.2. The dumps in comment #1 could use some
> comment so that people reading this bug report don't have to analyze those for
> themselves.
I tried to reproduce it with gcc version 4.1.0 20051212 (prerelease)
and the incorrect code is no longer generated. The loop now looks like:
L$0318:
.CALL
bl myrnd,%r2
nop
ldo 8(%r7),%r19
stbs,ma %r28,1(%r6)
comb,<> %r19,%r6,L$0318
addil LR'sB-$global$,%r27
ldw -8(%r6),%r28
Compare with the code shown in the initial report. The "ldw" isn't in
the delay slot of the "comb", so it doesn't get executed in the loop
every iteration. The loop is tricky in that it exits with r6 aligned
to a four byte boundary.
I don't know if the bug has been fixed or is just latent.
I would ignore the dumps in comment #1. This is probably a reorg
issue.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23954