Hello Joseph, Did you get a chance to look at this patch? Thanks,
Balaji V. Iyer. > -----Original Message----- > From: Iyer, Balaji V > Sent: Friday, March 29, 2013 5:58 PM > To: 'Joseph Myers'; 'Aldy Hernandez' > Cc: 'gcc-patches' > Subject: RE: [patch] cilkplus: Array notation for C patch > > Hello Joseph, Aldy et al., > I reworded couple comments (e.g changed builtin with built-in, etc) and > added a header comment to the c-array-notation.c that explains the overall > process. I am attaching a fixed patch. > > Thanks, > > Balaji V. Iyer. > > Here are the Changelog entries again: > > gcc/ChangeLog > +2013-03-28 Balaji V. Iyer <balaji.v.i...@intel.com> > + > + * doc/extend.texi (C Extensions): Added documentation about Cilk Plus > + array notation built-in reduction functions. > + * doc/passes.texi (Passes): Added documentation about changes done > + for Cilk Plus. > + * doc/invoke.texi (C Dialect Options): Added documentation about > + the -fcilkplus flag. > + * doc/generic.texi (Storage References): Added documentation for > + ARRAY_NOTATION_REF storage. > + * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation- > common.o. > + * tree-pretty-print.c (dump_generic_node): Add case for > + ARRAY_NOTATION_REF. > + (BUILTINS_DEF): Depend on cilkplus.def. > + * builtins.def: Include cilkplus.def. > + Define DEF_CILKPLUS_BUILTIN. > + * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR. > + * cilkplus.def: New file. > > gcc/c-family/ChangeLog > +2013-03-28 Balaji V. Iyer <balaji.v.i...@intel.com> > + > + * c-common.c (c_define_builtins): When cilkplus is enabled, the > + function array_notation_init_builtins is called. > + (c_common_init_ts): Added ARRAY_NOTATION_REF as typed. > + * c-common.def (ARRAY_NOTATION_REF): New tree. > + * c-common.h (build_array_notation_expr): New function declaration. > + (build_array_notation_ref): Likewise. > + (extract_sec_implicit_index_arg): New extern declaration. > + (is_sec_implicit_index_fn): Likewise. > + (ARRAY_NOTATION_CHECK): New define. > + (ARRAY_NOTATION_ARRAY): Likewise. > + (ARRAY_NOTATION_START): Likewise. > + (ARRAY_NOTATION_LENGTH): Likewise. > + (ARRAY_NOTATION_STRIDE): Likewise. > + (ARRAY_NOTATION_TYPE): Likewise. > + * c-pretty-print.c (pp_c_postifix_expression): Added a new case for > + ARRAY_NOTATION_REF. > + (pp_c_expression): Likewise. > + * c.opt (flag_enable_cilkplus): New flag. > + * array-notation-common.c: New file. > > gcc/c/ChangeLog > +2013-03-28 Balaji V. Iyer <balaji.v.i...@intel.com> > + > + * c-typeck.c (build_array_ref): Added a check to see if array's > + index is greater than one. If true, then emit an error. > + (build_function_call_vec): Exclude error reporting and checking > + for builtin array-notation functions. > + (convert_arguments): Likewise. > + (c_finish_return): Added a check for array notations as a return > + expression. If true, then emit an error. > + (c_finish_loop): Added a check for array notations in a loop > + condition. If true then emit an error. > + (lvalue_p): Added a ARRAY_NOTATION_REF case. > + (build_binary_op): Added a check for array notation expr inside > + op1 and op0. If present, we call another function to find correct > + type. > + * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o. > + * c-parser.c (c_parser_compound_statement): Check if array > + notation code is used in tree, if so, then transform them into > + appropriate C code. > + (c_parser_expr_no_commas): Check if array notation is used in LHS > + or RHS, if so, then build array notation expression instead of > + regular modify. > + (c_parser_postfix_expression_after_primary): Added a check for > + colon(s) after square braces, if so then handle it like an array > + notation. Also, break up array notations in unary op if found. > + (c_parser_direct_declarator_inner): Added a check for array > + notation. > + (c_parser_compound_statement): Added a check for array notation in > + a stmt. If one is present, then expand array notation expr. > + (c_parser_if_statement): Likewise. > + (c_parser_switch_statement): Added a check for array notations in > + a switch statement's condition. If true, then output an error. > + (c_parser_while_statement): Similarly, but for a while. > + (c_parser_do_statement): Similarly, but for a do-while. > + (c_parser_for_statement): Similarly, but for a for-loop. > + (c_parser_unary_expression): Check if array notation is used in a > + pre-increment or pre-decrement expression. If true, then expand > + them. > + (c_parser_array_notation): New function. > + * c-array-notation.c: New file. > + * c-tree.h (is_cilkplus_reduce_builtin): Protoize. > > > -----Original Message----- > > From: Iyer, Balaji V > > Sent: Thursday, March 28, 2013 1:07 PM > > To: Joseph Myers; Aldy Hernandez > > Cc: gcc-patches > > Subject: [patch] cilkplus: Array notation for C patch > > > > Hello Joseph, Aldy et al., > > Attached, please find a fixed patch (bzipped) that implements array > > notation for C. To my best knowledge, I have fixed all the changes > > Joseph and Aldy have mentioned in the previous email threads > > (http://gcc.gnu.org/ml/gcc- patches/2013-03/msg01182.html, > > http://gcc.gnu.org/ml/gcc-patches/2013- > > 03/msg01173.html, http://gcc.gnu.org/ml/gcc-patches/2013- > > 03/msg00748.html, etc). Is it OK for trunk? > > > > Thanks, > > > > Balaji V. Iyer. > > > > Here are the Changelog entries: > > > > gcc/ChangeLog > > +2013-03-28 Balaji V. Iyer <balaji.v.i...@intel.com> > > + > > + * doc/extend.texi (C Extensions): Added documentation about Cilk > > Plus > > + array notation built-in reduction functions. > > + * doc/passes.texi (Passes): Added documentation about changes done > > + for Cilk Plus. > > + * doc/invoke.texi (C Dialect Options): Added documentation about > > + the -fcilkplus flag. > > + * doc/generic.texi (Storage References): Added documentation for > > + ARRAY_NOTATION_REF storage. > > + * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation- > > common.o. > > + * tree-pretty-print.c (dump_generic_node): Add case for > > + ARRAY_NOTATION_REF. > > + (BUILTINS_DEF): Depend on cilkplus.def. > > + * builtins.def: Include cilkplus.def. > > + Define DEF_CILKPLUS_BUILTIN. > > + * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR. > > + * cilkplus.def: New file. > > > > gcc/c-family/ChangeLog > > +2013-03-28 Balaji V. Iyer <balaji.v.i...@intel.com> > > + > > + * c-common.c (c_define_builtins): When cilkplus is enabled, the > > + function array_notation_init_builtins is called. > > + (c_common_init_ts): Added ARRAY_NOTATION_REF as typed. > > + * c-common.def (ARRAY_NOTATION_REF): New tree. > > + * c-common.h (build_array_notation_expr): New function declaration. > > + (build_array_notation_ref): Likewise. > > + (extract_sec_implicit_index_arg): New extern declaration. > > + (is_sec_implicit_index_fn): Likewise. > > + (ARRAY_NOTATION_CHECK): New define. > > + (ARRAY_NOTATION_ARRAY): Likewise. > > + (ARRAY_NOTATION_START): Likewise. > > + (ARRAY_NOTATION_LENGTH): Likewise. > > + (ARRAY_NOTATION_STRIDE): Likewise. > > + (ARRAY_NOTATION_TYPE): Likewise. > > + * c-pretty-print.c (pp_c_postifix_expression): Added a new case for > > + ARRAY_NOTATION_REF. > > + (pp_c_expression): Likewise. > > + * c.opt (flag_enable_cilkplus): New flag. > > + * array-notation-common.c: New file. > > > > gcc/c/ChangeLog > > +2013-03-28 Balaji V. Iyer <balaji.v.i...@intel.com> > > + > > + * c-typeck.c (build_array_ref): Added a check to see if array's > > + index is greater than one. If true, then emit an error. > > + (build_function_call_vec): Exclude error reporting and checking > > + for builtin array-notation functions. > > + (convert_arguments): Likewise. > > + (c_finish_return): Added a check for array notations as a return > > + expression. If true, then emit an error. > > + (c_finish_loop): Added a check for array notations in a loop > > + condition. If true then emit an error. > > + (lvalue_p): Added a ARRAY_NOTATION_REF case. > > + (build_binary_op): Added a check for array notation expr inside > > + op1 and op0. If present, we call another function to find correct > > + type. > > + * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o. > > + * c-parser.c (c_parser_compound_statement): Check if array > > + notation code is used in tree, if so, then transform them into > > + appropriate C code. > > + (c_parser_expr_no_commas): Check if array notation is used in LHS > > + or RHS, if so, then build array notation expression instead of > > + regular modify. > > + (c_parser_postfix_expression_after_primary): Added a check for > > + colon(s) after square braces, if so then handle it like an array > > + notation. Also, break up array notations in unary op if found. > > + (c_parser_direct_declarator_inner): Added a check for array > > + notation. > > + (c_parser_compound_statement): Added a check for array notation in > > + a stmt. If one is present, then expand array notation expr. > > + (c_parser_if_statement): Likewise. > > + (c_parser_switch_statement): Added a check for array notations in > > + a switch statement's condition. If true, then output an error. > > + (c_parser_while_statement): Similarly, but for a while. > > + (c_parser_do_statement): Similarly, but for a do-while. > > + (c_parser_for_statement): Similarly, but for a for-loop. > > + (c_parser_unary_expression): Check if array notation is used in a > > + pre-increment or pre-decrement expression. If true, then expand > > + them. > > + (c_parser_array_notation): New function. > > + * c-array-notation.c: New file. > > + * c-tree.h (is_cilkplus_reduce_builtin): Protoize. > > > > > > > -----Original Message----- > > > From: Joseph Myers [mailto:jos...@codesourcery.com] > > > Sent: Wednesday, March 27, 2013 6:11 PM > > > To: Aldy Hernandez > > > Cc: gcc-patches; Iyer, Balaji V > > > Subject: Re: [cilkplus-merge] rewrite __sec_reduce* builtin handling > > > to use <.def> infrastructure > > > > > > On Wed, 27 Mar 2013, Aldy Hernandez wrote: > > > > > > > Is this OK for the branch? I'd like to get a nod of approval > > > > before committing to the branch, as to aid in review, but if you > > > > prefer that I just commit at will, and then post a big "cilk plus array > notation" > > > > patch to the list, I can do this instead. It just seems easier to > > > > fix stuff incrementally, as suggestions and fixes are piling up > > > > for both Balaji and > > > myself. > > > > > > I'm expecting the two of you to deal with reviews for the branch and > > > then repost a big patch against trunk once you think all the > > > comments have > > been addressed. > > > But this looks like the sort of thing I was expecting for cleaning > > > up the built-in function handling. > > > > > > -- > > > Joseph S. Myers > > > jos...@codesourcery.com