Patchwork [Cilkplus] Remove unwanted static chain.

login
register
mail settings
Submitter Iyer, Balaji V
Date Aug. 7, 2012, 8:21 p.m.
Message ID <BF230D13CA30DD48930C31D40993300016C4E996@FMSMSX102.amr.corp.intel.com>
Download mbox | patch
Permalink /patch/175796/
State New
Headers show

Comments

Iyer, Balaji V - Aug. 7, 2012, 8:21 p.m.
Sorry, I was in the wrong directory when I was creating the patch. Here is the fixed patch.

Thanks,

Balaji V. Iyer.

-----Original Message-----
From: Iyer, Balaji V 
Sent: Tuesday, August 07, 2012 4:18 PM
To: 'gcc-patches@gcc.gnu.org'
Subject: [PATCH][Cilkplus] Remove unwanted static chain.

Hello Everyone,
	This patch is for the Cilk Plus branch affecting mainly the C++ compiler. This patch will store the initial value of a loop correctly and remove the unnecessary static chain usage for some cases of Cilk_for.

Thanks,

Balaji V. Iyer.
Aldy Hernandez - Aug. 8, 2012, 6:23 p.m.
> Index: gcc/cp/parser.c
> ===================================================================
> --- gcc/cp/parser.c	(revision 190195)
> +++ gcc/cp/parser.c	(working copy)
> @@ -28351,6 +28351,13 @@
>    FOR_EXPR (statement) = decl;
>    CILK_FOR_GRAIN (statement) = grain; 
>  
> +  /*  If an initial value is available, and it is of type integer, then we
> +      save it in CILK_FOR_INIT.  */
> +  if (init && TREE_TYPE (init) && INTEGRAL_TYPE_P (TREE_TYPE (init))) 
> +    CILK_FOR_INIT (statement) = init;
> +  else
> +    CILK_FOR_INIT (statement) = NULL_TREE;
> +

Shouldn't you only set this for flag_cilkplus (?), or does it need to be
set for non Cilk instances of the compiler?
Iyer, Balaji V - Aug. 8, 2012, 6:27 p.m.
Hello Aldy,
	The only time we will get into this function (cp_parser_cilk_for) is when the fcilkplus is turned on.

Here is the original call for this function (line #9983) :

    if (!flag_enable_cilk)
        fatal_error ("-fcilkplus must be enabled to use %<cilk_for%>");
      else
        statement = cp_parser_cilk_for (parser, (tree) NULL_TREE, parser->in_statement);


Thanks,

Balaji V. Iyer.

-----Original Message-----
From: Aldy Hernandez [mailto:aldyh@redhat.com] 
Sent: Wednesday, August 08, 2012 2:23 PM
To: Iyer, Balaji V
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH][Cilkplus] Remove unwanted static chain.


> Index: gcc/cp/parser.c
> ===================================================================
> --- gcc/cp/parser.c	(revision 190195)
> +++ gcc/cp/parser.c	(working copy)
> @@ -28351,6 +28351,13 @@
>    FOR_EXPR (statement) = decl;
>    CILK_FOR_GRAIN (statement) = grain;
>  
> +  /*  If an initial value is available, and it is of type integer, then we
> +      save it in CILK_FOR_INIT.  */
> +  if (init && TREE_TYPE (init) && INTEGRAL_TYPE_P (TREE_TYPE (init))) 
> +    CILK_FOR_INIT (statement) = init;  else
> +    CILK_FOR_INIT (statement) = NULL_TREE;
> +

Shouldn't you only set this for flag_cilkplus (?), or does it need to be set for non Cilk instances of the compiler?
Aldy Hernandez - Aug. 8, 2012, 6:28 p.m.
On 08/08/12 13:27, Iyer, Balaji V wrote:
> Hello Aldy,
> 	The only time we will get into this function (cp_parser_cilk_for) is when the fcilkplus is turned on.
>
> Here is the original call for this function (line #9983) :
>
>      if (!flag_enable_cilk)
>          fatal_error ("-fcilkplus must be enabled to use %<cilk_for%>");
>        else
>          statement = cp_parser_cilk_for (parser, (tree) NULL_TREE, parser->in_statement);
>

Whoops, my bad.  I should catch up on the rest of your changes before 
commenting :).

Carry on...
Iyer, Balaji V - Aug. 8, 2012, 6:30 p.m.
Its ok. I am glad you are catching all these,  it makes me rethink and recheck.

Thanks,

Balaji V. Iyer.

-----Original Message-----
From: Aldy Hernandez [mailto:aldyh@redhat.com] 
Sent: Wednesday, August 08, 2012 2:29 PM
To: Iyer, Balaji V
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH][Cilkplus] Remove unwanted static chain.

On 08/08/12 13:27, Iyer, Balaji V wrote:
> Hello Aldy,
> 	The only time we will get into this function (cp_parser_cilk_for) is when the fcilkplus is turned on.
>
> Here is the original call for this function (line #9983) :
>
>      if (!flag_enable_cilk)
>          fatal_error ("-fcilkplus must be enabled to use %<cilk_for%>");
>        else
>          statement = cp_parser_cilk_for (parser, (tree) NULL_TREE, 
> parser->in_statement);
>

Whoops, my bad.  I should catch up on the rest of your changes before commenting :).

Carry on...

Patch

Index: gcc/cp/parser.c
===================================================================
--- gcc/cp/parser.c	(revision 190195)
+++ gcc/cp/parser.c	(working copy)
@@ -28351,6 +28351,13 @@ 
   FOR_EXPR (statement) = decl;
   CILK_FOR_GRAIN (statement) = grain; 
 
+  /*  If an initial value is available, and it is of type integer, then we
+      save it in CILK_FOR_INIT.  */
+  if (init && TREE_TYPE (init) && INTEGRAL_TYPE_P (TREE_TYPE (init))) 
+    CILK_FOR_INIT (statement) = init;
+  else
+    CILK_FOR_INIT (statement) = NULL_TREE;
+
   finish_cilk_for_init_stmt (statement);
 
   if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
Index: gcc/cp/ChangeLog.cilk
===================================================================
--- gcc/cp/ChangeLog.cilk	(revision 190195)
+++ gcc/cp/ChangeLog.cilk	(working copy)
@@ -1,3 +1,7 @@ 
+2012-08-07  Balaji V. Iyer  <balaji.v.iyer@intel.com>
+
+	* parser.c (cp_parser_cilk_for): Stored the initial value in cilk_for tree.
+
 2012-08-01  Balaji V. Iyer  <balaji.v.iyer@intel.com>
 
 	* parser.c (cp_parser_userdef_char_literal): Replaced CALL_SPAWN and