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.
Index: parser.c
===================================================================
--- parser.c    (revision 190195)
+++ 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: ChangeLog.cilk
===================================================================
--- ChangeLog.cilk      (revision 190195)
+++ ChangeLog.cilk      (working copy)
@@ -1,3 +1,7 @@
+2012-08-07  Balaji V. Iyer  <balaji.v.i...@intel.com>
+
+       * parser.c (cp_parser_cilk_for): Stored the initial value in cilk_for 
tree.
+
 2012-08-01  Balaji V. Iyer  <balaji.v.i...@intel.com>
 
        * parser.c (cp_parser_userdef_char_literal): Replaced CALL_SPAWN and

Reply via email to