------- 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

Reply via email to