[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