Your Jan 8th, 2001 rtlanal.c:note_stores change
David S. Miller
davem@redhat.com
Mon Apr 15 16:48:00 GMT 2002
From: Richard Henderson <rth@redhat.com>
Date: Mon, 15 Apr 2002 14:32:57 -0700
[ gcc-patches, please see:
http://gcc.gnu.org/ml/gcc-bugs/2002-04/msg00838.html
for the beginning of this thread leading up to change below. ]
On Mon, Apr 15, 2002 at 05:05:48PM -0400, Richard Kenner wrote:
> My recollection, though, is that it had to do with the modes: either
> something got confused about two things of different modes being
> assigned the same value or the fact that it was a non-const VOIDmode
> value bothered somebody.
I do recall a bug concerning something bitching about a CALL pattern
with a VOIDmode value. I seem to remember that being fixed by
special-casing calls. The exact reference eludes me for the moment.
The only thing to do here isrevert the patch and wait for whatever
the old problem was to resurface.
Done:
2002-04-15 David S. Miller <davem@redhat.com>
* rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
as being CLOBBERed.
--- rtlanal.c.~1~ Wed Apr 10 19:54:40 2002
+++ rtlanal.c Mon Apr 15 05:36:27 2002
@@ -1542,17 +1542,12 @@ note_stores (x, fun, data)
dest = XEXP (dest, 0);
/* If we have a PARALLEL, SET_DEST is a list of EXPR_LIST expressions,
- each of whose first operand is a register. We can't know what
- precisely is being set in these cases, so make up a CLOBBER to pass
- to the function. */
+ each of whose first operand is a register. */
if (GET_CODE (dest) == PARALLEL)
{
for (i = XVECLEN (dest, 0) - 1; i >= 0; i--)
if (XEXP (XVECEXP (dest, 0, i), 0) != 0)
- (*fun) (XEXP (XVECEXP (dest, 0, i), 0),
- gen_rtx_CLOBBER (VOIDmode,
- XEXP (XVECEXP (dest, 0, i), 0)),
- data);
+ (*fun) (XEXP (XVECEXP (dest, 0, i), 0), x, data);
}
else
(*fun) (dest, x, data);
More information about the Gcc-bugs
mailing list