Re: Patch ping Re: [PATCH] i386: Fix up ix86_gimplify_va_arg [PR105331]

2022-04-28 Thread Jeff Law via Gcc-patches




On 4/28/2022 4:31 AM, Richard Biener wrote:

On Thu, 28 Apr 2022, Jakub Jelinek wrote:


On Thu, Apr 28, 2022 at 10:39:39AM +0200, Uros Bizjak wrote:

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

2022-04-22  Jakub Jelinek  

   PR target/105331
   * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
   temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
   of it.

   * gcc.dg/pr105331.c: New test.

Sorry, I have no idea if this patch is correct or not.

Richard or Jeff, could you please review it instead?

OK.

Agreed.  In fact I'd fixed something very similar in our port a while ago.

Jeff


Re: Patch ping Re: [PATCH] i386: Fix up ix86_gimplify_va_arg [PR105331]

2022-04-28 Thread Richard Biener via Gcc-patches
On Thu, 28 Apr 2022, Jakub Jelinek wrote:

> On Thu, Apr 28, 2022 at 10:39:39AM +0200, Uros Bizjak wrote:
> > > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> > > >
> > > > 2022-04-22  Jakub Jelinek  
> > > >
> > > >   PR target/105331
> > > >   * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
> > > >   temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
> > > >   of it.
> > > >
> > > >   * gcc.dg/pr105331.c: New test.
> > 
> > Sorry, I have no idea if this patch is correct or not.
> 
> Richard or Jeff, could you please review it instead?

OK.

Thanks,
Richard.


Re: Patch ping Re: [PATCH] i386: Fix up ix86_gimplify_va_arg [PR105331]

2022-04-28 Thread Jakub Jelinek via Gcc-patches
On Thu, Apr 28, 2022 at 10:39:39AM +0200, Uros Bizjak wrote:
> > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> > >
> > > 2022-04-22  Jakub Jelinek  
> > >
> > >   PR target/105331
> > >   * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
> > >   temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
> > >   of it.
> > >
> > >   * gcc.dg/pr105331.c: New test.
> 
> Sorry, I have no idea if this patch is correct or not.

Richard or Jeff, could you please review it instead?

Thanks.

Jakub



Re: Patch ping Re: [PATCH] i386: Fix up ix86_gimplify_va_arg [PR105331]

2022-04-28 Thread Uros Bizjak via Gcc-patches
On Thu, Apr 28, 2022 at 10:31 AM Jakub Jelinek  wrote:
>
> Hi!
>
> I'd like to ping this patch.  I know it isn't a full week yet, but we are
> almost out of P1s and GCC 12 branching is any time now.
>
> Thanks:
> On Fri, Apr 22, 2022 at 09:25:04AM +0200, Jakub Jelinek via Gcc-patches wrote:
> > On the following testcase we emit a bogus
> > 'va_arg_tmp.5' may be used uninitialized
> > warning.  The reason is that when gimplifying the addr = 
> > statement, the va_arg_tmp temporary var for which we emit ADDR_EXPR
> > is not TREE_ADDRESSABLE, prepare_gimple_addressable emits some extra
> > code to initialize the newly addressable var from its previous value,
> > but it is a new variable which hasn't been initialized yet and will
> > be later, so we end up initializing it with uninitialized SSA_NAME:
> >   va_arg_tmp.6 = va_arg_tmp.5_14(D);
> >   addr.2_16 = _arg_tmp.6;
> >   _17 = MEM[(double *)sse_addr.4_13];
> >   MEM[(double * {ref-all})addr.2_16] = _17;
> > and with -O1 we actually don't DSE it before the warning is emitted.
> > If we make the temp TREE_ADDRESSABLE before the gimplification, then
> > this prepare_gimple_addressable path isn't taken and we effectively
> > omit the first statement above and so the bogus warning is gone.
> >
> > I went through other backends and didn't find another instance of this
> > problem.
> >
> > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> >
> > 2022-04-22  Jakub Jelinek  
> >
> >   PR target/105331
> >   * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
> >   temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
> >   of it.
> >
> >   * gcc.dg/pr105331.c: New test.

Sorry, I have no idea if this patch is correct or not.

Uros.