aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-08-17Use verify_oacc_routine_clauses for C/C++Thomas Schwinge
gcc/ * omp-low.c (build_oacc_routine_dims): Move some of its processing into... (verify_oacc_routine_clauses): ... this new function. * omp-low.h (verify_oacc_routine_clauses): New prototype. gcc/c/ * c-parser.c (c_parser_oacc_routine): Normalize order of clauses. (c_finish_oacc_routine): Call verify_oacc_routine_clauses. gcc/cp/ * parser.c (cp_parser_oacc_routine) (cp_parser_late_parsing_oacc_routine): Normalize order of clauses. (cp_finalize_oacc_routine): Call verify_oacc_routine_clauses. gcc/testsuite/ * c-c++-common/goacc/routine-2.c: Update, and move some test into... * c-c++-common/goacc/routine-level-of-parallelism-1.c: ... this new file. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239520 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-17Use correct location information for OpenACC shape and simple clauses in C/C++Thomas Schwinge
gcc/c/ * c-parser.c (c_parser_oacc_shape_clause) (c_parser_oacc_simple_clause): Add loc formal parameter. Adjust all users. gcc/cp/ * parser.c (cp_parser_oacc_shape_clause): Add loc formal parameter. Adjust all users. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239519 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-16 gcc/fortran/Cesar Philippidis
* openmp.c (gfc_match_oacc_routine): Error on repeated ACC ROUTINE directives. Consider the optional NAME argument being the current procedure name. * trans-decl.c (add_attributes_to_decl): Use build_oacc_routine_dims to construct the oacc_function attribute arguments. gcc/testsuite/ * gfortran.dg/goacc/pr72741-2.f: New test. * gfortran.dg/goacc/pr72741-intrinsic-1.f: Add test coverage. * gfortran.dg/goacc/pr72741-intrinsic-2.f: Likewise. * gfortran.dg/goacc/pr72741.f90: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239515 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-152016-08-15 Chung-Lin Tang <cltang@codesourcery.com>Chung-Lin Tang
* omp-low.c (lower_oacc_reductions): Adjust variable lookup to use maybe_lookup_decl, to handle nested acc loop directives. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239468 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-12 libgomp/Cesar Philippidis
* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Increase test coverage. Build with -Wall -Wextra. * testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/cublas-fixed.h: New test. * testsuite/libgomp.oacc-fortran/host_data-3.f: New test. * testsuite/libgomp.oacc-fortran/host_data-4.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239427 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-12[PR fortran/72741] Check clauses with intrinsic function specified in !$ACC ↵Cesar Philippidis
ROUTINE ( NAME ) gcc/fortran/ * openmp.c (gfc_match_oacc_routine): Check clauses of intrinsic functions. gcc/testsuite/ * gfortran.dg/goacc/pr72741-intrinsic-1.f: New file. * gfortran.dg/goacc/pr72741-intrinsic-2.f: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239422 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-11 libgomp/Cesar Philippidis
* testsuite/libgomp.oacc-fortran/host_data-1.f90: Remove stale xfail. * testsuite/libgomp.oacc-fortran/host_data-2.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239396 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-04Rework C/C++ OpenACC routine parsingThomas Schwinge
Backport trunk r239128: gcc/c/ * c-parser.c (struct oacc_routine_data): Add error_seen and fndecl_seen members. (c_finish_oacc_routine): Use these. (c_parser_declaration_or_fndef): Adjust. (c_parser_oacc_routine): Likewise. Support more C language constructs, and improve diagnostics. Move pragma context checking... (c_parser_pragma): ... here. gcc/cp/ * parser.c (cp_ensure_no_oacc_routine): Improve diagnostics. (cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics. (cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine): Simplify code, and improve diagnostics. (cp_parser_oacc_routine): Likewise. Move pragma context checking... (cp_parser_pragma): ... here. gcc/testsuite/ * c-c++-common/goacc/routine-5.c: Update. gcc/testsuite/ * g++.dg/goacc/routine-2.C: Update. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239133 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-04C/C++: Simplify handling of location information for OpenACC routine directivesThomas Schwinge
Backport trunk r239127: gcc/c/ * c-parser.c (struct oacc_routine_data): New. (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it. Simplify code. (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp declare target" attribute. gcc/cp/ * parser.h (struct cp_omp_declare_simd_data): New. (struct cp_parser): Use it for oacc_routine member. * parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine) (cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine): Use it. Simplify code. (cp_parser_new): Initialize all members pointing to special parsing data structures. (cp_parser_cilk_simd_fn_vector_attrs): Initialize parser->cilk_simd_fn_info->clauses. (cp_parser_omp_declare_simd): Initialize parser->omp_declare_simd->clauses. (cp_parser_late_parsing_omp_declare_simd): Simplify code. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239132 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-04Tighten syntax checking for OpenACC routine construct in CThomas Schwinge
Backport trunk r236639: gcc/c/ * c-parser.c (c_parser_oacc_routine): Tighten syntax checks. gcc/testsuite/ * c-c++-common/goacc/routine-5.c: Add tests. * g++.dg/goacc/routine-2.C: Remove duplicate tests. * gfortran.dg/goacc/routine-6.f90: Add tests. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239131 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-04C++ OpenACC routine directive testing: templated, and "auto", trailing ↵Thomas Schwinge
return type syntax Backport trunk r239126: libgomp/ * testsuite/libgomp.oacc-c++/routine-1-auto.C: New file. * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise. * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C: Likewise. * testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise. * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Likewise. * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239130 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-04Make libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0Thomas Schwinge
Backport trunk r239125: libgomp/ * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link" test, and don't hardcode -O0. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239129 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-03 gcc/Nathan Sidwell
* config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame size to DImode boundary. (nvptx_propagate): Likewise. libgomp/ * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@239085 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-292016-07-29 Chung-Lin Tang <cltang@codesourcery.com>Chung-Lin Tang
gcc/ * fortran/openmp.c (resolve_omp_clauses): Adjust use_device clause handling to only allow pointers and arrays. gcc/testsuite/ * gfortran.dg/goacc/host_data-tree.f95: Adjust to use accept pointers in use_device clause. * gfortran.dg/goacc/uninit-use-device-clause.f95: Likewise. * gfortran.dg/goacc/list.f95: Adjust to catch "neither a pointer nor an array" error messages. libgomp/testsuite/ * libgomp.oacc-fortran/host_data-1.f90: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238875 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-29 PR fortran/72741Cesar Philippidis
gcc/fortran/ * openmp.c (gfc_oacc_routine_dims): Move gfc_error to gfc_match_oacc_routine. Return OACC_FUNCTION_NONE on error. (gfc_match_oacc_routine): Call gfc_oacc_routine_dims for all routines directives. Propagate error as appropriate. gcc/testsuite/ * gfortran.dg/goacc/pr72741.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238847 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-28 gcc/fortran/Cesar Philippidis
* gfortran.h (enum oacc_function): Define. (oacc_function_type): Declare. (symbol_attribute): Change the type of oacc_function from unsigned to an ENUM_BITFIELD. * module.c (oacc_function): New DECL_MIO_NAME. (mio_symbol_attribute): Set the oacc_function attribute. * openmp.c (gfc_oacc_routine_dims): Change the return type from int to oacc_function. (gfc_match_oacc_routine): Handle intrinsic procedures. * symbol.c (oacc_function_types): Define. * trans-decl.c (add_attributes_to_decl): Update to handle the retyped oacc_function attribute. gcc/ * lto-cgraph.c (input_overwrite_node): Change the assertion to an error for missing symbols. gcc/testsuite/ * gfortran.dg/goacc/fixed-1.f: Add test coverage. * gfortran.dg/goacc/routine-7.f90: New test. libgomp/ * testsuite/libgomp.oacc-fortran/abort-1.f90: * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Add test coverage. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238807 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-15 Backport from trunk:Cesar Philippidis
gcc/c/ * c-parser.c (c_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER. * c-typeck.c (handle_omp_array_sections): Mark data clauses with GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having zero-length subarrays. gcc/cp/ * parser.c (cp_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER. * semantics.c (handle_omp_array_sections): Mark data clauses with GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having zero-length subarrays. gcc/ * omp-low.c (lower_omp_target): Mark data clauses with GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having zero-length subarrays. libgomp/ * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238385 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-15 Backport from trunk:Cesar Philippidis
gcc/fortran/ * openmp.c (gfc_match_omp_clauses): Scan for clause vector_length before vector. gcc/testsuite/ * gfortran.dg/goacc/vector_length.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238384 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-13Fix r238262 ChangeLog updatesThomas Schwinge
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238296 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-12 Backport from trunk:Cesar Philippidis
2016-07-08 Cesar Philippidis <cesar@codesourcery.com> gcc/fortran/ * parse.c (matcha): Define. (decode_oacc_directive): Add spec_only local var and set it. Use matcha to parse acc directives except for routine and declare. Return ST_GET_FCN_CHARACTERISTICS if a non-declarative directive could be matched. gcc/testsuite/ * gfortran.dg/goacc/pr71704.f90: New test. 2016-06-01 Jakub Jelinek <jakub@redhat.com> gcc/fortran/ * parse.c (case_decl): Move ST_OMP_* to ... (case_omp_decl): ... here, new macro. (verify_st_order): For case_omp_decl, complain about p->state >= ORDER_EXEC, but don't change p->state otherwise. gcc/testsuite * gfortran.dg/gomp/order-1.f90: New test. * gfortran.dg/gomp/order-2.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@238262 138bc75d-0d04-0410-961f-82ee72b054a4
2016-07-01 Back port from trunkCesar Philippidis
2016-06-29 Cesar Philippidis <cesar@codesourcery.com> gcc/fortran/ * openmp.c (match_oacc_clause_gang): Rename to ... (match_oacc_clause_gwv): this. Add support for OpenACC worker and vector clauses. (gfc_match_omp_clauses): Use match_oacc_clause_gwv for OMP_CLAUSE_{GANG,WORKER,VECTOR}. Propagate any MATCH_ERRORs for invalid OMP_CLAUSE_{ASYNC,WAIT,GANG,WORKER,VECTOR} clauses. (gfc_match_oacc_wait): Propagate MATCH_ERROR for invalid oacc_expr_lists. Adjust the first and needs_space arguments to gfc_match_omp_clauses. gcc/testsuite/ * gfortran.dg/goacc/asyncwait-2.f95: Updated expected diagnostics. * gfortran.dg/goacc/asyncwait-3.f95: Likewise. * gfortran.dg/goacc/asyncwait-4.f95: Add test coverage. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237915 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-30Only trigger the "avoid offloading" mechanism for -O2 and higherThomas Schwinge
gcc/ * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Only trigger the "avoid offloading" mechanism for -O2 and higher. libgomp/ * testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c: Update. * testsuite/libgomp.oacc-fortran/avoid-offloading-1.f: Update. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237895 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-13 Backport from mainline r236098.James Norris
2016-05-10 James Norris <jnorris@codesourcery.com> PR driver/68463 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if offloading is enabled and -fopenacc or -fopenmp is specified. (CRTOFFLOADEND): Likewise. (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN. (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237379 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-10[PR middle-end/71373] Handle more OMP_CLAUSE_* in nested function decompositionThomas Schwinge
Backport trunk r237291: gcc/ * gimplify.c (gimplify_adjust_omp_clauses): Discard OMP_CLAUSE_TILE. * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE. gcc/testsuite/ * c-c++-common/goacc/combined-directives.c: XFAIL tree scanning for OpenACC tile clauses. * gfortran.dg/goacc/combined-directives.f90: Likewise. gcc/ PR middle-end/71373 * tree-nested.c (convert_nonlocal_omp_clauses) (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO, OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE. gcc/testsuite/ PR middle-end/71373 * gcc.dg/goacc/nested-function-1.c: New file. * gcc.dg/goacc/nested-function-2.c: Likewise. * gcc.dg/goacc/pr71373.c: Likewise. * gfortran.dg/goacc/cray-2.f95: Likewise. * gfortran.dg/goacc/loop-1-2.f95: Likewise. * gfortran.dg/goacc/loop-3-2.f95: Likewise. * gfortran.dg/goacc/cray.f95: Update. * gfortran.dg/goacc/loop-1.f95: Likewise. * gfortran.dg/goacc/loop-3.f95: Likewise. * gfortran.dg/goacc/subroutines.f90: Update, and rename to... * gfortran.dg/goacc/nested-function-1.f90: ... this new file. libgomp/testsuite/ PR middle-end/71373 * libgomp.oacc-c/nested-function-1.c: New file. * libgomp.oacc-c/nested-function-2.c: Likewise. * libgomp.oacc-fortran/nested-function-1.f90: Likewise. * libgomp.oacc-fortran/nested-function-2.f90: Likewise. * libgomp.oacc-fortran/nested-function-3.f90: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237300 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-10[PR c/71381] C/C++ OpenACC cache directive rejects valid syntaxThomas Schwinge
libgomp/ PR c/71381 * testsuite/libgomp.oacc-fortran/cache-1.f90: Remove file. Backport trunk r237290: gcc/c/ PR c/71381 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>: Loosen checking. gcc/cp/ PR c/71381 * parser.c (cp_parser_omp_var_list_no_open) <OMP_CLAUSE__CACHE_>: Loosen checking. gcc/fortran/ PR c/71381 * openmp.c (gfc_match_oacc_cache): Add comment. gcc/testsuite/ PR c/71381 * c-c++-common/goacc/cache-1.c: Update. Move invalid usage tests to... * c-c++-common/goacc/cache-2.c: ... this new file. * gfortran.dg/goacc/cache-1.f95: Move invalid usage tests to... * gfortran.dg/goacc/cache-2.f95: ... this new file. * gfortran.dg/goacc/coarray.f95: Update OpenACC cache directive usage. * gfortran.dg/goacc/cray.f95: Likewise. * gfortran.dg/goacc/loop-1.f95: Likewise. libgomp/ PR c/71381 * testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include "../../../gcc/testsuite/c-c++-common/goacc/cache-1.c". * testsuite/libgomp.oacc-fortran/cache-1.f95: New file. gcc/ * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE__CACHE_. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237299 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-10Clean up libgomp.oacc-c++/template-reduction.C XFAILThomas Schwinge
libgomp/ * testsuite/libgomp.oacc-c++/template-reduction.C: Remove XFAIL. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237298 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-10Fix "warning: comma at end of enumerator list [-Wpedantic]"Thomas Schwinge
Backport trunk r235802: gcc/ * c-common.h (enum c_omp_region_type): Remove stray comma. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237297 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-082016-06-08 Chung-Lin Tang <cltang@codesourcery.com>Chung-Lin Tang
Backport trunk r237070: 2016-06-03 Chung-Lin Tang <cltang@codesourcery.com> c/ * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction arguments as addressable when async clause exists. cp/ * semantics.c (finish_omp_clauses): Mark OpenACC reduction arguments as addressable when async clause exists. fortran/ * trans-openmp.c (gfc_trans_omp_reduction_list): Add mark_addressable bool parameter, set reduction clause DECLs as addressable when true. (gfc_trans_omp_clauses): Pass clauses->async to gfc_trans_omp_reduction_list, add comment describing OpenACC situation. libgomp/ * testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase. * testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237210 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-01 PR c/70688Cesar Philippidis
* pr70688.c: New file. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@237012 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-27 gcc/testsuite/Cesar Philippidis
* c-c++-common/goacc/kernels-loop-offload-alias-none.c: Add xfails. * c-c++-common/goacc/kernels-loop-offload-alias-ptr.c: Likewise. * c-c++-common/goacc/kernels-offload-alias-2.c: Likewise. * c-c++-common/goacc/kernels-offload-alias-3.c: Likewise. * c-c++-common/goacc/kernels-offload-alias-6.c: Likewise. * c-c++-common/goacc/kernels-offload-alias.c: Likewise. * c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c: Likewise. * g++.dg/goacc/data-1.C: New test. libgomp/ * testsuite/libgomp.oacc-c++/non-scalar-data.C: Adjust test. * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Adjust test. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/ kernels-parallel-loop-data-enter-exit.c: Likewise. * testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise. Backport trunk r236678: 2016-05-24 Cesar Philippidis <cesar@codesourcery.com> gcc/c/ * c-parser.c (c_parser_oacc_declare): Add support for GOMP_MAP_FIRSTPRIVATE_POINTER. * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp argument with enum c_omp_region_type ort. (handle_omp_array_sections): Likewise. Update call to handle_omp_array_sections_1. (c_finish_omp_clauses): Add specific errors and warning messages for OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update call to handle_omp_array_sections. gcc/cp/ * parser.c (cp_parser_oacc_declare): Add support for GOMP_MAP_FIRSTPRIVATE_POINTER. * semantics.c (handle_omp_array_sections_1): Replace bool is_omp argument with enum c_omp_region_type ort. Don't privatize OpenACC non-static members. (handle_omp_array_sections): Replace bool is_omp argument with enum c_omp_region_type ort. Update call to handle_omp_array_sections_1. (finish_omp_clauses): Add specific errors and warning messages for OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update call to handle_omp_array_sections. gcc/ * gimplify.c (omp_notice_variable): Use zero-length arrays for data pointers inside OACC_DATA regions. (gimplify_scan_omp_clauses): Prune firstprivate clause associated with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions. (gimplify_adjust_omp_clauses): Fix typo in comment. gcc/testsuite/ * c-c++-common/goacc/data-clause-duplicate-1.c: Adjust test. * c-c++-common/goacc/deviceptr-1.c: Likewise. * c-c++-common/goacc/kernels-alias-3.c: Likewise. * c-c++-common/goacc/kernels-alias-4.c: Likewise. * c-c++-common/goacc/kernels-alias-5.c: Likewise. * c-c++-common/goacc/kernels-alias-8.c: Likewise. * c-c++-common/goacc/kernels-alias-ipa-pta-3.c: Likewise. * c-c++-common/goacc/pcopy.c: Likewise. * c-c++-common/goacc/pcopyin.c: Likewise. * c-c++-common/goacc/pcopyout.c: Likewise. * c-c++-common/goacc/pcreate.c: Likewise. * c-c++-common/goacc/pr70688.c: New test. * c-c++-common/goacc/present-1.c: Adjust test. * c-c++-common/goacc/reduction-5.c: Likewise. * g++.dg/goacc/data-1.C: New test. libgomp/ * oacc-mem.c (acc_malloc): Update handling of shared-memory targets. (acc_free): Likewise. (acc_memcpy_to_device): Likewise. (acc_memcpy_from_device): Likewise. (acc_deviceptr): Likewise. (acc_hostptr): Likewise. (acc_is_present): Likewise. (acc_map_data): Likewise. (acc_unmap_data): Likewise. (present_create_copy): Likewise. (delete_copyout): Likewise. (update_dev_host): Likewise. * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail. * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test. * testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test. * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test. * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that it only runs on nvptx targets. * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236829 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-27 Backport trunk r235922:Cesar Philippidis
2016-05-05 Jakub Jelinek <jakub@redhat.com> * openmp.c (gfc_match_omp_clauses): Restructuralize, so that clause parsing is done in a big switch based on gfc_peek_ascii_char and individual clauses under their first letters are sorted too. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236824 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-27 * gcc/omp-low.c (oacc_loop_auto_partitions): Use boolean ORCesar Philippidis
when comparing outer_assign and loop->inner. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236821 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-26commit missing fileNathan Sidwell
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236779 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-26 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.Nathan Sidwell
(TARGET_FUNCTION_ARG_BOUNDARY): Override. testsuite/ * gcc.target/nvptx/abi-vararg-3.c: New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236776 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-26 * config/nvptx/free.asm: Delete.Nathan Sidwell
* config/nvptx/malloc.asm: Delete. * config/nvptx/realloc.c: Delete. * config/nvptx/crt0.s: Delete. * config/nvptx/crt0.c: New. * t-nvptx: Update. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236775 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-23 gcc/Cesar Philippidis
* config/nvptx/nvptx.md (sincossf3): New pattern. gcc/testsuite/ * gcc.target/nvptx/sincos.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236592 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-09 Backport trunk r235651:Cesar Philippidis
2016-04-29 Cesar Philippidis <cesar@codesourcery.com> gcc/c-family/ PR middle-end/70626 * c-common.h (c_oacc_split_loop_clauses): Add boolean argument. * c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate reduction clauses in acc parallel loops. gcc/c/ PR middle-end/70626 * c-parser.c (c_parser_oacc_loop): Don't augment mask with OACC_LOOP_CLAUSE_MASK. (c_parser_oacc_kernels_parallel): Update call to c_oacc_split_loop_clauses. gcc/cp/ PR middle-end/70626 * parser.c (cp_parser_oacc_loop): Don't augment mask with OACC_LOOP_CLAUSE_MASK. (cp_parser_oacc_kernels_parallel): Update call to c_oacc_split_loop_clauses. gcc/fortran/ PR middle-end/70626 * trans-openmp.c (gfc_trans_oacc_combined_directive): Duplicate the reduction clause in both parallel and loop directives. gcc/testsuite/ PR middle-end/70626 * c-c++-common/goacc/combined-reduction.c: New test. * gfortran.dg/goacc/reduction-2.f95: Add check for kernels reductions. libgomp/ PR middle-end/70626 * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test. * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test. * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236049 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-09 Backport trunk r235780:Cesar Philippidis
2016-05-02 Cesar Philippidis <cesar@codesourcery.com> gcc/c-family/ * c-common.h (enum c_omp_region_type): Define. gcc/c/ * c-parser.c (c_parser_oacc_all_clauses): Update call to c_finish_omp_clauses. (c_parser_omp_all_clauses): Likewise. (c_parser_oacc_cache): Likewise. (c_parser_oacc_loop): Likewise. (omp_split_clauses): Likewise. (c_parser_omp_declare_target): Likewise. (c_parser_cilk_all_clauses): Likewise. (c_parser_cilk_for): Likewise. * c-typeck.c (c_finish_omp_clauses): Replace bool arguments is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort. gcc/cp/ * cp-tree.h (finish_omp_clauses): Update prototype. * parser.c (cp_parser_oacc_all_clauses): Update call to finish_omp_clauses. (cp_parser_omp_all_clauses): Likewise. (cp_parser_omp_for_loop): Likewise. (cp_omp_split_clauses): Likewise. (cp_parser_oacc_cache): Likewise. (cp_parser_oacc_loop): Likewise. (cp_parser_omp_declare_target): (cp_parser_cilk_simd_all_clauses): Likewise. (cp_parser_cilk_for): Likewise. * pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd arguments with enum c_omp_region_type ort. (tsubst_omp_clauses): Update calls to finish_omp_clauses. (tsubst_omp_attribute): Update calls to tsubst_omp_clauses. (tsubst_omp_for_iterator): Update calls to finish_omp_clauses. (tsubst_expr): Update calls to tsubst_omp_clauses. * semantics.c (finish_omp_clauses): Replace bool arguments allow_fields, declare_simd, and is_cilk with bitmask ort. (finish_omp_for): Update call to finish_omp_clauses. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236048 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-09 Backport trunk r235290:Cesar Philippidis
2016-04-20 Ilya Verbin <ilya.verbin@intel.com> gcc/c-family/ PR c++/69363 * c-cilkplus.c (c_finish_cilk_clauses): Remove function. * c-common.h (c_finish_cilk_clauses): Remove declaration. gcc/c/ PR c++/69363 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses instead of c_finish_cilk_clauses. * c-tree.h (c_finish_omp_clauses): Add new default argument. * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow floating-point variables in the linear clause for Cilk Plus. gcc/cp/ PR c++/69363 * cp-tree.h (finish_omp_clauses): Add new default argument. * parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses instead of c_finish_cilk_clauses. * semantics.c (finish_omp_clauses): Add new argument. Allow floating-point variables in the linear clause for Cilk Plus. gcc/testsuite/ PR c++/69363 * c-c++-common/cilk-plus/PS/clauses3.c: Adjust dg-error string. * c-c++-common/cilk-plus/PS/clauses4.c: New test. * c-c++-common/cilk-plus/PS/pr69363.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@236047 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-06 gcc/Nathan Sidwell
* omp-low.c (lower_oacc_head_mark): Ensure 2 levels for auto loops. (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but vector partitioning to outer loops. Assign 2 partitions to loops when available. (oacc_loop_partition): Adjust oacc_loop_auto_partitions call. gcc/testsuite/ * c-c++-common/goacc/loop-auto-1.c: Adjust and add additionnal case. libgomp/ * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and add additional case. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@235979 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-05 * gimple.c (gimple_call_same_target_p): Unique functions are eq.Nathan Sidwell
* tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq equality first. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@235927 138bc75d-0d04-0410-961f-82ee72b054a4
2016-05-02 * omp-low.c (lower_oacc_head_tail): Assert there is at least oneNathan Sidwell
marker. (oacc_loop_process): Check mask for loop termination. (oacc_loop_auto_part): Remove code duplicated in merge. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@235774 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-21libgomp nvptx plugin: make cuMemFreeHost error non-fatalThomas Schwinge
Backport trunk r235339: libgomp/ 2016-04-21 Alexander Monakov <amonakov@ispras.ru> * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error non-fatal. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@235345 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-19svn merge -r 234575:235033 svn+ssh://gcc.gnu.org/svn/gcc/trunkThomas Schwinge
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@235188 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-15 PR c++/70594Jason Merrill
* constexpr.c (constexpr_call_table): Preserve in GC. (struct fundef_copy, struct fundef_copies_table_t): Delete. (fundef_copies_table): Preserve in GC. Change to pointer to tree->tree hash. (maybe_initialize_fundef_copies_table): Adjust. (get_fundef_copy): Return a TREE_LIST. Use non-inserting search. (save_fundef_copy): Adjust for a TREE_LIST. (cxx_eval_call_expression): Adjust for a fundef_copy TREE_LIST. (fini_constexpr): New. * cp-tree.h (fini_constexpr): Declare. * decl2.c (c_parse_final_cleanups): Call fini_constexpr. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@235033 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-15 PR c/70671Marek Polacek
* c-typeck.c (build_unary_op): Pass location down to error and warning call. * gcc.dg/bitfld-22.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@235032 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-15config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.Alexander Monakov
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@235031 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-15[ARM][doc] Document deprecation of pre-ARMv4T architecture revisionsKyrylo Tkachov
* doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T architecture revisions. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@235029 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-15i386: Don't convert stack operations to pushes if using a redzone.Bernd Schmidt
* config/i386/i386-protos.h (ix86_using_red_zone): Declare. * config/i386/i386.c (ix86_using_red_zone): No longer static. * config/i386/i386.md (stack decrement to push peepholes): Guard with !x86_using_red_zone (). testsuite/ * gcc.target/i386/pr46470.c: Add -mno-red-zone to dg-options for x86_64. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@235028 138bc75d-0d04-0410-961f-82ee72b054a4
2016-04-15 PR c/70651Marek Polacek
* c-common.c (build_va_arg): Change two asserts into errors and return error_mark_node. * c-c++-common/pr70651.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@235027 138bc75d-0d04-0410-961f-82ee72b054a4