summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/c-c++-common/cilk-plus
Commit message (Collapse)AuthorAgeFilesLines
* PR other/62008kyukhin2014-08-221-0/+10
| | | | | | | | | | | | | | | | gcc/c/ * c-parser.c (c_parser_array_notation): Check for correct type of an array added. gcc/cp/ * cp-array-notation.c (build_array_notation_ref): Added correct handling of case with incorrect array. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr62008.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@214306 138bc75d-0d04-0410-961f-82ee72b054a4
* PR other/61962kyukhin2014-08-121-0/+14
| | | | | | | | | | | | | | gcc/c-family/ * array-notation-common.c (find_rank): Added handling for other types of references. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr61962.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@213859 138bc75d-0d04-0410-961f-82ee72b054a4
* PR other/61963kyukhin2014-08-011-0/+9
| | | | | | | | | | | | gcc/cp/ * parser.c (cp_parser_array_notation): Added check for array_type. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr61963.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@213493 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/61455kyukhin2014-08-012-0/+22
| | | | | | | | | | | | | | | | | | | | | | gcc/c-family/ * array-notation-common.c (extract_array_notation_exprs): Handling of DECL_EXPR added. gcc/c/ * c-array-notation.c (expand_array_notations): Handling of DECL_EXPR added. gcc/cp/ * cp-array-notation.c (expand_array_notation_exprs): Handling of DECL_EXPR improved. Changed handling for INIT_EXPR. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr61455.c: New test. * c-c++-common/cilk-plus/AN/pr61455-2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@213492 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/57541kyukhin2014-06-302-2/+26
| | | | | | | | | | | | | | | | | | | | | | gcc/c/ * c-array-notation.c (fix_builtin_array_notation_fn): Check for 0 arguments in builtin call. Check that bultin argument is correct. * c-parser.c (c_parser_array_notation): Check for incorrect initial index. gcc/cp/ * cp-array-notation.c (expand_sec_reduce_builtin): Check that bultin argument is correct. * call.c (build_cxx_call): Check for 0 arguments in builtin call. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr57541.c: New case added. * c-c++-common/cilk-plus/AN/pr57541-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@212139 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/c/kyukhin2014-06-041-0/+8
| | | | | | | | | | | | | | | | | | | | PR c/58942 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case with a pointer. gcc/cp/ PR c/58942 * c-c++-common/cilk-plus/AN/pr58942.c: Check for correct handling of the case with a pointer. gcc/testsuite/ PR c/58942 * c-c++-common/cilk-plus/AN/pr58942.c: Check for correct handling of the case with a pointer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@211221 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-c++-common/cilk-plus/AN/pr61191.c: Fix dg-error directives.uros2014-05-261-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210949 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/c/kyukhin2014-05-261-0/+10
| | | | | | | | | | | | | | | PR c/61191 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid function parameters. gcc/testsuite/ PR c/61191 * c-c++-common/cilk-plus/AN/pr61191.c: Check for correct handling of the case with syntax error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210929 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/cpkyukhin2014-05-211-0/+9
| | | | | | | | | | | | | | | | | PR c/60189 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync from here to... (cp_parser_statement): ...here. Make sure only semicolon can go after Cilk_sync. gcc/testsuite PR c++/60189 * c-c++-common/cilk-plus/CK/invalid_sync.cc: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210680 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/c-family/kyukhin2014-04-151-0/+1
| | | | | | | | | | | | | | | PR middle-end/60467 * c-c++-common/cilk-plus/CK/invalid_spawns.c: Add new invalid case to check. gcc/testsuite/ PR middle-end/60467 * c-c++-common/cilk-plus/CK/invalid_spawns.c: Add new invalid case to check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@209401 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/c/kyukhin2014-04-151-0/+15
| | | | | | | | | | | | | | | | | | PR middle-end/60469 * c-array-notation.c (fix_builtin_array_notation_fn): Use create_tmp_var instead build_decl for creating temps. (build_array_notation_expr): Likewise. (fix_conditional_array_notations_1): Likewise. (fix_array_notation_expr): Likewise. (fix_array_notation_call_expr): Likewise. gcc/testsuite/ PR middle-end/60469 * c-c++-common/cilk-plus/CK/pr60469.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@209400 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c/60197mpolacek2014-03-062-0/+101
| | | | | | | | | | | | | | | | | | | | | c-family/ * cilk.c (contains_cilk_spawn_stmt): New function. (contains_cilk_spawn_stmt_walker): Likewise. (recognize_spawn): Give error on invalid use of _Cilk_spawn. * c-common.h (contains_cilk_spawn_stmt): Add declaration. c/ * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead of checking tree code. cp/ * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead of checking tree code. testsuite/ * c-c++-common/cilk-plus/CK/pr60197.c: New test. * c-c++-common/cilk-plus/CK/pr60197-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208382 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.jakub2014-03-032-0/+26
| | | | | | | | | | | (init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD even when flag_preprocess_only. * c-c++-common/cilk-plus/PS/vectorlength-2.c: New test. * c-c++-common/cilk-plus/PS/vectorlength-3.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208268 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/60082jakub2014-02-071-1/+0
| | | | | | | | | | | | | | * tree.c (build_common_builtin_nodes): Set ECF_LEAF for __builtin_setjmp_receiver. Revert 2014-02-05 Balaji V. Iyer <balaji.v.iyer@intel.com> * g++.dg/cilk-plus/CK/catch_exc.cc: Disable test for -O1. * c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207597 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-02-05 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2014-02-051-0/+1
| | | | | | | | | * g++.dg/cilk-plus/CK/catch_exc.cc: Disable test for -O1. * c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207519 138bc75d-0d04-0410-961f-82ee72b054a4
* Added support for Cilk Plus SIMD-enabled functions for C++.bviyer2014-01-232-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/c/c-parser.c 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function" attribute an attribute without value. gcc/cp/ChangeLog 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled see if there is an attribute after function decl. If so, then parse them now. (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD enabled function late parsing. (cp_parser_gnu_attribute_list): Parse all the tokens for the vector attribute for a SIMD-enabled function. (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when the function is used by SIMD-enabled function (indicated by NULL pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK, PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH (cp_parser_cilk_simd_vectorlength): Modified this function to handle vectorlength clause in SIMD-enabled function and #pragma SIMD's vectorlength clause. Added a new bool parameter to differentiate between the two. (cp_parser_cilk_simd_fn_vector_attrs): New function. (is_cilkplus_vector_p): Likewise. (cp_parser_late_parsing_elem_fn_info): Likewise. (cp_parser_omp_clause_name): Added a check for "mask", "nomask" and "vectorlength" clauses when Cilk Plus is enabled. (cp_parser_omp_clause_linear): Added a new parameter of type bool and emit a sorry message when step size is a parameter. * parser.h (cp_parser::cilk_simd_fn_info): New field. * decl.c (grokfndecl): Added flag_enable_cilkplus along with flag_openmp. * pt.c (apply_late_template_attributes): Likewise. testsuite/ChangeLog 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> * g++.dg/cilk-plus/cilk-plus.exp: Called the C/C++ common tests for SIMD enabled function. * g++.dg/cilk-plus/ef_test.C: New test. * c-c++-common/cilk-plus/ef_error3.c: Made certain messages C specific and added C++ ones. * c-c++-common/cilk-plus/vlength_errors.c: Added new dg-error tags to differenciate C error messages from C++ ones. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206975 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix for PR c++/59631.bviyer2014-01-097-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +++ gcc/cp/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * parser.c (cp_parser_postfix_expression): Added a new if-statement + and replaced an existing if-statement with else-if statement. + Changed an existing error message wording to match the one from the C + parser. + +++ gcc/testsuite/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * gcc.dg/cilk-plus/cilk-plus.exp: Removed "-fcilkplus" from flags list. + * g++.dg/cilk-plus/cilk-plus.exp: Likewise. + * c-c++-common/cilk-plus/CK/spawnee_inline.c: Replaced second dg-option + with dg-additional-options. + * c-c++-common/cilk-plus/CK/varargs_test.c: Likewise. + * c-c++-common/cilk-plus/CK/steal_check.c: Likewise. + * c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise. + * c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise. + * c-c++-common/cilk-plus/CK/invalid_spawns.c: Added a dg-options tag. + * c-c++-common/cilk-plus/CK/pr59631.c: New testcase. + gcc/c/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * c-parser.c (c_parser_postfix_expression): Replaced consecutive if + statements with if-elseif statements. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206463 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>ktkachov2013-12-191-2/+1
| | | | | | | * c-c++-common/cilk-plus/SE/ef_error.c: Use -fopen-simd. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206127 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>ktkachov2013-12-191-0/+1
| | | | | | | | * c-c++-common/cilk-plus/SE/ef_error.c: Add fopenmp effective target check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206109 138bc75d-0d04-0410-961f-82ee72b054a4
* Added support for Cilk Plus SIMD-enabled function for C.bviyer2013-12-186-0/+209
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +++ gcc/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * omp-low.c (simd_clone_clauses_extract): Replaced the string + "cilk simd elemental" with "cilk simd function." + * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): + Removed a carriage-return from a warning string. + +++ gcc/c-family/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-common.c (c_common_attribute_table): Added "cilk simd function" + attribute. + * c-pragma.h (enum pragma_cilk_clause): Remove. + (enum pragma_omp_clause): Added the following fields: + PRAGMA_CILK_CLAUSE_NOMASK, PRAGMA_CILK_CLAUSE_MASK, + PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_NONE, + PRAGMA_CILK_CLAUSE_LINEAR, PRAGMA_CILK_CLAUSE_PRIVATE, + PRAGMA_CILK_CLAUSE_FIRSTPRIVATE, PRAGMA_CILK_CLAUSE_LASTPRIVATE, + PRAGMA_CILK_CLAUSE_UNIFORM. + + +++ gcc/c/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field. + (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens + field in parser is not empty. If not-empty, call the function + c_parser_finish_omp_declare_simd. + (c_parser_cilk_clause_vectorlength): Modified function to be shared + between SIMD-enabled functions and #pragma simd. Added new parameter. + (c_parser_cilk_all_clauses): Modified the usage of the function + c_parser_cilk_clause_vectorlength as mentioned above. + (c_parser_cilk_simd_fn_vector_attrs): New function. + (c_finish_cilk_simd_fn_tokens): Likewise. + (is_cilkplus_vector_p): Likewise. + (c_parser_omp_clause_name): Added checking for "vectorlength," + "nomask," and "mask" strings in clause name. + (c_parser_omp_all_clauses): Added 3 new case statements: + PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and + PRAGMA_CILK_CLAUSE_NOMASK. + (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a + check for vector attribute and if so call the function + c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled, + called the function c_finish_cilk_simd_fn_tokens. + (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in + parser field is non-empty. If so, parse them as you would parse + the omp declare simd pragma. + (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn. + Added a check when step is a parameter and flag it as error. + (CILK_SIMD_FN_CLAUSE_MASK): New #define. + (c_parser_cilk_clause_name): Changed pragma_cilk_clause to + pragma_omp_clause. + +++ gcc/testsuite/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-c++-common/cilk-plus/SE/ef_test.c: New test. + * c-c++-common/cilk-plus/SE/ef_test2.c: Likewise. + * c-c++-common/cilk-plus/SE/vlength_errors.c: Likewise. + * c-c++-common/cilk-plus/SE/ef_error.c: Likewise. + * c-c++-common/cilk-plus/SE/ef_error2.c: Likewise. + * c-c++-common/cilk-plus/SE/ef_error3.c: Likewise. + * gcc.dg/cilk-plus/cilk-plus.exp: Added calls for the above tests. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206095 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-c++-common/cilk-plus/PS/reduction-3.c: Use stdlib.h.law2013-11-181-3/+1
| | | | | | Remove spurious FIXME. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204977 138bc75d-0d04-0410-961f-82ee72b054a4
* [gcc/testsuite]ktkachov2013-11-181-0/+1
| | | | | | | * c-c++-common/cilk-plus/PS/body.c: Add fopenmp effective target check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204968 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o.aldyh2013-11-1513-0/+504
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gimple-pretty-print.c (dump_omp_for): Add case for GF_OMP_FOR_KIND_CILKSIMD. * gimple.h (enum gf_mask): Restructure entries to add GF_OMP_FOR_KIND_CILKSIMD. * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD. (gimplify_omp_for): Handle CILK_SIMD. (gimplify_expr): Add ccase for CILK_SIMD. * omp-low.c (extract_omp_for_data): Handle CILK_SIMD. (build_outer_var_ref): Same. (check_omp_nesting_restrictions): Same. (lower_rec_input_clauses): Same. (lower_lastprivate_clauses): Same. (expand_omp_for): Same. (execute_expand_omp): Check flag_enable_cilkplus. (execute_lower_omp): Same. (diagnose_sb_0): Handle CILK_SIMD. (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus. (setjmp_or_longjmp_p): New. (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct. * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD. * tree.def: Add tree code for CILK_SIMD. testsuite/ * c-c++-common/cilk-plus/PS: New directory. * g++.dg/cilk-plus/cilk-plus.exp: Run shared tests. * g++.dg/dg.exp: Run Cilk Plus tests. * gcc.dg/cilk-plus/cilk-plus.exp: Run shared tests. c-family/ * c-cilkplus.c: New file. * c-common.c (readonly_error): Add location argument. * c-common.h (readonly_error): Same. (c_finish_cilk_clauses): Protoize. (c_check_cilk_loop): Same. c-omp.c (c_finish_omp_for): Handle CILK_SIMD nodes. Do not fail on error_mark_node. Abstract increment canonicalization to here... (c_omp_for_incr_canonicalize_ptr): New. c-pragma.c (init_pragma): Register "simd" pragma. c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_SIMD. (enum pragma_cilk_clause): New. c/ * c-parser.c (c_parser_cilk_simd): New. (c_parser_cilk_verify_simd): New. (c_parser_pragma): Add case for PRAGMA_CILK_SIMD. (c_parser_omp_for_loop): Add case for NE_EXPR. Set c_break_label for CILK_SIMD. (c_parser_cilk_clause_vectorlength): New. (c_parser_cilk_clause_linear): New. (c_parser_cilk_clause_name): New. (c_parser_cilk_all_clauses): New. * c-typeck.c (build_unary_op): Pass location argument to readonly_error. (build_modify_expr): Same. (build_asm_expr): Same. (c_finish_bc_stmt): Error on break/continue in loops. cp/ * Make-lang.in (CXX_AND_OBJCXX_OBJS): Depend on cp/cp-cilkplus.o. * cp-cilkplus.c: New file. * cp-tree.h (cpp_validate_cilk_plus_loop): Protoize. * parser.c (cp_parser_cilk_simd): New. (cp_debug_parser): Add case for IN_CILK_SIMD_FOR. (cp_parser_jump_statement): Same. (cp_parser_omp_for_cond): Add new argument. Add case for NE_EXPR. (cp_parser_omp_for_loop): Pass new argument to cp_parser_omp_for_cond. Handle CILK_SIMD nodes. Abstract initilization code to.. (cp_parser_omp_for_loop_init): ...here. (cp_parser_pragma): Add case for PRAGMA_CILK_SIMD. (cp_parser_cilk_simd_vectorlength): New. (cp_parser_cilk_simd_linear): New. (cp_parser_cilk_simd_clause_name): New. (cp_parser_cilk_simd_all_clauses): New. (cp_parser_cilk_simd): New. * parser.h (IN_CILK_SIMD_FOR): New macro. * pt.c (tsubst_expr): Add case for CILK_SIMD. * typeck2.c (cxx_readonly_error): Pass location argument to readonly_error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204863 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-11-05 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-11-064-51/+68
| | | | | | | | | | | | | | | | | * c-c++-common/cilk-plus/CK/fib.c: Reduced the iteration from 40 to 30. Replaced iteration variable with a #define. Instead of returning non-zero value for error, called __builtin_abort (). Fixed a bug of calling fib_serial in serial case instead of fib. * c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise. * c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise. * c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise. * gcc.dg/cilk-plus/cilk-plus.exp: Removed duplicate/un-necessary compiler flag testing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204457 138bc75d-0d04-0410-961f-82ee72b054a4
* Added _Cilk_spawn and _Cilk_sync (2 cilk keywords) for C.bviyer2013-10-2916-0/+614
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ChangeLog: 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and __cilkrts_pop_frame. If matched, then return true for built-in function name. (expand_builtin): Added BUILT_IN_CILK_DETACH and BUILT_IN_CILK_POP_FRAME case. * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype. (lhs_cilk_detect_spawn): Likewise. (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS. (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define. (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. (LANG_HOOKS_CILKPLUS): Likewise. * tree.h (CILK_SPAWN_FN): Likewise. * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise. * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o. (OBJS): Added cilk-common.o. (CILK_H): Added a new define. (gimplify.o): Added CILK_H into dependency list. (builtins.o): Likewise. (ipa-inline.o): Likewise. (ipa-inline-analysis.o): Likewise. (BUILTINS_DEF): Added cilk-builtins.def. * langhooks.c (lhd_install_body_with_frame_cleanup): New function. (lhd_cilk_detect_spawn): Likewise. * langhooks.h (lang_hooks_for_cilkplus): New struct. (struct lang_hooks): Added new field called "cilkplus." * cilk-common.c: New file. * cilk.h: Likewise. * cilk-builtins.def: Likewise. * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added "__cilk" macro and set it to 200. * function.h (struct function::cilk_frame_decl): New field. (struct function::is_cilk_function): Likewise. (struct function::calls_cilk_spawn): Likewise. * gimplify.c (gimplify_call_expr): Added a check if the function call being gimplified is a spawn detach point. If so, then add pop_frame and detach function calls. (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case for gimplifying _Cilk_spawn and _Cilk_sync statements. (gimplify_return_expr): Added a check for _Cilk_spawn usage in function. If so, added a _Cilk_sync and gimplified it. (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and INIT_EXPRs. If so, then call gimplify_cilk_spawn. * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of spawner function. (can_inline_edge_p): Prevent inling of spawnee function. * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer for functions that use Cilk keywords. * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field. * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and CILK_SYNC_STMT cases. * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT trees. * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn. (CILK_SYNC_STMT): Added documentation for _Cilk_sync. * passes.texi (Cilk Keywords): New section that describes the compiler code changes for handling Cilk Keywords. gcc/c/ChangeLog: 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-decl.c (finish_function): Added a call for insert_cilk_frame when a spawning function is found. * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define. (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC case. (c_parser_postfix_expression): Added RID_CILK_SPAWN case. * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma expr. (c_finish_return): Added a check to reject _Cilk_spawn in return expression. (build_cilk_spawn): New function. (build_cilk_sync): Likewise. * Makefile.in (c-decl.o): Added cilk.h in dependency list. gcc/c-family/ChangeLog 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-common.c (c_common_reswords[]): Added _Cilk_spawn and _Cilk_sync fields. (c_define_builtins): Called cilk_init_builtins if Cilk Plus is enabled. * c-common.h (enum rid): Added RID_CILK_SPAWN and RID_CILK_SYNC. (insert_cilk_frame): New prototype. (cilk_init_builtins): Likewise. (gimplify_cilk_spawn): Likewise. (c_cilk_install_body_w_frame_cleanup): Likewise. (cilk_detect_spawn_and_unwrap): Likewise. (cilk_set_spawn_marker): Likewise. (build_cilk_sync): Likewise. (build_cilk_spawn): Likewise. * cilk.c: New file. gcc/lto/ChangeLog 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> * Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list. * lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk Plus is enabled. gcc/testsuite/ChangeLog 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: New test. * c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Likewise. * c-c++-common/cilk-plus/CK/fib.c: Likewise. * c-c++-common/cilk-plus/CK/no_args_error.c: Likewise. * c-c++-common/cilk-plus/CK/spawnee_inline.c: Likewise. * c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise. * c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise. * c-c++-common/cilk-plus/CK/steal_check.c: Likewise. * c-c++-common/cilk-plus/CK/test__cilk.c: Likewise. * c-c++-common/cilk-plus/CK/varargs_test.c: Likewise. * c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Likewise. * c-c++-common/cilk-plus/CK/invalid_spawn.c: Likewise. * c-c++-common/cilk-plus/CK/spawn_in_return.c: Likewise. * c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise. * c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise. * c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise. * gcc.dg/cilk-plus/cilk-plus.exp: Added support to run Cilk Keywords test stored in c-c++-common. Also, added the Cilk runtime's library to the ld_library_path. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204172 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix for PR c/57490.bviyer2013-08-201-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/c/ChangeLog +2013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c/57490 + * c-array-notation.c (fix_conditional_array_notations_1): Added a + check for truth values. + (expand_array_notation_exprs): Added truth values case. Removed an + unwanted else. Added for-loop to walk through subtrees in default + case. + gcc/cp/ChangeLog +2013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c/57490 + * cp-array-notation.c (cp_expand_cond_array_notations): Added a + check for truth values. + (expand_array_notation_exprs): Added truth values case. Removed an + unwanted else. Added for-loop to walk through subtrees in default + case. + * call.c (build_cxx_call): Inherited the type of the array notation for + certain built-in array notation functions. + gcc/testsuite/ChangeLog +2013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c/57490 + * c-c++-common/cilk-plus/AN/pr57490.c: New test. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201867 138bc75d-0d04-0410-961f-82ee72b054a4
* +2013-07-01 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-07-011-1/+1
| | | | | | | | | | | | + + PR c/57766 + * c-c++-common/cilk-plus/AN/sec_implicit_ex.c (NUMBER): Changed + array sizes from 100 to 20. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200581 138bc75d-0d04-0410-961f-82ee72b054a4
* Implemented Jason Merrill's suggestions on Array Notation C++.bviyer2013-06-285-21/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ChangeLog 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> * builtins.def: Fixed the function type of CILKPLUS_BUILTIN. gcc/c/ChangeLog 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-parser.c (c_parser_array_notation): Removed rejection of array notations in an array of function pointers. gcc/c-family/ChangeLog 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> * array-notation-common.c (length_mismatch_in_expr_p): Collapsed two if-statements and compared the trees directly using tree_int_cst_equal. (find_rank): Checked for array notations in function name to handle array notations in function pointers. (extract_array_notation_exprs): Likewise. (replace_array_notations): Likewise. (cilkplus_extract_an_triplets): Replaced safe_push with safe_grow_cleared. Also removed an unnecessary check to see if the node is of type ARRAY_NOTATION_REF. (fix_sec_implicit_args): Removed an unnecessary check for ADDR_EXPR. Also switched two if-statements to remove an unnecessary comparison. gcc/cp/ChangeLog 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> * parser.c (cp_parser_array_notation): Removed rejection array notation of type function pointers. Added handling of array expressions when Cilk Plus is enabled. Took out type-checking. (cp_parser_postfix_open_square_expression): Moved normal array expr. parsing into cp_parser_array_notation when cilkplus is enabled. (cp_parser_compound_statement): Removed expansion of array notations. (cp_parser_ctor_initializer_opt_and_function_body): Likewise. (cp_parser_function_definition_after_declarator): Likewise. (cp_parser_selection_statement): Removed error reporting. (cp_parser_iteration_statement): Likewise. (cp_parser_direct_declarator): Removed error checking/reporting if array notations are used in the declarator. * pt.c (instantiate_decl): Likewise. (type_unification_real): Removed a check for ARRAY_NOTATION_REF. (cxx_eval_constant_expression): Removed ARRAY_NOTATION_REF case. (potential_constant_expression_1): Returned false for ARRAY_NOTATION_REF case. * cp-gimplify.c (cp_genericize): Added expansion of array notation expressions here. * cp-array-notation.c (make_triplet_val_inv): Removed loc and cry parameters. Replaced build_decls with get_temp_regvar with type as ptrdiff. (create_array_refs): Made the type-casting to ptrdiff_type. (replace_invariant_var): Added a check for void return type before creating new var. Replaced build_decl and build_min_nt_loc with get_temp_regvar. (expand_an_in_modify_expr): Ditto. Replaced body of redundant else with gcc_unreachable. Removed few unwanted checks. Made induction variable type as ptrdiff_type. Removed loc and complain arguments passed into make_triplet_val_inv. Replaced all modify expression's code from NOP EXPR to INIT EXPR. Replaced all forceful appending into stmt. list with the non-forceful one. Replaced some integer conversion and equality-checking to using tree_int_cst_equal. (expand_sec_reduce_builtin): All changes mentioned in above function expand_an_in_modify_expr. Made the new variable type of SEC_REDUCE_ANY/ALL_{NON}ZERO intrinsic functions as bool. (expand_array_notation_exprs): Removed SWITCH_EXPR case. Moved all the error reporting from parser to this function. Removed unwanted statements and checks from SWITCH_STMT, WHILE_STMT, and DO_STMT cases. (cilkplus_an_triplet_types_ok_p): Removed rejection of array notation in function pointers. (cp_expand_cond_array_notations): Added a new if statements to check if condition has a zero rank. If so, then just return. (expand_return_expr): Added a check for return expressions with a rank. Replaced get_tmp_regvar with a create_temporary_var. (build_array_notation_ref): Simplified and removed unwanted if-stmts. Moved common code outside if-statements. Moved type-checking from parser to here. * semantics.c (finish_return_stmt): Removed a check for return exprs. with a rank. * call.c (convert_like_real): Removed a check for array notation expression in a function. (build_over_call): Likewise. (magic_varargs_p): Added a check for builtin array notation function. Made this function non-static and removed its prototype. * cp-tree.h (magic_varargs_p): New prototype. * typeck.c (cp_build_function_call_vec): Removed automatic setting of nargs to the param->length when builtin reduction function is used. (convert_arguments): Replaced check for a constant_p function with margic_varargs_p function call. (cp_build_binary_op): Removed calling of the function find_correct_array_notation_type. (cp_build_addr_expr_1): Removed an unwanted if-statement. (convert_for_assignment): Removed automatic return of rhs when array notation builtin function is used. gcc/testsuite/ChangeLog 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/AN/decl-ptr-colon.c (main): Made this testcase c specific. * c-c++-common/cilk-plus/AN/decl-ptr-colon.c (main): Changed dg-error strings to match the fixed error messages. * c-c++-common/cilk-plus/AN/misc.c (main): Likewise. * c-c++-common/cilk-plus/AN/rank_mismatch.c (main): Added a new error message check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200554 138bc75d-0d04-0410-961f-82ee72b054a4
* +2013-06-25 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-06-261-3/+3
| | | | | | | | | | | + + * c-c++-common/cilk-plus/AN/gather_scatter.c: Fixed a bug of stack + overflow due to size of arrays. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200414 138bc75d-0d04-0410-961f-82ee72b054a4
* Implemented Cilk Plus Array Notation for C++ bviyer2013-06-218-22/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/c-family/ChangeLog 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-common.h (struct cilkplus_an_parts): New structure. (struct cilkplus_an_loop_parts): Likewise. (cilkplus_extract_an_triplets): New prototype. (fix_sec_implicit_args): Likewise. * array-notation-common.c (cilkplus_extract_an_triplets): New function. (fix_sec_implicit_args): Likewise. gcc/cp/ChangeLog 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> * call.c (convert_like_real): Added a check if array notation is present in expression. If so, then no conversion of arguments is necessary. (build_over_call): Likewise. * typeck.c (cp_build_function_call_vec): Likewise. (convert_for_assignment): Likewise. (cp_build_array_ref): Reject array notations with a rank greater than 1 as an array's index. (cp_build_binary_op): If array notations are preent in op, then call find_correct_array_notation_type. (cp_build_addr_expr_1): Handle ARRAY_NOTATION_REF similar to ARRAY_REF. * cp-array-notation.c: New file. * cp-objcp-common.c (cp_common_init_ts): Marked ARRAY_NOTATION_REF tree as typed. * cp-tree.h (fix_array_notation_exprs): New prototype. * semantics.c (finish_return_stmt): Reject array notations as return value. (cxx_eval_constant_expression): Added ARRAY_NOTATION_REF case. (potential_constant_expression_1): Likewise. * tree.c (lvalue_kind): Likewise. * error.c (dump_decl): Likewise. (dump_expr): Likewise. * pt.c (ARRAY_NOTATION_REF): Likewise. (type_unification_real): Do not unify any arguments if array notations are found in arg. (instantiate_decl): Added a check for array notaitons inside the function body. If so, then expand them. * parser.c (cp_parser_array_notation): New function. (cp_parser_postfix_open_square_expression): Added a check for colons inside square braces. If found, then handle the array access as an array notation access. Also, disable auto-correction from a single colon to scope when Cilk Plus is enabled. (cp_parser_compound_statement): Added a check for array notations inside the statement. If found, then expand them. (cp_parser_ctor_initializer_opt_and_function_body): Likewise. (cp_parser_function_definition_after_declarator): Likewise. (cp_parser_selection_statement): Searched for array notations inside condition. If so, then emit an error. (cp_parser_iteration_statement): Likewise. (cp_parser_direct_declarator): Reject array notations inside a variable or array declaration. * Make-lang.in (CXX_AND_OBJCXX_OBJS): Added cp/cp-array-notation.o. gcc/testsuite/ChangeLog 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/AN/array_test1.c: Make this an execution test. Also changed the returns from error as distinct values so that debugging can get easier. * c-c++-common/cilk-plus/AN/if_test_errors.c (main): Made certain errors specific to C, if necessary. Also added new error hooks for C++. * c-c++-common/cilk-plus/AN/misc.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors2.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors3.c (main): Likewise. * c-c++-common/cilk-plus/AN/pr57541.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors4.c (main): In addition to the same changes as parser_errors3.c, spaces were added between colons to not confuse C++ compiler with 2 colons as scope. * c-c++-common/cilk-plus/AN/vla.c: Make this test C specific. * g++.dg/cilk-plus/AN/array_test1_tplt.cc: New test. * g++.dg/cilk-plus/AN/array_test2_tplt.cc: Likewise. * g++.dg/cilk-plus/AN/array_test_ND_tplt.cc: Likewise. * g++.dg/cilk-plus/AN/braced_list.cc: Likewise. * g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.cc: Likewise. * g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc: Likewise. * g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Likewise. * g++.dg/cilk-plus/AN/preincr_test.cc: Likewise. * g++.dg/cilk-plus/AN/postincr_test.cc: Likewise. * g++.dg/cilk-plus/cilk-plus.exp: New script. * gcc/testsuite/g++.dg/dg.exp: Included Cilk Plus C++ tests in the list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200319 138bc75d-0d04-0410-961f-82ee72b054a4
* Replace array size in Array Notation testcode with #define.bviyer2013-06-196-43/+51
| | | | | | | | | | | | | | | | 2013-06-19 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Replaced all the hard-coded values of array sizes with a #define. * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Likewise. * c-c++-common/cilk-plus/AN/builtin_func_double2.c: Likewise. * c-c++-common/cilk-plus/AN/gather_scatter.c: Likewise. * c-c++-common/cilk-plus/AN/pr57577.c: Likewise. * c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200205 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-17 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-06-171-0/+21
| | | | | | | | * c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200155 138bc75d-0d04-0410-961f-82ee72b054a4
* +2013-06-17 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-06-171-6/+6
| | | | | | | | | | | | + + * c-c++-common/cilk-plus/AN/array_test1.c: Make this an execution test. + Also changed the returns from error as distinct values so that it is + easier to debug. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200153 138bc75d-0d04-0410-961f-82ee72b054a4
* +2013-06-16 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-06-171-1/+1
| | | | | | | | | | | + + * c-c++-common/cilk-plus/AN/if_test.c (main2): Fixed a bug of accidentally + placing minus sign for length instead of stride. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200146 138bc75d-0d04-0410-961f-82ee72b054a4
* fix pr c/57577bviyer2013-06-121-0/+11
| | | | | | | | | | | | | | | | | | | | | gcc/c/ChangeLog +2013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-array-notation.c (build_array_notation_expr): Reject array notation + mismatch between LHS and RHS even inside a call_expr. Also, removed + a couple while statements that were dead code. + gcc/testsuite/ChangeLog +2013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c/57577 + * c-c++-common/cilk-plus/AN/pr57577.c: New testcase. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200043 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-06-121-8/+1
| | | | | | | | | * c-c++-common/cilk-plus/AN/sec_implicit_ex.c (main): Replaced abort and exit function calls with return 1 and return 0, respectively. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200038 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix for PR c/57563bviyer2013-06-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | gcc/c/ChangeLog +2013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded + excessive precision expressions in function parameters. Also removed + couple unwanted while statements. + gcc/testsuite/ChangeLog +2013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c/57563 + * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c (main): Fixed a bug + in how we check __sec_reduce_mutating function's result. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199925 138bc75d-0d04-0410-961f-82ee72b054a4
* Fixed PR 57541.bviyer2013-06-071-0/+14
| | | | | | | | | | | | | | | | gcc/c/ChangeLog 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-array-notation.c (expand_array_notation_exprs): Added ARRAY_NOTATION_REF case. gcc/testsuite/ChangeLog 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> PR middle-end/57541 * c-c++-common/cilk-plus/AN/pr57541.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199837 138bc75d-0d04-0410-961f-82ee72b054a4
* +2013-06-04 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-06-052-0/+54
| | | | | | | | | | | | | | | | | | | + + * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus + reduction functions outside the for-loop. Also, added a check if the + fundecl is non-NULL. + +2013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR C/57457 + * c-c++-common/cilk-plus/AN/pr57457.c: New test. + * c-c++-common/cilk-plus/AN/pr57457-2.c: Likewise. + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199709 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix Cilk Plus tests for simulators.bviyer2013-06-0429-155/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2013-06-04 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/AN/array_test1.c (main): Replaced argc, argv parameters with void. (main2): Removed argc parameter. * c-c++-common/cilk-plus/AN/array_test2.c (main2): Likewise. (main): Replaced argc, argv parameters with void. * c-c++-common/cilk-plus/AN/array_test_ND.c (main): Likewise. (main2): Removed argc parameter. * c-c++-common/cilk-plus/AN/builtin_fn_custom.c (main): Replaced argc argv parameters with void. Added __asm volatile to avoid optimization on argc, if necessary. * c-c++-common/cilk-plus/AN/builtin_fn_mutating (main): Likewise. * c-c++-common/cilk-plus/AN/builtin_func_double.c (main): Likewise. * c-c++-common/cilk-plus/AN/builtin_func_double2.c (main): Likewise. * c-c++-common/cilk-plus/AN/conditional.c (main): Likewise. * c-c++-common/cilk-plus/AN/exec-once.c (main): Likewise. * c-c++-common/cilk-plus/AN/exec-once2.c (main): Likewise. * c-c++-common/cilk-plus/AN/fn_ptr.c (main): Likewise. * c-c++-common/cilk-plus/AN/gather-scatter-errors.c (main): Likewise. * c-c++-common/cilk-plus/AN/gather_scatter.c (main): Likewise. * c-c++-common/cilk-plus/AN/misc.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors2.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors3.c (main): Likewise. * c-c++-common/cilk-plus/AN/parser_errors4.c (main): Likewise. * c-c++-common/cilk-plus/AN/rank_mismatch2.c (main): Likewise. * c-c++-common/cilk-plus/AN/sec_implicit_ex.c (main): Likewise. * c-c++-common/cilk-plus/AN/sec_reduce_return.c (main): Likewise. * c-c++-common/cilk-plus/AN/test_builtin_return.c (main): Likewise. * c-c++-common/cilk-plus/AN/vla.c (main): Likewise. * c-c++-common/cilk-plus/AN/comma-exp.c (main): Replaced argc, argv parameters with void. (main2): Removed argc parameter. * c-c++-common/cilk-plus/AN/if_test.c (main2): Likewise. (main): Replaced argc, argv parameters with void. * c-c++-common/cilk-plus/AN/fp_triplet_values (main2): Replace argc, argv parameters with void. Also renamed this function as main, and delete the existing main. * c-c++-common/cilk-plus/AN/sec_implicit.c (main2): Likewise. * c-c++-common/cilk-plus/AN/sec_implicit2.c (main2): Likewise. * c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c (main2): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199661 138bc75d-0d04-0410-961f-82ee72b054a4
* Fixed a bug in expansion of array notations in if-statement conditions.bviyer2013-06-032-2/+61
| | | | | | | | | | | | | | | | | | | | | | | | | 2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the condition of the if-statement matches the rank of else-block and then- block when array notations are used. * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation expression after the entire function body is parsed. (c_parser_expr_no_commas): Delayed creating array notation expressions to the end of function parsing. * c-array-notation.c (fix_conditional_array_notations_1): Expanded the whole if-statement instead of just the condition. (expand_array_notation_exprs): Added MODIFY_EXPR case. 2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/AN/if_test_errors.c (main): New testcase. * c-c++-common/cilk-plus/AN/rank_mismatch.c: Added a '-w' option to dg-option and an header comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199628 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-05-31 Balaji V. Iyer <balaji.v.iyer@intel.com>bviyer2013-05-311-46/+108
| | | | | | | | | | PR c/57452 * c-c++-common/cilk-plus/AN/if_test.c: Fixed out of bounds issue in test-case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199537 138bc75d-0d04-0410-961f-82ee72b054a4
* Implemented Cilk Plus Array Notation for C Compiler.bviyer2013-05-2838-0/+1923
gcc/ChangeLog 2013-05-28 Balaji V. Iyer <balaji.v.iyer@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. * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o. (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-05-28 Balaji V. Iyer <balaji.v.iyer@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. * 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-05-28 Balaji V. Iyer <balaji.v.iyer@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. gcc/testsuite/ChangeLog 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/AN/array_test1.c: New test. * c-c++-common/cilk-plus/AN/array_test2.c: Likewise. * c-c++-common/cilk-plus/AN/array_test_ND.c: Likewise. * c-c++-common/cilk-plus/AN/builtin_func_double.c: Likewise. * c-c++-common/cilk-plus/AN/builtin_func_double2.c: Likewise. * c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Likewise. * c-c++-common/cilk-plus/AN/if_test.c: Likewise. * c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Likewise. * c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Likewise. * c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Likewise. * c-c++-common/cilk-plus/AN/fn_ptr.c: Likewise. * c-c++-common/cilk-plus/AN/fp_triplet_values.c: Likewise. * c-c++-common/cilk-plus/AN/gather-scatter.c: Likewise. * c-c++-common/cilk-plus/AN/misc.c: Likewise. * c-c++-common/cilk-plus/AN/parser_errors.c: Likewise. * c-c++-common/cilk-plus/AN/parser_errors2.c: Likewise. * c-c++-common/cilk-plus/AN/parser_errors3.c: Likewise. * c-c++-common/cilk-plus/AN/parser_errors4.c: Likewise. * c-c++-common/cilk-plus/AN/rank_mismatch.c: Likewise. * c-c++-common/cilk-plus/AN/rank_mismatch2.c: Likewise. * c-c++-common/cilk-plus/AN/rank_mismatch3.c: Likewise. * c-c++-common/cilk-plus/AN/sec_implicit.c: Likewise. * c-c++-common/cilk-plus/AN/sec_implicit2.c: Likewise. * c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Likewise. * c-c++-common/cilk-plus/AN/tst_lngth.c: Likewise. * c-c++-common/cilk-plus/AN/vla.c: Likewise. * c-c++-common/cilk-plus/AN/an-if.c: Likewise. * c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Likewise. * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Likewise. * c-c++-common/cilk-plus/AN/comma_exp.c: Likewise. * c-c++-common/cilk-plus/AN/conditional.c: Likewise. * c-c++-common/cilk-plus/AN/exec-once.c: Likewise. * c-c++-common/cilk-plus/AN/exec-once2.c: Likewise. * c-c++-common/cilk-plus/AN/gather_scatter.c: Likewise. * c-c++-common/cilk-plus/AN/n-ptr-test.c: Likewise. * c-c++-common/cilk-plus/AN/side-effects-1.c: Likewise. * c-c++-common/cilk-plus/AN/test_builtin_return.c: Likewise. * c-c++-common/cilk-plus/AN/test_sec_limits.c: Likewise. * gcc.dg/cilk-plus/cilk-plus.exp: New script. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199389 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud