On Thu, 16 Oct 2014, Sebastian Pop wrote:

> Richard Biener wrote:
> > To give you an example how it looks like, the following code is
> > generated for
> > 
> > /* fold_negate_exprs convert - (~A) to A + 1.  */
> > (simplify
> >  (negate (bit_not @0))
> >  (if (INTEGRAL_TYPE_P (type))
> >   (plus @0 { build_int_cst (TREE_TYPE (@0), 1); } )))
> > 
> > tree
> > generic_simplify (enum tree_code code, tree type ATTRIBUTE_UNUSED, tree op0)
> 
> I wonder why ATTRIBUTE_UNUSED is generated for used parameters.

I've added them for the initial patch set because without any patterns
defined (just 1/n and 2/n) only one of the parameters will be used.

Consider them removed again once we have enough patterns to make
bootstrap happy after that.

> > {
> >   if ((op0 && TREE_SIDE_EFFECTS (op0)))
> >     return NULL_TREE;
> >   switch (code)
> >     {
> > ...
> >     case NEGATE_EXPR:
> >       {
> >         switch (TREE_CODE (op0))
> >           {
> >           case BIT_NOT_EXPR:
> >             {
> >               tree o20 = TREE_OPERAND (op0, 0);
> >                 {
> >                   /* #line 136 
> > "/space/rguenther/src/svn/match-and-simplify/gcc/match.pd" */
> >                   tree captures[2] ATTRIBUTE_UNUSED = {};
> 
> Same here.
> Also, why do we allocate two elements when only captures[0] is used?

Good question - I'll have a look.

Thanks,
Richard.

> >                   captures[0] = o20;
> >                   /* #line 135 
> > "/space/rguenther/src/svn/match-and-simplify/gcc/match.pd" */
> >                   if (INTEGRAL_TYPE_P (type))
> >                     {
> >                       if (dump_file && (dump_flags & TDF_DETAILS)) fprintf 
> > (dump_file, "Applying pattern match.pd:136, %s:%d\n", __FILE__, __LINE__);
> >                       tree res_op0;
> >                       res_op0 = captures[0];
> >                       tree res_op1;
> >                       res_op1 =  build_int_cst (TREE_TYPE (captures[0]), 1);
> >                       return fold_build2 (PLUS_EXPR, type, res_op0, 
> > res_op1);
> >                     }
> >                 }
> >               break;
> >             }
> > ...
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer

Reply via email to