> -----Original Message-----
> From: Jeff Law [mailto:l...@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.i...@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.i...@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.i...@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?

Thanks,

Balaji V. Iyer.

> 
> I think once that's fixed this ought to be ready for the trunk.
> 
> jeff

Reply via email to