[tree-ssa] RFC: Never gimplify ASM_EXPRs
Jason Merrill
jason@redhat.com
Fri Jun 6 14:44:00 GMT 2003
On 05 Jun 2003 15:49:14 -0400, Diego Novillo <dnovillo@redhat.com> wrote:
> On Thu, 2003-06-05 at 11:52, Jason Merrill wrote:
>> ! __asm__ __volatile__ (" prefetch (%0)": : "r"((char *)(x)))
> Well, this doesn't fix the problem. We get the same number of
> regressions in libjava. The problem is that we break appart the
> ASM_EXPR operand into
>
> fubar (x)
> {
> char * x.1;
> char T.2;
>
> x.1 = (char *)x;
> T.2 = *x.1;
> __asm__ __volatile__(" prefetch %0"::"r" T.2);
> }
Er, that's Andrew's testcase, unmodified. Making the analogous change to
the testcase gives
fubar (x)
{
char * x.1;
x.1 = (char *)x;
__asm__ __volatile__(" prefetch (%0)"::"r" x.1);
}
which ought to work fine.
That said, I'll be checking in a compiler patch momentarily.
Jason
More information about the Gcc
mailing list