diff options
Diffstat (limited to 'libgomp/ChangeLog')
-rw-r--r-- | libgomp/ChangeLog | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 74a135cd55b..df4e9370f81 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,317 @@ +2015-10-13 Jakub Jelinek <jakub@redhat.com> + Aldy Hernandez <aldyh@redhat.com> + Ilya Verbin <ilya.verbin@intel.com> + + * config/linux/affinity.c (omp_get_place_num_procs, + omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions. + * config/linux/doacross.h: New file. + * config/posix/affinity.c (omp_get_place_num_procs, + omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions. + * config/posix/doacross.h: New file. + * env.c: Include gomp-constants.h. + (struct gomp_task_icv): Rename run_sched_modifier to + run_sched_chunk_size. + (gomp_max_task_priority_var): New variable. + (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size. + (handle_omp_display_env): Change _OPENMP value from 201307 to + 201511. Print OMP_MAX_TASK_PRIORITY. + (initialize_env): Parse OMP_MAX_TASK_PRIORITY. + (omp_set_schedule, omp_get_schedule): Rename modifier argument to + chunk_size and run_sched_modifier to run_sched_chunk_size. + (omp_get_max_task_priority, omp_get_initial_device, + omp_get_num_places, omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums): New functions. + * fortran.c (omp_set_schedule_, omp_set_schedule_8_, + omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument + to chunk_size. + (omp_get_num_places_, omp_get_place_num_procs_, + omp_get_place_num_procs_8_, omp_get_place_proc_ids_, + omp_get_place_proc_ids_8_, omp_get_place_num_, + omp_get_partition_num_places_, omp_get_partition_place_nums_, + omp_get_partition_place_nums_8_, omp_get_initial_device_, + omp_get_max_task_priority_): New functions. + * libgomp_g.h (GOMP_loop_doacross_static_start, + GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start, + GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start, + GOMP_loop_ull_doacross_dynamic_start, + GOMP_loop_ull_doacross_guided_start, + GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post, + GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait, + GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41, + GOMP_target_data_41, GOMP_target_update_41, + GOMP_target_enter_exit_data): New prototypes. + (GOMP_task): Add prototype argument. + * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined. + (struct gomp_doacross_work_share): New type. + (struct gomp_work_share): Add doacross field. + (struct gomp_task_icv): Rename run_sched_modifier to + run_sched_chunk_size. + (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to + GOMP_TASK_UNDEFERRED. Add comments. + (struct gomp_task_depend_entry): Add comments. + (struct gomp_task): Likewise. + (struct gomp_taskgroup): Likewise. + (struct gomp_target_task): New type. + (struct gomp_team): Add comment. + (gomp_get_place_proc_ids_8, gomp_doacross_init, + gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies, + gomp_create_target_task, gomp_target_task_fn): New prototypes. + (struct target_var_desc): New type. + (struct target_mem_desc): Adjust comment. Use struct + target_var_desc instead of splay_tree_key for list. + (REFCOUNT_INFINITY): Define. + (struct splay_tree_key_s): Remove copy_from field. + (struct gomp_device_descr): Add dev2dev_func field. + (enum gomp_map_vars_kind): New enum. + (gomp_map_vars): Add one argument. + * libgomp.map (OMP_4.5): Export omp_get_max_task_priority, + omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_, + omp_get_place_num_procs, omp_get_place_num_procs_, + omp_get_place_num_procs_8_, omp_get_place_proc_ids, + omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num, + omp_get_place_num_, omp_get_partition_num_places, + omp_get_partition_num_places_, omp_get_partition_place_nums, + omp_get_partition_place_nums_, omp_get_partition_place_nums_8_, + omp_get_initial_device, omp_get_initial_device_, omp_target_alloc, + omp_target_free, omp_target_is_present, omp_target_memcpy, + omp_target_memcpy_rect, omp_target_associate_ptr and + omp_target_disassociate_ptr. + (GOMP_4.0.2): Renamed to ... + (GOMP_4.5): ... this. Export GOMP_target_41, GOMP_target_data_41, + GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop, + GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start, + GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start, + GOMP_loop_doacross_static_start, GOMP_doacross_post, + GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start, + GOMP_loop_ull_doacross_guided_start, + GOMP_loop_ull_doacross_runtime_start, + GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and + GOMP_doacross_ull_wait. + * libgomp.texi: Document omp_get_max_task_priority. + Rename modifier argument to chunk_size for omp_set_schedule and + omp_get_schedule. Document OMP_MAX_TASK_PRIORITY env var. + * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier + to run_sched_chunk_size renaming. + (GOMP_loop_ordered_runtime_start): Likewise. + (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start, + gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start, + GOMP_parallel_loop_runtime_start): New functions. + (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier + to run_sched_chunk_size renaming. + (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start, + GOMP_loop_doacross_guided_start): New functions or aliases. + * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for + run_sched_modifier to run_sched_chunk_size renaming. + (GOMP_loop_ull_ordered_runtime_start): Likewise. + (gomp_loop_ull_doacross_static_start, + gomp_loop_ull_doacross_dynamic_start, + gomp_loop_ull_doacross_guided_start, + GOMP_loop_ull_doacross_runtime_start): New functions. + (GOMP_loop_ull_doacross_static_start, + GOMP_loop_ull_doacross_dynamic_start, + GOMP_loop_ull_doacross_guided_start): New functions or aliases. + * oacc-mem.c (acc_map_data, present_create_copy, + gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false + to gomp_map_vars. + (gomp_acc_remove_pointer): Use copy_from from target_var_desc. + * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC + instead of false to gomp_map_vars. + (GOACC_parallel_keyed): Likewise. Use copy_from from target_var_desc. + * omp.h.in (omp_lock_hint_t): New type. + (omp_init_lock_with_hint, omp_init_nest_lock_with_hint, + omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids, + omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums, omp_get_initial_device, + omp_get_max_task_priority, omp_target_alloc, omp_target_free, + omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect, + omp_target_associate_ptr, omp_target_disassociate_ptr): New + prototypes. + * omp_lib.f90.in (omp_lock_hint_kind): New parameter. + (omp_lock_hint_none, omp_lock_hint_uncontended, + omp_lock_hint_contended, omp_lock_hint_nonspeculative, + omp_lock_hint_speculative): New parameters. + (omp_init_lock_with_hint, omp_init_nest_lock_with_hint, + omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids, + omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums, omp_get_initial_device, + omp_get_max_task_priority): New interfaces. + (omp_set_schedule, omp_get_schedule): Rename modifier argument + to chunk_size. + * omp_lib.h.in (omp_lock_hint_kind): New parameter. + (omp_lock_hint_none, omp_lock_hint_uncontended, + omp_lock_hint_contended, omp_lock_hint_nonspeculative, + omp_lock_hint_speculative): New parameters. + (omp_init_lock_with_hint, omp_init_nest_lock_with_hint, + omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids, + omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums, omp_get_initial_device, + omp_get_max_task_priority): New functions and subroutines. + * ordered.c: Include stdarg.h and string.h. + (MAX_COLLAPSED_BITS): Define. + (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait, + gomp_doacross_ull_init, GOMP_doacross_ull_post, + GOMP_doacross_ull_wait): New functions. + * target.c: Include errno.h. + (resolve_device): If device is not initialized, call + gomp_init_device on it. + (gomp_map_lookup): New function. + (gomp_map_vars_existing): Add tgt_var argument, fill it in. + Don't bump refcount if REFCOUNT_INFINITY. Handle + GOMP_MAP_ALWAYS_TO_P. + (get_kind): Rename is_openacc argument to short_mapkind. + (gomp_map_pointer): Use gomp_map_lookup. + (gomp_map_fields_existing): New function. + (gomp_map_vars): Rename is_openacc argument to short_mapkind + and is_target to pragma_kind. Handle GOMP_MAP_VARS_ENTER_DATA, + handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT, + GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION. + Adjust for tgt->list changed type and copy_from living in there. + (gomp_copy_from_async): Adjust for tgt->list changed type and + copy_from living in there. + (gomp_unmap_vars): Likewise. + (gomp_update): Likewise. Rename is_openacc argument to + short_mapkind. Don't fail if object is not mapped. + (gomp_load_image_to_device): Initialize refcount to + REFCOUNT_INFINITY. + (gomp_target_fallback): New function. + (gomp_get_target_fn_addr): Likewise. + (GOMP_target): Adjust gomp_map_vars caller, use + gomp_get_target_fn_addr and gomp_target_fallback. + (GOMP_target_41): New function. + (gomp_target_data_fallback): New function. + (GOMP_target_data): Use it, adjust gomp_map_vars caller. + (GOMP_target_data_41): New function. + (GOMP_target_update): Adjust gomp_update caller. + (GOMP_target_update_41): New function. + (gomp_exit_data, GOMP_target_enter_exit_data, + gomp_target_task_fn, omp_target_alloc, omp_target_free, + omp_target_is_present, omp_target_memcpy, + omp_target_memcpy_rect_worker, omp_target_memcpy_rect, + omp_target_associate_ptr, omp_target_disassociate_ptr, + gomp_load_plugin_for_device): New functions. + * task.c: Include gomp-constants.h. Include taskloop.c + twice to get GOMP_taskloop and GOMP_taskloop_ull definitions. + (gomp_task_handle_depend): New function. + (GOMP_task): Use it. Add priority argument. Use + gomp-constant.h constants instead of hardcoded numbers. + Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED. + (gomp_create_target_task): New function. + (verify_children_queue, verify_taskgroup_queue, + verify_task_queue): New functions. + (gomp_task_run_pre): Call verify_*_queue functions. + If an upcoming tied task is about to leave the sibling or + taskgroup queues in an invalid state, adjust appropriately. + Remove taskgroup argument. Add comments. + (gomp_task_run_post_handle_dependers): Add comments. + (gomp_task_run_post_remove_parent): Likewise. + (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller. + (GOMP_taskwait): Likewise. Add comments. + (gomp_task_maybe_wait_for_dependencies): Fix scheduling + problem such that the first non parent_depends_on task does not + end up at the end of the children queue. + (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to + GOMP_TASK_UNDEFERRED. + (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller. + * taskloop.c: New file. + * testsuite/lib/libgomp.exp + (check_effective_target_offload_device_nonshared_as): New proc. + * testsuite/libgomp.c/affinity-2.c: New test. + * testsuite/libgomp.c/doacross-1.c: New test. + * testsuite/libgomp.c/doacross-2.c: New test. + * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper): + Add map clause to target. + * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise. + * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise. + * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise. + * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise. + * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt): + Likewise. + * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise. + * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise. + * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise. + * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if + not defined. Use those where needed. + * testsuite/libgomp.c/for-4.c: New test. + * testsuite/libgomp.c/for-5.c: New test. + * testsuite/libgomp.c/for-6.c: New test. + * testsuite/libgomp.c/linear-1.c: New test. + * testsuite/libgomp.c/ordered-4.c: New test. + * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause + only allowed on the loop iterator. + * testsuite/libgomp.c/pr66199-3.c: New test. + * testsuite/libgomp.c/pr66199-4.c: New test. + * testsuite/libgomp.c/reduction-7.c: New test. + * testsuite/libgomp.c/reduction-8.c: New test. + * testsuite/libgomp.c/reduction-9.c: New test. + * testsuite/libgomp.c/reduction-10.c: New test. + * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add + map(tofrom:s). + * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise. + * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed. + * testsuite/libgomp.c/target-11.c: New test. + * testsuite/libgomp.c/target-12.c: New test. + * testsuite/libgomp.c/target-13.c: New test. + * testsuite/libgomp.c/target-14.c: New test. + * testsuite/libgomp.c/target-15.c: New test. + * testsuite/libgomp.c/target-16.c: New test. + * testsuite/libgomp.c/target-17.c: New test. + * testsuite/libgomp.c/target-18.c: New test. + * testsuite/libgomp.c/target-19.c: New test. + * testsuite/libgomp.c/target-20.c: New test. + * testsuite/libgomp.c/target-21.c: New test. + * testsuite/libgomp.c/target-22.c: New test. + * testsuite/libgomp.c/target-23.c: New test. + * testsuite/libgomp.c/target-24.c: New test. + * testsuite/libgomp.c/target-25.c: New test. + * testsuite/libgomp.c/target-26.c: New test. + * testsuite/libgomp.c/target-27.c: New test. + * testsuite/libgomp.c/taskloop-1.c: New test. + * testsuite/libgomp.c/taskloop-2.c: New test. + * testsuite/libgomp.c/taskloop-3.c: New test. + * testsuite/libgomp.c/taskloop-4.c: New test. + * testsuite/libgomp.c++/ctor-13.C: New test. + * testsuite/libgomp.c++/doacross-1.C: New test. + * testsuite/libgomp.c++/examples-4/declare_target-2.C: + Replace offload_device with offload_device_nonshared_as. + * testsuite/libgomp.c++/for-12.C: New test. + * testsuite/libgomp.c++/for-13.C: New test. + * testsuite/libgomp.c++/for-14.C: New test. + * testsuite/libgomp.c++/linear-1.C: New test. + * testsuite/libgomp.c++/member-1.C: New test. + * testsuite/libgomp.c++/member-2.C: New test. + * testsuite/libgomp.c++/member-3.C: New test. + * testsuite/libgomp.c++/member-4.C: New test. + * testsuite/libgomp.c++/member-5.C: New test. + * testsuite/libgomp.c++/ordered-1.C: New test. + * testsuite/libgomp.c++/reduction-5.C: New test. + * testsuite/libgomp.c++/reduction-6.C: New test. + * testsuite/libgomp.c++/reduction-7.C: New test. + * testsuite/libgomp.c++/reduction-8.C: New test. + * testsuite/libgomp.c++/reduction-9.C: New test. + * testsuite/libgomp.c++/reduction-10.C: New test. + * testsuite/libgomp.c++/reference-1.C: New test. + * testsuite/libgomp.c++/simd14.C: New test. + * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause. + * testsuite/libgomp.c++/target-5.C: New test. + * testsuite/libgomp.c++/target-6.C: New test. + * testsuite/libgomp.c++/target-7.C: New test. + * testsuite/libgomp.c++/target-8.C: New test. + * testsuite/libgomp.c++/target-9.C: New test. + * testsuite/libgomp.c++/target-10.C: New test. + * testsuite/libgomp.c++/target-11.C: New test. + * testsuite/libgomp.c++/target-12.C: New test. + * testsuite/libgomp.c++/taskloop-1.C: New test. + * testsuite/libgomp.c++/taskloop-2.C: New test. + * testsuite/libgomp.c++/taskloop-3.C: New test. + * testsuite/libgomp.c++/taskloop-4.C: New test. + * testsuite/libgomp.c++/taskloop-5.C: New test. + * testsuite/libgomp.c++/taskloop-6.C: New test. + * testsuite/libgomp.c++/taskloop-7.C: New test. + * testsuite/libgomp.c++/taskloop-8.C: New test. + * testsuite/libgomp.c++/taskloop-9.C: New test. + * testsuite/libgomp.fortran/affinity1.f90: New test. + * testsuite/libgomp.fortran/affinity2.f90: New test. + 2015-10-13 Tom de Vries <tom@codesourcery.com> PR tree-optimization/67476 |