[PATCH] PR 60586

Iyer, Balaji V balaji.v.iyer@intel.com
Wed Sep 2 01:22:00 GMT 2015



> -----Original Message-----
> From: Iyer, Balaji V
> Sent: Tuesday, September 1, 2015 6:17 PM
> To: 'Jeff Law'; gcc-patches@gcc.gnu.org
> Cc: Zamyatin, Igor
> Subject: RE: [PATCH] PR 60586
> 
> 
> 
> > -----Original Message-----
> > From: Jeff Law [mailto:law@redhat.com]
> > Sent: Tuesday, September 1, 2015 3:26 PM
> > To: Iyer, Balaji V; gcc-patches@gcc.gnu.org
> > Cc: Zamyatin, Igor
> > Subject: Re: [PATCH] PR 60586
> >
> > On 08/31/2015 06:04 PM, Iyer, Balaji V wrote:
> > > Hello Everyone,
> > > 	This patch will fix the bug reported in Bugzilla, PR 60586. The
> > > issue
> > was that the spawned function's function arguments must not be pushed
> > into the nested/lambda function. This patch should fix that issue.
> > >
> > > I have tested this on x86_64 (linux and Cygwin flavors). Is this OK for
> trunk?
> > >
> > > Here are the Changelog entries:
> > >
> > > gcc/c-family/ChangeLog
> > > 2015-08-31  Balaji V. Iyer<balaji.v.iyer@intel.com>
> > >
> > >          PR middle-end/60586
> > >          * c-common.h: Added two more parameters to the
> > gimplify_cilk_spawn
> > >          function.
> > >          * c-gimplify.c (c_gimplify_expr): Likewise.
> > >          * cilk.c (gimplify_cilk_spawn): Likewise and called
> > >          gimplify_call_params_in_spawned_fn.
> > >          (gimplify_call_params_in_spawned_fn): New function.
> > >
> > > gcc/cp/ChangeLog
> > > 2015-08-31  Balaji V. Iyer<balaji.v.iyer@intel.com>
> > >
> > >          PR middle-end/60586
> > >          * cp-gimplify.c (cp_gimplify_expr): Added two additional
> > > parameters
> > to
> > >          gimplify_cilk_spawn.
> > >
> > > gcc/testsuite/ChangeLog
> > > 2015-08-31  Balaji V. Iyer<balaji.v.iyer@intel.com>
> > >
> > >          PR middle-end/60586
> > >          * c-c++-common/cilk-plus/CK/pr60586.c: New file.
> > >          * g++.dg/cilk-plus/CK/pr60586.cc: Likewise.
> > >
> > >
> > > Thanks,
> > >
> > > Balaji V. Iyer.
> > >
> > >
> > > diff.txt
> > >
> > >
> > > diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c index
> > > 1012a4f..1fe6685 100644
> > > --- a/gcc/c-family/cilk.c
> > > +++ b/gcc/c-family/cilk.c
> > > @@ -33,6 +33,7 @@ along with GCC; see the file COPYING3.  If not see
> > >   #include "gimplify.h"
> > >   #include "tree-iterator.h"
> > >   #include "tree-inline.h"
> > > +#include "cp/cp-tree.h"
> > Presumably you needed this for AGGR_INIT_EXPR.  I believe you need to
> > refactor the code a bit -- including a C++ front-end header file into
> > something in c-family seems wrong.
> >
> > While it may not break in this specific instance, but it is a modularity
> violation.
> >
> >
> >
> > >   #include "c-family/c-common.h"
> > >   #include "toplev.h"
> > >   #include "tm.h"
> > > @@ -762,12 +763,37 @@ create_cilk_wrapper (tree exp, tree *args_out)
> > >     return fndecl;
> > >   }
> > >
> > > +/* Gimplify all the parameters for the Spawned function.  *EXPR_P
> > > +can be
> > a
> > > +   CALL_EXPR, INIT_EXPR, MODIFY_EXPR or TARGET_EXPR.  *PRE_P and
> > *POST_P are
> > > +   gimple sequences from the caller of gimplify_cilk_spawn.  */
> > Comment doesn't match the code, code also checks for AGGR_INIT_EXPR.
> >
> > Given the dependency on AGGR_INIT_EXPR, it seems this checking
> somehow
> > needs to move into the front-ends.
> 
> Will you be OK if I make the function "gimplify_call_params_in_spawned_fn"
> part of the targetm structure?
> 

Sorry, I meant lang_hooks.


> Thanks,
> 
> Balaji V. Iyer.
> 
> >
> > I think once that's fixed this ought to be ready for the trunk.
> >
> > jeff



More information about the Gcc-patches mailing list