aboutsummaryrefslogtreecommitdiff
path: root/libgomp/ChangeLog
AgeCommit message (Collapse)AuthorFilesLines
2017-10-17Restore "dg-do run" directives for libgomp.oacc-fortran/declare-*.f90Thomas Schwinge1-0/+9
libgomp/ * testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do run" directive. * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise. * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise. * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise. From-SVN: r253808
2017-10-16Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devicesTom de Vries1-0/+14
2017-10-16 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require openacc_nvidia_accel_selected. * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same. * testsuite/libgomp.oacc-fortran/declare-2.f90: Same. * testsuite/libgomp.oacc-fortran/declare-4.f90: Same * testsuite/libgomp.oacc-fortran/declare-5.f90: Same. * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require openacc_nvidia_accel_selected. Skip for shared memory device. * testsuite/libgomp.oacc-fortran/declare-1.f90: Same. * testsuite/libgomp.oacc-fortran/declare-3.f90: Same. From-SVN: r253779
2017-10-09[PR 82416] Do not extend operands to at least 32 bitsMartin Jambor1-0/+5
2017-10-09 Martin Jambor <mjambor@suse.cz> PR hsa/82416 gcc/ * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit. * hsa-gen.c (hsa_extend_inttype_to_32bit): New function. (hsa_type_for_scalar_tree_type): Use it. Always force min32int for COMPLEX types. (hsa_fixup_mov_insn_type): New function. (hsa_op_with_type::get_in_type): Use it. (hsa_build_append_simple_mov): Likewise. Allow sub-32bit immediates in an assert. (hsa_op_with_type::extend_int_to_32bit): New method. (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary types. Convert to dest type if necessary. (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary. (reg_for_gimple_ssa): Pass false as min32int to hsa_type_for_scalar_tree_type. (gen_hsa_addr): Fixup type when creating addresable temporary. (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary. (gen_hsa_unary_operation): Extend operands and convert to dest type if necessary. Call hsa_fixup_mov_insn_type. (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type, extend operands and convert to dest type if necessary. (gen_hsa_insns_for_operation_assignment): Extend operands and convert to dest type if necessary. (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest if conversion nt necessary and size matches. (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert to dest type if necessary. (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type. (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if necessary. (gen_hsa_clrsb): Likewise. (gen_hsa_ffs): Likewise. (gen_hsa_divmod): Extend operands and convert to dest type if necessary. (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type. libgomp/ * testsuite/libgomp.hsa.c/pr82416.c: New test. From-SVN: r253538
2017-10-07Fix libgomp.oacc-fortran/{firstprivate-1,parallel-reduction}.f90 for ↵Tom de Vries1-0/+7
non-nvidia devices 2017-10-07 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate): Remove acc_device_nvidia references. * testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction): Same. From-SVN: r253507
2017-10-05Fix libgomp.oacc-c-c++-common/{loop-red-g-1,routine-g-1}.c for non-nvidia ↵Tom de Vries1-0/+6
devices 2017-10-05 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove vector_length(32) clause from acc parallel directive. * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same. From-SVN: r253439
2017-10-04Fix openacc float reduction testcasesTom de Vries1-0/+10
2017-10-04 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c (main): Reduce sum of arr elements. Assert that hres is exactly representable in 32-bit floating point. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c (main): Reduce sum of arr elements. Assert that hres and hmres are exactly representable in 32-bit floating point. * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same. From-SVN: r253398
2017-09-28Remove superfluous -fopenmp from libgomp testcasesTom de Vries1-0/+30
Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> 2017-09-28 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option setting. * testsuite/libgomp.c++/pr69393.C: Same. * testsuite/libgomp.c++/taskloop-1.C: Same. * testsuite/libgomp.c++/taskloop-3.C: Same. * testsuite/libgomp.c++/taskloop-4.C: Same. * testsuite/libgomp.c/for-4.c: Same. * testsuite/libgomp.c/pr66199-3.c: Same. * testsuite/libgomp.c/pr66199-4.c: Same. * testsuite/libgomp.c/pr66199-6.c: Same. * testsuite/libgomp.c/taskloop-1.c: Same. * testsuite/libgomp.c/taskloop-3.c: Same. * testsuite/libgomp.c/taskloop-4.c: Same. * testsuite/libgomp.fortran/aligned1.f03: Same. * testsuite/libgomp.fortran/condinc1.f: Same. * testsuite/libgomp.fortran/condinc3.f90: Same. * testsuite/libgomp.fortran/crayptr1.f90: Same. * testsuite/libgomp.fortran/crayptr2.f90: Same. * testsuite/libgomp.fortran/crayptr3.f90: Same. * testsuite/libgomp.fortran/omp_cond1.f: Same. * testsuite/libgomp.fortran/omp_cond3.F90: Same. * testsuite/libgomp.fortran/pr66199-1.f90: Same. * testsuite/libgomp.fortran/pr66199-2.f90: Same. * testsuite/libgomp.fortran/recursion1.f90: Same. * testsuite/libgomp.fortran/target2.f90: Same. * testsuite/libgomp.fortran/target5.f90: Same. * testsuite/libgomp.fortran/task3.f90: Same. From-SVN: r253250
2017-09-28Fix libgomp.oacc-c-c++-common/loop-g-{1,2}.c for non-nvidia devicesTom de Vries1-0/+6
2017-09-28 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c (main): Remove vector_length(32) clause from acc parallel directive. * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c (main): Same. From-SVN: r253249
2017-09-27Fix libgomp.oacc-c-c++-common/parallel-reduction.c for non-nvidia devicesTom de Vries1-0/+5
2017-09-27 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main): Remove acc_device_nvidia references. From-SVN: r253228
2017-09-16Fix condition folding in c_parser_omp_for_loopTom de Vries1-0/+5
2017-09-16 Tom de Vries <tom@codesourcery.com> PR c/81875 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not cond itself. * testsuite/libgomp.c-c++-common/pr81875.c: New test. From-SVN: r252873
2017-09-14Introduce libgomp/testsuite/libgomp.c-c++-commonTom de Vries1-0/+10
2017-09-14 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove. * testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ... * testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here. * testsuite/libgomp.c/c.exp: Include test-cases from libgomp.c-c++-common. * testsuite/libgomp.c++/c++.exp: Same. Force c++-mode compilation of .c files. From-SVN: r252775
2017-09-14re PR c++/81314 (Undefined reference to a function with -fopenmp)Jakub Jelinek1-0/+5
PR c++/81314 * cp-gimplify.c (omp_var_to_track): Look through references. (omp_cxx_notice_variable): Likewise. * testsuite/libgomp.c++/pr81314.C: New test. From-SVN: r252770
2017-09-08libgomp.texi (Top): www.openacc.org now uses https.Gerald Pfeifer1-0/+43
* libgomp.texi (Top): www.openacc.org now uses https. (Enabling OpenACC): Ditto. (acc_get_num_devices): Ditto. (acc_set_device_type): Ditto. (acc_get_device_type): Ditto. (acc_set_device_num): Ditto. (acc_get_device_num): Ditto. (acc_async_test): Ditto. (acc_async_test_all): Ditto. (acc_wait): Ditto. (acc_wait_all): Ditto. (acc_wait_all_async): Ditto. (acc_wait_async): Ditto. (acc_init): Ditto. (acc_shutdown): Ditto. (acc_on_device): Ditto. (acc_malloc): Ditto. (acc_free): Ditto. (acc_copyin): Ditto. (acc_present_or_copyin): Ditto. (acc_create): Ditto. (acc_present_or_create): Ditto. (acc_copyout): Ditto. (acc_delete): Ditto. (acc_update_device): Ditto. (acc_update_self): Ditto. (acc_map_data): Ditto. (acc_unmap_data): Ditto. (acc_deviceptr): Ditto. (acc_hostptr): Ditto. (acc_is_present): Ditto. (acc_memcpy_to_device): Ditto. (acc_memcpy_from_device): Ditto. (acc_get_current_cuda_device): Ditto. (acc_get_current_cuda_context): Ditto. (acc_get_cuda_stream): Ditto. (acc_set_cuda_stream): Ditto. (ACC_DEVICE_TYPE): Ditto. (ACC_DEVICE_NUM): Ditto. (OpenACC Library Interoperability): Ditto. From-SVN: r251888
2017-08-10re PR c/81687 (Compiler drops label in OpenMP region)Jakub Jelinek1-0/+6
PR c/81687 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL LABEL_DECLs. * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL or DECL_NONLOCAL labels. (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL or DECL_NONLOCAL labels here. * testsuite/libgomp.c/pr81687-1.c: New test. * testsuite/libgomp.c/pr81687-2.c: New test. From-SVN: r251019
2017-08-07re PR c/69389 (bit field incompatible with OpenMP atomic update)Jakub Jelinek1-0/+6
PR c/69389 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and BIT_FIELD_REF. * c-omp.c (c_finish_omp_atomic): Handle atomics on bitfields. * testsuite/libgomp.c/pr69389.c: New test. * testsuite/libgomp.c++/pr69389.C: New test. From-SVN: r250929
2017-08-07Fix diff_type in expand_oacc_for char iter_typeTom de Vries1-0/+6
2017-08-07 Tom de Vries <tom@codesourcery.com> PR middle-end/78266 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough. * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail. From-SVN: r250925
2017-07-27re PR c/45784 (gcc OpenMP - error: invalid controlling predicate)Jakub Jelinek1-0/+6
PR c/45784 * c-omp.c (c_finish_omp_for): If the condition is wrapped in rhs of COMPOUND_EXPR(s), skip them and readd their lhs into new COMPOUND_EXPRs around the rhs of the comparison. * testsuite/libgomp.c/pr45784.c: New test. * testsuite/libgomp.c++/pr45784.C: New test. From-SVN: r250635
2017-07-19Add v2di support for nvptxTom de Vries1-0/+4
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: Add V2DImode. * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. (nvptx_output_mov_insn): Handle lack of mov.b128. (nvptx_print_operand): Handle 'H' and 'L' codes. (nvptx_vector_mode_supported): Allow V2DImode. (nvptx_preferred_simd_mode): New function. (nvptx_data_alignment): New function. (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to nvptx_preferred_simd_mode. * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from 64 to 128 bits. (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. * config/nvptx/nvptx.md (VECIM): Add V2DI. * gcc.target/nvptx/decl-init.c: Update alignment. * gcc.target/nvptx/slp-2-run.c: New test. * gcc.target/nvptx/slp-2.c: New test. * gcc.target/nvptx/v2di.c: New test. * testsuite/libgomp.oacc-c/vec.c: New test. From-SVN: r250341
2017-07-03Fix secure_getenv.h include in plugin-hsa.cTom de Vries1-0/+4
2017-07-03 Tom de Vries <tom@codesourcery.com> * plugin/plugin-hsa.c: Fix secure_getenv.h include. From-SVN: r249918
2017-06-27Show value of GOMP_OPENACC_DIM in libgomp nvptx pluginTom de Vries1-0/+5
2017-06-27 Tom de Vries <tom@codesourcery.com> * plugin/plugin-nvptx.c (notify_var): New function. (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM. From-SVN: r249695
2017-06-27Use secure_getenv for GOMP_DEBUGTom de Vries1-0/+12
2017-06-27 Tom de Vries <tom@codesourcery.com> * env.c (parse_unsigned_long_1): Factor out of ... (parse_unsigned_long): ... here. (parse_int_1): Factor out of ... (parse_int): ... here. (parse_int_secure): New function. (initialize_env): Use parse_int_secure for GOMP_DEBUG. * secure_getenv.h: Factor out of ... * plugin/plugin-hsa.c: ... here. * testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test. From-SVN: r249694
2017-06-21re PR c++/81130 (ICE OpenMP shared clause in gimplify_var_or_parm_decl, at ↵Jakub Jelinek1-0/+5
gimplify.c:2584) PR c++/81130 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types with ctors/dtors if GOVD_SHARED is set. * testsuite/libgomp.c++/pr81130.C: New test. From-SVN: r249445
2017-06-17Get rid of dg-skip-if etc. default argsRainer Orth1-0/+7
libstdc++-v3: * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if default args. libgomp: * testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if default args. * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove dg-xfail-run-if default args. gcc/testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if default args. From-SVN: r249339
2017-06-02invoke.texi: Document the -Wsizeof-pointer-div warning.Bernd Edlinger1-0/+5
gcc: 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * doc/invoke.texi: Document the -Wsizeof-pointer-div warning. gcc/c-family: 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * c.opt (Wsizeof-pointer-div): New warning option. gcc/c: 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-parser.c (c_parser_binary_expression): Implement the -Wsizeof_pointer_div warning. (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code from a parenthesized expression. (c_parser_expr_list): Use c_last_sizeof_loc. * c-tree.h (c_last_sizeof_loc): New external. * c-typeck.c (c_last_sizeof_loc): New variable. (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc. gcc/cp: 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * typeck.c (cp_build_binary_op): Implement the -Wsizeof_pointer_div warning. gcc/testsuite: 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-c++-common/Wsizeof-pointer-div.c: New test. * gcc.dg/Wsizeof-pointer-memaccess1.c: Add test cases with parens. * gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Likewise. * gcc.target/i386/sse-init-v4hi-1.c: Fix test case. * gcc.target/i386/sse-init-v4sf-1.c: Likewise. * gcc.target/i386/sse-set-ps-1.c: Likewise. * gcc.target/i386/sse2-init-v16qi-1.c: Likewise. * gcc.target/i386/sse2-init-v2di-1.c: Likewise. * gcc.target/i386/sse2-init-v4si-1.c: Likewise. * gcc.target/i386/sse2-init-v8hi-1.c: Likewise. * gcc.target/i386/sse2-set-epi32-1.c: Likewise. * gcc.target/i386/sse2-set-epi64x-1.c: Likewise. * gcc.target/i386/sse4_1-init-v16qi-1.c: Likewise. * gcc.target/i386/sse4_1-init-v2di-1.c: Likewise. * gcc.target/i386/sse4_1-init-v4sf-1.c: Likewise. * gcc.target/i386/sse4_1-init-v4si-1.c: Likewise. * gcc.target/i386/sse4_1-set-epi32-1.c: Likewise. * gcc.target/i386/sse4_1-set-epi64x-1.c: Likewise. * gcc.target/i386/sse4_1-set-ps-1.c: Likewise. * libgomp.c/pr39591-2.c: Likewise. * libgomp.c/pr39591-3.c: Likewise. From-SVN: r248811
2017-05-30re PR libgomp/80822 (libgomp incorrect affinity when OMP_PLACES=threads)Jakub Jelinek1-0/+8
PR libgomp/80822 * config/linux/affinity.c (gomp_affinity_init_level_1): New function. (gomp_affinity_init_level): Use it. Always analyze the core and thread sibling lists, depending on level just pick up what CPUs to put together into a place vs. whether add multiple ordered places. From-SVN: r248683
2017-05-24OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_allThomas Schwinge1-0/+12
libgomp/ * openacc.h (acc_async_wait, acc_async_wait_all): New prototypes. * libgomp.map (OACC_2.0.1): Add these. * oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases for "acc_wait", and "acc_wait_all", respectively. * openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces for "acc_wait", and "acc_wait_all", respectively. * openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise. * libgomp.texi (acc_wait, acc_wait_all): Update. * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update. * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file. * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise. From-SVN: r248413
2017-05-24Fortran OpenACC "openacc_lib.h": acc_pcopyin, acc_pcreateThomas Schwinge1-0/+7
libgomp/ * openacc_lib.h (acc_pcopyin, acc_pcreate): Route to acc_present_or_copyin and acc_present_or_create procedures, respectively. * testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and generally different variants of OpenACC Runtime Library functions. * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise. From-SVN: r248412
2017-05-24Translate libgomp.oacc-c-c++-common/lib-32.c into FortranThomas Schwinge1-0/+3
libgomp/ * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file. * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise. From-SVN: r248411
2017-05-24C/C++ OpenACC: acc_pcopyin, acc_pcreateThomas Schwinge1-0/+14
libgomp/ * openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead of preprocessor definitions. * libgomp.h (strong_alias): Guard by "#ifdef HAVE_ATTRIBUTE_ALIAS". * oacc-mem.c: Provide "acc_pcreate" as alias for "acc_present_or_create", and "acc_pcopyin" as alias for "acc_present_or_copyin". * libgomp.map: New version "OACC_2.0.1". (OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate". * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging its content into... * testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file. Extend testing. From-SVN: r248410
2017-05-24libgomp nvptx plugin: Debugging output when disabling nvptx offloadingThomas Schwinge1-0/+5
libgomp/ * plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output when disabling nvptx offloading. From-SVN: r248400
2017-05-23OpenACC 2.5 kernels construct: num_gangs, num_workers, vector_length clausesThomas Schwinge1-0/+4
gcc/c/ * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS", "VECTOR_LENGTH". gcc/cp/ * parser.c (OACC_KERNELS_CLAUSE_MASK): Add "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS", "VECTOR_LENGTH". gcc/fortran/ * openmp.c (OACC_KERNELS_CLAUSES): Add "OMP_CLAUSE_NUM_GANGS", "OMP_CLAUSE_NUM_WORKERS", "OMP_CLAUSE_VECTOR_LENGTH". gcc/ * omp-offload.c (execute_oacc_device_lower): Remove the parallelism dimensions function attributes for unparallelized OpenACC kernels constructs. gcc/testsuite/ * c-c++-common/goacc/parallel-dims-1.c: Update. * c-c++-common/goacc/parallel-dims-2.c: Likewise. * c-c++-common/goacc/routine-1.c: Likewise. * c-c++-common/goacc/uninit-dim-clause.c: Likewise. * g++.dg/goacc/template.C: Likewise. * gfortran.dg/goacc/kernels-tree.f95: Likewise. * gfortran.dg/goacc/routine-3.f90: Likewise. * gfortran.dg/goacc/sie.f95: Likewise. * gfortran.dg/goacc/uninit-dim-clause.f95: Likewise. libgomp/ * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise. From-SVN: r248370
2017-05-23Runtime checking of OpenACC parallelism dimensions clausesThomas Schwinge1-0/+11
libgomp/ * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite. * testsuite/lib/libgomp.exp (check_effective_target_openacc_nvidia_accel_configured): New proc. * testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c) (check_effective_target_c++): New procs. * testsuite/libgomp.oacc-c/c.exp (check_effective_target_c) (check_effective_target_c++): Likewise. From-SVN: r248358
2017-05-22re PR middle-end/80809 (Multi-free error for variable size array used within ↵Jakub Jelinek1-0/+4
OpenMP task) PR middle-end/80809 * omp-low.c (finish_taskreg_remap): New function. (finish_taskreg_scan): If unit size of ctx->record_type is non-constant, unshare the size expression and replace decls in it with possible outer var refs. * testsuite/libgomp.c/pr80809-2.c: New test. * testsuite/libgomp.c/pr80809-3.c: New test. From-SVN: r248346
2017-05-22re PR middle-end/80809 (Multi-free error for variable size array used within ↵Jakub Jelinek1-0/+3
OpenMP task) PR middle-end/80809 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use GOVD_SHARED rather than GOVD_PRIVATE with it. (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE. * testsuite/libgomp.c/pr80809-1.c: New test. From-SVN: r248345
2017-05-22re PR middle-end/80853 (OpenMP ICE in build_outer_var_ref with array reduction)Jakub Jelinek1-0/+5
PR middle-end/80853 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref for pointer bases of array section reductions. * testsuite/libgomp.c/pr80853.c: New test. From-SVN: r248344
2017-05-19OpenACC 2.5 default (present) clauseThomas Schwinge1-0/+6
gcc/c/ * c-parser.c (c_parser_omp_clause_default): Handle "OMP_CLAUSE_DEFAULT_PRESENT". gcc/cp/ * parser.c (cp_parser_omp_clause_default): Handle "OMP_CLAUSE_DEFAULT_PRESENT". gcc/fortran/ * gfortran.h (enum gfc_omp_default_sharing): Add "OMP_DEFAULT_PRESENT". * dump-parse-tree.c (show_omp_clauses): Handle it. * openmp.c (gfc_match_omp_clauses): Likewise. * trans-openmp.c (gfc_trans_omp_clauses): Likewise. gcc/ * tree-core.h (enum omp_clause_default_kind): Add "OMP_CLAUSE_DEFAULT_PRESENT". * tree-pretty-print.c (dump_omp_clause): Handle it. * gimplify.c (enum gimplify_omp_var_data): Add "GOVD_MAP_FORCE_PRESENT". (gimplify_adjust_omp_clauses_1): Map it to "GOMP_MAP_FORCE_PRESENT". (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT". gcc/testsuite/ * c-c++-common/goacc/default-1.c: Update. * c-c++-common/goacc/default-2.c: Likewise. * c-c++-common/goacc/default-4.c: Likewise. * gfortran.dg/goacc/default-1.f95: Likewise. * gfortran.dg/goacc/default-4.f: Likewise. * c-c++-common/goacc/default-5.c: New file. * gfortran.dg/goacc/default-5.f: Likewise. libgomp/ * testsuite/libgomp.oacc-c++/template-reduction.C: Update. * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update. * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise. From-SVN: r248280
2017-05-19libgomp hsa plugin: debug output for HSA runtime library loading failureThomas Schwinge1-0/+5
libgomp/ * plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions): Debug output for failure. From-SVN: r248277
2017-05-12Load new scanlang.expRainer Orth1-0/+4
libitm: * testsuite/lib/libitm.exp: Load scanlang.exp. libgomp: * testsuite/lib/libgomp.exp: Load scanlang.exp. libatomic: * testsuite/lib/libatomic.exp: Load scanlang.exp. From-SVN: r247959
2017-04-27re PR bootstrap/80531 (RC1 bootstrap comparison failure)Jakub Jelinek1-0/+6
PR bootstrap/80531 * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid bootstrap compare failures. From-SVN: r247350
2017-04-20omp-low: fix lastprivate/linear lowering for SIMTAlexander Monakov1-0/+4
gcc/ * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and lastprivate clauses in SIMT case. libgomp/ * testsuite/libgomp.c/target-36.c: New testcase. From-SVN: r247029
2017-04-13plugin-nvptx.c (cuda_lib_inited): Use signed char type instead of char.Jakub Jelinek1-0/+5
* plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type instead of char. From-SVN: r246918
2017-04-11re PR libgomp/80394 (Empty OpenMP task is wrongly removed when optimizing)Jakub Jelinek1-0/+5
PR libgomp/80394 * omp-low.c (scan_omp_task): Don't optimize away empty tasks if they have any depend clauses. * testsuite/libgomp.c/pr80394.c: New test. From-SVN: r246849
2017-04-04re PR libgomp/79876 (FAIL: libgomp.fortran/strassen.f90 -O execution test ↵Jakub Jelinek1-0/+11
on x86_64-apple-darwin16) PR libgomp/79876 * config/posix/thread-stacksize.h: New file. * config/darwin/thread-stacksize.h: New file. * config/nvptx/thread-stacksize.h: New file. * env.c: Include thread-stacksize.h. (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE instead of 0. Call pthread_attr_setstacksize even if GOMP_DEFAULT_STACKSIZE is non-zero. From-SVN: r246675
2017-03-30* env.c (initialize_env): Initialize stacksize to 0.Jakub Jelinek1-0/+4
From-SVN: r246598
2017-03-22re PR c++/80029 (valgrind error in new_omp_context(omp_region_type) ↵Cesar Philippidis1-0/+5
(gimplify.c:400)) PR c++/80029 gcc/ * gimplify.c (is_oacc_declared): New function. (oacc_default_clause): Use it to set default flags for acc declared variables inside parallel regions. (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc declared variables. (gimplify_oacc_declare): Gimplify the declare clauses. Add the declare attribute to any decl as necessary. libgomp/ * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test. From-SVN: r246381
2017-03-08re PR c/79940 (OpenMP pragma - internal compiler error with taskloop)Jakub Jelinek1-0/+5
PR c/79940 * gimplify.c (gimplify_omp_for): Replace index var in outer taskloop statement with an artificial variable and add OMP_CLAUSE_PRIVATE clause for it. * testsuite/libgomp.c/pr79940.c: New test. From-SVN: r245980
2017-02-15Enable libgomp.c/pr48591.c on __float128 targetsRainer Orth1-0/+6
* testsuite/libgomp.c/pr48591.c: Enable on all __float128 targets. Add __float128 options. From-SVN: r245486
2017-02-11loop-dim-default.c: Remove hppa*-*-* dg-skip-if directive.John David Anglin1-0/+5
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove hppa*-*-* dg-skip-if directive. From-SVN: r245365
2017-02-09loop-dim-default.c: Move dg-skip-if directive into a comment.Jakub Jelinek1-0/+5
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move dg-skip-if directive into a comment. From-SVN: r245301
2017-02-09gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE.Chung-Lin Tang1-0/+11
2017-02-09 Nathan Sidwell <nathan@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Joseph Myers <joseph@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE. (gimplify_adjust_omp_clauses): Don't delete TILE. (gimplify_omp_for): Deal with TILE. * internal-fn.c (expand_GOACC_TILE): New function. * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative. (GOACC_TILE): New. * omp-expand.c (struct oacc_collapse): Add tile and outer fields. (expand_oacc_collapse_init): Add LOC paramter. Initialize tile element fields. (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling, avoid DIV for outermost collapse var. (expand_oacc_for): Insert tile element loop as needed. Adjust. Remove out of date comments, fix whitespace. * omp-general.c (omp_extract_for_data): Deal with tiling. * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag, adjust OLF_DIM_BASE value. (struct omp_for_data): Add tiling field. * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE. (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels for auto loops. Remove default auto determining, moved to oacc_loop_fixed_partitions. * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call stmts, add e_mask field. (oacc_dim_call): New function, abstracted out from oacc_thread_numbers. (oacc_thread_numbers): Use oacc_dim_call. (oacc_xform_tile): New. (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector. (finish_oacc_loop): Adjust for ifns vector. (oacc_loop_discover_walk): Append loop abstraction sites to list, add case for GOACC_TILE fns. (oacc_loop_xform_loop): Delete. (oacc_loop_process): Iterate over call list directly, and add handling for GOACC_TILE fns. (oacc_loop_fixed_partitions): Determine default auto, deal with TILE, dump partitioning. (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but vector partitioning to outer loops. Assign 2 partitions to loops when available. Add TILE handling. (oacc_loop_partition): Adjust oacc_loop_auto_partitions call. (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs. * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE. * tree.c (omp_clause_num_ops): Adjust TILE ops. * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New. gcc/c/ * c-parser.c (c_parser_omp_clause_collapse): Disallow tile. (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and semantic checking. * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs. gcc/cp/ * parser.c (cp_parser_oacc_clause_tile): Disallow collapse. Fix parsing. Parse constant expression. Remove semantic checking. (cp_parser_omp_clause_collapse): Disallow tile. (cp_parser_omp_for_loop): Deal with tile clause. Don't emit a parse error about missing for after already emitting one. Use more conventional for idiom for unbounded loop. * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE. * semantics.c (finish_omp_clauses): Correct TILE semantic check. (finish_omp_for): Deal with tile clause. gcc/fortran/ * openmp.c (resolve_omp_clauses): Error on directives containing both tile and collapse clauses. (resolve_oacc_loop_blocks): Represent '*' tile arguments as zero. * trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like collapsed loops. gcc/testsuite/ * c-c++-common/goacc/combined-directives.c: Remove xfail. * c-c++-common/goacc/loop-auto-1.c: Adjust and add additional case. * c-c++-common/goacc/loop-auto-2.c: New. * c-c++-common/goacc/tile.c: Include stdbool, fix expected errors. * c-c++-common/goacc/tile-2.c: New. * g++.dg/goacc/template.C: Test tile subst. Adjust erroneous uses. * g++.dg/goacc/tile-1.C: New, check tile subst. * gcc.dg/goacc/loop-processing-1.c: Adjust dg-final pattern. * gfortran.dg/goacc/combined-directives.f90: Remove xfail. * gfortran.dg/goacc/tile-1.f90: New test. * gfortran.dg/goacc/tile-2.f90: New test. * gfortran.dg/goacc/tile-lowering.f95: New test. libgomp/ * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New. * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and add additional case. * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under "openacc_nvidia_accel_selected". * libgomp.oacc-fortran/nested-function-1.f90 (test2): Add num_workers(8) clause. From-SVN: r245300