2015-11-17 18:29:34 +01:00
|
|
|
2015-11-17 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
* config/nvptx/priority_queue.c: New file.
|
|
|
|
|
2015-11-14 23:02:42 +01:00
|
|
|
2015-11-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
|
|
|
|
sections.
|
|
|
|
|
omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_* internal calls - 0 if...
gcc/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
* omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
internal calls - 0 if ordered simd and 1 for ordered threads simd.
* tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
argument is 1, replace it with GOMP_ordered_* call instead of removing
it.
gcc/c/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
* c-typeck.c (c_finish_omp_clauses): Don't mark
GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
gcc/cp/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
* semantics.c (finish_omp_clauses): Don't mark
GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
libgomp/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* ordered.c (gomp_doacross_init, GOMP_doacross_post,
GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
iterators or IV by chunk size.
* parallel.c (gomp_resolve_num_threads): Don't assume that
if thr->ts.team is non-NULL, then pool must be non-NULL.
* libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
* libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
GOMP_PLUGIN_target_task_completion.
* Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
* Makefile.in: Regenerate.
* libgomp.h: Shuffle prototypes and forward definitions around so
priority queues can be defined.
(enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
(enum gomp_target_task_state): New enum.
(struct gomp_target_task): Add state, tgt, task and team fields.
(gomp_create_target_task): Change return type to bool, add
state argument.
(gomp_target_task_fn): Change return type to bool.
(struct gomp_device_descr): Add async_run_func.
(struct gomp_task): Remove children, next_child, prev_child,
next_queue, prev_queue, next_taskgroup, prev_taskgroup.
Add pnode field.
(struct gomp_taskgroup): Remove children.
Add taskgroup_queue.
(struct gomp_team): Change task_queue type to a priority queue.
(splay_compare): Define inline.
(priority_queue_offset): New.
(priority_node_to_task): New.
(task_to_priority_node): New.
* oacc-mem.c: Do not include splay-tree.h.
* priority_queue.c: New file.
* priority_queue.h: New file.
* splay-tree.c: Do not include splay-tree.h.
(splay_tree_foreach_internal): New.
(splay_tree_foreach): New.
* splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
(splay_tree_callback): Define typedef.
* target.c (splay_compare): Move to libgomp.h.
(GOMP_target): Don't adjust *thr in any way around running offloaded
task.
(GOMP_target_ext): Likewise. Handle target nowait.
(GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
return value from gomp_create_target_task, if false, fallthrough
as if no dependencies exist.
(gomp_target_task_fn): Change return type to bool, return true
if the task should have another part scheduled later. Handle
target nowait.
(gomp_load_plugin_for_device): Initialize async_run.
* task.c (gomp_init_task): Initialize children_queue.
(gomp_clear_parent_in_list): New.
(gomp_clear_parent_in_tree): New.
(gomp_clear_parent): Handle priorities.
(GOMP_task): Likewise.
(priority_queue_move_task_first,
gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
New functions.
(gomp_create_target_task): Use priority queues. Change return type
to bool, add state argument, return false if for async
{{enter,exit} data,update} constructs no dependencies need to be
waited for, handle target nowait. Set task->fn to NULL instead of
gomp_target_task_fn.
(verify_children_queue): Remove.
(priority_list_upgrade_task): New.
(priority_queue_upgrade_task): New.
(verify_task_queue): Remove.
(priority_list_downgrade_task): New.
(priority_queue_downgrade_task): New.
(gomp_task_run_pre): Use priority queues.
Abstract code out to priority_queue_downgrade_task.
(gomp_task_run_post_handle_dependers): Use priority queues.
(gomp_task_run_post_remove_parent): Likewise.
(gomp_task_run_post_remove_taskgroup): Likewise.
(gomp_barrier_handle_tasks): Likewise. Handle target nowait target
tasks specially.
(GOMP_taskwait): Likewise.
(gomp_task_maybe_wait_for_dependencies): Likewise. Abstract code to
priority-queue_upgrade_task.
(GOMP_taskgroup_start): Use priority queues.
(GOMP_taskgroup_end): Likewise. Handle target nowait target tasks
specially. If taskgroup is NULL, and thr->ts.level is 0, act as a
barrier.
* taskloop.c (GOMP_taskloop): Handle priorities.
* team.c (gomp_new_team): Call priority_queue_init.
(free_team): Call priority_queue_free.
(gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
team created for target nowait in implicit parallel region.
(gomp_team_start): For nested check, test thr->ts.level instead of
thr->ts.team != NULL.
* testsuite/libgomp.c/doacross-3.c: New test.
* testsuite/libgomp.c/ordered-5.c: New test.
* testsuite/libgomp.c/priority.c: New test.
* testsuite/libgomp.c/target-31.c: New test.
* testsuite/libgomp.c/target-32.c: New test.
* testsuite/libgomp.c/target-33.c: New test.
* testsuite/libgomp.c/target-34.c: New test.
liboffloadmic/
2015-11-14 Ilya Verbin <ilya.verbin@intel.com>
* runtime/offload_host.cpp (task_completion_callback): New
variable.
(offload_proxy_task_completed_ooo): Call task_completion_callback.
(__offload_register_task_callback): New function.
* runtime/offload_host.h (__offload_register_task_callback): New
declaration.
* plugin/libgomp-plugin-intelmic.cpp (offload): Add async_data
argument, handle async offloading.
(register_main_image): Call register_main_image.
(GOMP_OFFLOAD_init_device, get_target_table, GOMP_OFFLOAD_alloc,
GOMP_OFFLOAD_free, GOMP_OFFLOAD_host2dev, GOMP_OFFLOAD_dev2host,
GOMP_OFFLOAD_dev2dev) Adjust offload callers.
(GOMP_OFFLOAD_async_run): New function.
(GOMP_OFFLOAD_run): Implement using GOMP_OFFLOAD_async_run.
From-SVN: r230381
2015-11-14 19:42:13 +01:00
|
|
|
2015-11-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* ordered.c (gomp_doacross_init, GOMP_doacross_post,
|
|
|
|
GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
|
|
|
|
GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
|
|
|
|
iterators or IV by chunk size.
|
|
|
|
* parallel.c (gomp_resolve_num_threads): Don't assume that
|
|
|
|
if thr->ts.team is non-NULL, then pool must be non-NULL.
|
|
|
|
* libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
|
|
|
|
* libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
|
|
|
|
GOMP_PLUGIN_target_task_completion.
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* libgomp.h: Shuffle prototypes and forward definitions around so
|
|
|
|
priority queues can be defined.
|
|
|
|
(enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
|
|
|
|
(enum gomp_target_task_state): New enum.
|
|
|
|
(struct gomp_target_task): Add state, tgt, task and team fields.
|
|
|
|
(gomp_create_target_task): Change return type to bool, add
|
|
|
|
state argument.
|
|
|
|
(gomp_target_task_fn): Change return type to bool.
|
|
|
|
(struct gomp_device_descr): Add async_run_func.
|
|
|
|
(struct gomp_task): Remove children, next_child, prev_child,
|
|
|
|
next_queue, prev_queue, next_taskgroup, prev_taskgroup.
|
|
|
|
Add pnode field.
|
|
|
|
(struct gomp_taskgroup): Remove children.
|
|
|
|
Add taskgroup_queue.
|
|
|
|
(struct gomp_team): Change task_queue type to a priority queue.
|
|
|
|
(splay_compare): Define inline.
|
|
|
|
(priority_queue_offset): New.
|
|
|
|
(priority_node_to_task): New.
|
|
|
|
(task_to_priority_node): New.
|
|
|
|
* oacc-mem.c: Do not include splay-tree.h.
|
|
|
|
* priority_queue.c: New file.
|
|
|
|
* priority_queue.h: New file.
|
|
|
|
* splay-tree.c: Do not include splay-tree.h.
|
|
|
|
(splay_tree_foreach_internal): New.
|
|
|
|
(splay_tree_foreach): New.
|
|
|
|
* splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
|
|
|
|
(splay_tree_callback): Define typedef.
|
|
|
|
* target.c (splay_compare): Move to libgomp.h.
|
|
|
|
(GOMP_target): Don't adjust *thr in any way around running offloaded
|
|
|
|
task.
|
|
|
|
(GOMP_target_ext): Likewise. Handle target nowait.
|
|
|
|
(GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
|
|
|
|
return value from gomp_create_target_task, if false, fallthrough
|
|
|
|
as if no dependencies exist.
|
|
|
|
(gomp_target_task_fn): Change return type to bool, return true
|
|
|
|
if the task should have another part scheduled later. Handle
|
|
|
|
target nowait.
|
|
|
|
(gomp_load_plugin_for_device): Initialize async_run.
|
|
|
|
* task.c (gomp_init_task): Initialize children_queue.
|
|
|
|
(gomp_clear_parent_in_list): New.
|
|
|
|
(gomp_clear_parent_in_tree): New.
|
|
|
|
(gomp_clear_parent): Handle priorities.
|
|
|
|
(GOMP_task): Likewise.
|
|
|
|
(priority_queue_move_task_first,
|
|
|
|
gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
|
|
|
|
New functions.
|
|
|
|
(gomp_create_target_task): Use priority queues. Change return type
|
|
|
|
to bool, add state argument, return false if for async
|
|
|
|
{{enter,exit} data,update} constructs no dependencies need to be
|
|
|
|
waited for, handle target nowait. Set task->fn to NULL instead of
|
|
|
|
gomp_target_task_fn.
|
|
|
|
(verify_children_queue): Remove.
|
|
|
|
(priority_list_upgrade_task): New.
|
|
|
|
(priority_queue_upgrade_task): New.
|
|
|
|
(verify_task_queue): Remove.
|
|
|
|
(priority_list_downgrade_task): New.
|
|
|
|
(priority_queue_downgrade_task): New.
|
|
|
|
(gomp_task_run_pre): Use priority queues.
|
|
|
|
Abstract code out to priority_queue_downgrade_task.
|
|
|
|
(gomp_task_run_post_handle_dependers): Use priority queues.
|
|
|
|
(gomp_task_run_post_remove_parent): Likewise.
|
|
|
|
(gomp_task_run_post_remove_taskgroup): Likewise.
|
|
|
|
(gomp_barrier_handle_tasks): Likewise. Handle target nowait target
|
|
|
|
tasks specially.
|
|
|
|
(GOMP_taskwait): Likewise.
|
|
|
|
(gomp_task_maybe_wait_for_dependencies): Likewise. Abstract code to
|
|
|
|
priority-queue_upgrade_task.
|
|
|
|
(GOMP_taskgroup_start): Use priority queues.
|
|
|
|
(GOMP_taskgroup_end): Likewise. Handle target nowait target tasks
|
|
|
|
specially. If taskgroup is NULL, and thr->ts.level is 0, act as a
|
|
|
|
barrier.
|
|
|
|
* taskloop.c (GOMP_taskloop): Handle priorities.
|
|
|
|
* team.c (gomp_new_team): Call priority_queue_init.
|
|
|
|
(free_team): Call priority_queue_free.
|
|
|
|
(gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
|
|
|
|
team created for target nowait in implicit parallel region.
|
|
|
|
(gomp_team_start): For nested check, test thr->ts.level instead of
|
|
|
|
thr->ts.team != NULL.
|
|
|
|
* testsuite/libgomp.c/doacross-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/ordered-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/priority.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-31.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-32.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-33.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-34.c: New test.
|
|
|
|
|
2015-11-13 17:53:28 +01:00
|
|
|
2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2015-11-13 22:51:32 +01:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New.
|
|
|
|
|
2015-11-13 17:53:28 +01:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential
|
|
|
|
loop is sequential.
|
|
|
|
|
2015-11-13 16:08:11 +01:00
|
|
|
2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New.
|
|
|
|
|
2015-11-12 23:20:41 +01:00
|
|
|
2015-11-12 James Norris <jnorris@codesourcery.com>
|
|
|
|
Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp.map (GOACC_2.0.1): Export GOACC_declare.
|
|
|
|
* oacc-parallel.c (GOACC_declare): New function.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
|
|
|
|
|
2015-11-12 14:51:13 +01:00
|
|
|
2015-11-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/default-1.c: New.
|
|
|
|
|
2015-11-11 15:24:09 +01:00
|
|
|
2015-11-1 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.
|
|
|
|
|
2015-11-10 02:01:15 +01:00
|
|
|
2015-11-09 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2015-11-10 14:51:09 +01:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
|
|
|
|
inadvertent commit.
|
|
|
|
|
|
|
|
2015-11-09 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2015-11-10 02:01:15 +01:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
|
|
|
|
|
2015-11-06 12:11:34 +01:00
|
|
|
2015-11-06 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
|
|
|
|
|
gcc/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* builtin-types.def
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
* cgraph.h (enum cgraph_simd_clone_arg_type): Add
SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
(struct cgraph_simd_clone_arg): Adjust comment.
* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
to GOMP_target_ext. Add num_teams and thread_limit arguments.
(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
to GOMP_target_data_ext.
(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
to GOMP_target_update_ext.
(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
OMP_CLAUSE_SCHEDULE_LAST value.
* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK. Remove comment.
* tree-pretty-print.c (dump_omp_clause): Handle
GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
Simplify. Print schedule clause modifiers.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
cases.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
(omp_default_clause): Tweak for
private/firstprivate/is_device_ptr variables on target
construct and use_device_ptr on target data.
(omp_check_private): Likewise.
(omp_notice_variable): For references check whether what it refers
to has mappable type, rather than the reference itself.
(omp_is_private): Diagnose linear iteration variables on non-simd
constructs.
(omp_no_lastprivate): Return true only for Fortran.
(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
based array sections. Use GOMP_MAP_ALWAYS_P. Fix up handling of
lastprivate and linear when combined with distribute. Gimplify
variable low-bound for array reduction. Look through
POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
reductions.
(gimplify_adjust_omp_clauses_1): For implicit references to
variables with reference type and when not ref to scalar or
ref to pointer, map what they refer to using tofrom and
use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
from target exit data. Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
Drop OMP_CLAUSE_MAP_PRIVATE support. Use GOMP_MAP_ALWAYS_P.
Diagnose the same var on both firstprivate and lastprivate on
distribute construct.
(gimplify_omp_for): Fix up handling of predetermined
lastprivate or linear iter vars when combined with distribute.
(find_omp_teams, computable_teams_clause, optimize_target_teams): New
functions.
(gimplify_omp_workshare): Call optimize_target_teams.
* omp-low.c (struct omp_region): Add sched_modifiers field.
(struct omp_for_data): Likewise.
(omp_any_child_fn_dumped): New variable.
(extract_omp_for_data): Fill in sched_modifiers, and mask out
OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
from sched_kind.
(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
bits of OMP_CLAUSE_SCHED_KIND.
(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
drop OMP_CLAUSE_MAP_PRIVATE support. Look through POINTER_PLUS_EXPR
for array section reductions.
(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
for distribute parallel for, if there are lastprivate clauses on the
for.
(lower_rec_input_clauses): Handle non-zero low-bound on array
section reductions.
(lower_reduction_clauses): Likewise.
(lower_send_clauses): Look through POINTER_PLUS_EXPR
for array section reductions.
(expand_parallel_call): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided.
(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
child_fn if current_function_decl has assembler name set, but child_fn
does not. Dump the header and IL of the child function when not in SSA
form.
(expand_omp_target): Likewise. Pass num_teams and thread_limit
arguments to BUILT_IN_GOMP_TARGET.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Initialize the extra _looptemp_ clause to fd->loop.n2.
(expand_omp_for): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided. Initialize region->sched_modifiers.
(expand_omp): Clear omp_any_child_fn_dumped. Dump function header
again if we have dumped any child functions.
(lower_omp_for_lastprivate): Determine the right count variable
for distribute simd, or distribute parallel for{, simd}.
(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
and GOMP_MAP_ALWAYS_POINTER. Drop OMP_CLAUSE_MAP_PRIVATE
support.
(simd_clone_clauses_extract): Handle variable step
for references and arguments passed by reference.
(simd_clone_mangle): Mangle ref/uval/val variable steps.
(simd_clone_adjust_argument_types): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
(simd_clone_linear_addend): New function.
(simd_clone_adjust): Handle variable step like similarly
to constant step, use simd_clone_linear_addend to determine
the actual step at runtime.
gcc/c-family/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* c-common.h (c_finish_omp_atomic): Add TEST argument.
(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
* c-omp.c (c_finish_omp_atomic): Add TEST argument. Don't call
save_expr or create_tmp_var* if TEST is true.
(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
Don't call add_stmt here.
(struct c_omp_check_loop_iv_data): New type.
(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
c_omp_check_loop_iv_exprs): New functions.
(c_omp_split_clauses): Adjust for lastprivate being allowed on
distribute.
(c_omp_declare_simd_clauses_to_numbers): Change
OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
(c_omp_declare_simd_clauses_to_decls): Similarly change those
from numbers to PARM_DECLs.
gcc/c/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* c-parser.c: Include context.h and gimple-expr.h.
(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
monotonic together with nonmonotonic.
(c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(c_parser_omp_target_data, c_parser_omp_target_enter_data,
c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
(c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
expressions on combined target teams before the target.
(c_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags. Call c_finish_omp_clauses
in the parenthesized extended-list syntax case.
* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
declare target.
* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR. For structure element based array sections use
GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
(c_finish_omp_clauses): Drop generic_field_head, structure
elements are now always mapped even as array section bases,
diagnose same var in data sharing and mapping clauses. Diagnose if
linear step on declare simd is neither a constant nor a uniform
parameter. Look through POINTER_PLUS_EXPR for array section
reductions. Diagnose the same var or function appearing multiple
times on the same directive. Fix up wording for the to clause if t
is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.
gcc/cp/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
(omp_privatize_field): Add SHARED argument.
* parser.c: Include context.h.
(cp_parser_omp_clause_schedule): Parse schedule
modifiers, diagnose monotonic together with nonmonotonic.
(cp_parser_omp_clause_linear): Add DECLARE_SIMD argument. Parse
parameter name as linear step as id-expression rather than expression.
(cp_parser_omp_all_clauses): Adjust caller.
(cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
initialize it. Adjust omp_privatize_field caller.
(cp_parser_omp_for_loop): Compute orig_inits, pass it's address
to finish_omp_for.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(cp_parser_omp_target_data,
cp_parser_omp_target_enter_data,
cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(cp_parser_omp_target): Likewise. Evaluate num_teams and
thread_limit expressions on combined target teams before the target.
(cp_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags. Call finish_omp_clauses
in the parenthesized extended-list syntax case. Call
cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
(cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
instead of cp_parser_skip_to_pragma_eol.
* decl2.c (cplus_decl_attributes): Don't diagnose block scope vars inside
declare target.
* pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
use tsubst_omp_clause_decl instead of tsubst_expr on
OMP_CLAUSE_LINEAR_STEP. Handle non-static data members in shared
clauses.
(tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
(tsubst_find_omp_teams): New function.
(tsubst_expr): Evaluate num_teams and thread_limit expressions on
combined target teams before the target. Use OMP_FOR_ORIG_DECLS for
all OpenMP/OpenACC/Cilk+ looping constructs. Adjust finish_omp_for
caller.
* semantics.c (omp_privatize_field): Add SHARED argument, if true,
always create artificial var and never put it into the hash table
or vector.
(handle_omp_array_sections_1): Adjust omp_privatize_field caller.
Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): For structure element
based array sections use GOMP_MAP_ALWAYS_POINTER instead of
GOMP_MAP_FIRSTPRIVATE_POINTER. Encode low-bound into the MEM_REF,
either into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR.
(finish_omp_clauses): Adjust omp_privatize_field caller. Drop
generic_field_head, structure elements are now always mapped even
as array section bases, diagnose same var in data sharing and
mapping clauses. For references map what they refer to using
GOMP_MAP_ALWAYS_POINTER for structure elements and
GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise. Diagnose if linear step
on declare simd is neither a constant nor a uniform parameter.
Allow non-static data members on shared clauses. Look through
POINTER_PLUS_EXPR for array section reductions. Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause. Diagnose the same var or
function appearing multiple times on the same directive. Fix up
wording for the to clause if t is neither a FUNCTION_DECL nor a
VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
(handle_omp_for_class_iterator): Add ORIG_DECLS argument. Call
c_omp_check_loop_iv_exprs on cond.
(finish_omp_for): Add ORIG_INITS argument. Call
c_omp_check_loop_iv_exprs on ORIG_INITS elements. Adjust
handle_omp_for_class_iterator caller. Call c_omp_check_loop_iv.
Call add_stmt.
(finish_omp_atomic): Adjust c_finish_omp_atomic caller.
gcc/fortran/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
gcc/testsuite/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* c-c++-common/gomp/clauses-2.c (foo): Adjust for diagnostics
of variables in both data sharing and mapping clauses and for
structure element based array sections being mapped rather than
privatized.
* c-c++-common/gomp/declare-target-2.c: Add various new tests. Adjust
expected diagnostics wording in one case.
* c-c++-common/gomp/distribute-1.c: New test.
* c-c++-common/gomp/element-1.c: New test.
* c-c++-common/gomp/pr61486-2.c: Add #pragma omp declare target
and #pragma omp end declare target pair around the function.
Change s from a parameter to a file scope variable.
* c-c++-common/gomp/pr67521.c: Add dg-error directives.
* c-c++-common/gomp/reduction-1.c (foo): Don't expect diagnostics
on non-zero low-bound in reduction array sections. Add further
tests.
* c-c++-common/gomp/schedule-modifiers-1.c: New test.
* c-c++-common/gomp/target-teams-1.c: New test.
* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
for expected mangling on x86_64/i?86.
* gcc.dg/gomp/declare-simd-3.c: New test.
* gcc.dg/gomp/declare-simd-4.c: New test.
* gcc.dg/gomp/for-20.c: New test.
* gcc.dg/gomp/for-21.c: New test.
* gcc.dg/gomp/for-22.c: New test.
* gcc.dg/gomp/for-23.c: New test.
* gcc.dg/gomp/for-24.c: New test.
* gcc.dg/gomp/linear-1.c: New test.
* gcc.dg/gomp/loop-1.c: New test.
* g++.dg/gomp/atomic-17.C: New test.
* g++.dg/gomp/clause-1.C (T::test): Don't expect error on
non-static data member in shared clause. Add single construct.
* g++.dg/gomp/declare-simd-1.C: Add dg-options. Add
scan-assembler-times directives for expected mangling on x86_64/i?86.
* g++.dg/gomp/declare-simd-3.C: Likewise.
* g++.dg/gomp/declare-simd-4.C: New test.
* g++.dg/gomp/declare-simd-5.C: New test.
* g++.dg/gomp/declare-target-1.C: New test.
* g++.dg/gomp/linear-2.C: New test.
* g++.dg/gomp/loop-1.C: New test.
* g++.dg/gomp/loop-2.C: New test.
* g++.dg/gomp/loop-3.C: New test.
* g++.dg/gomp/member-2.C (B::m2, B::m4): Don't expect error on
non-static data member in shared clause.
* g++.dg/gomp/member-3.C: New test.
* g++.dg/gomp/member-4.C: New test.
* g++.dg/gomp/pr38639.C (foo): Adjust dg-error.
(bar): Remove dg-message.
* g++.dg/gomp/target-teams-1.C: New test.
include/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
(GOMP_MAP_FLAG_ALWAYS): Remove.
(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(GOMP_MAP_ALWAYS_P): Define.
(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.
libgomp/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this. Add num_teams and thread_limit
arguments.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
GOMP_target_data_ext and GOMP_target_update_ext instead of
GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
Export GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic and
GOMP_parallel_loop_nonmonotonic_guided.
* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
functions.
(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER. For
GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
Use gomp_map_val function.
(gomp_target_fallback_firstprivate): New static function.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this. Add num_teams and thread_limit
arguments. Move firstprivate fallback handling into a new
function.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
gomp_map_0len_lookup instead of gomp_map_lookup.
(omp_target_is_present): Use gomp_map_0len_lookup instead of
gomp_map_lookup.
* testsuite/libgomp.c/target-28.c: Likewise.
* testsuite/libgomp.c/monotonic-1.c: New test.
* testsuite/libgomp.c/monotonic-2.c: New test.
* testsuite/libgomp.c/nonmonotonic-1.c: New test.
* testsuite/libgomp.c/nonmonotonic-2.c: New test.
* testsuite/libgomp.c/pr66199-5.c: New test.
* testsuite/libgomp.c/pr66199-6.c: New test.
* testsuite/libgomp.c/pr66199-7.c: New test.
* testsuite/libgomp.c/pr66199-8.c: New test.
* testsuite/libgomp.c/pr66199-9.c: New test.
* testsuite/libgomp.c/reduction-11.c: New test.
* testsuite/libgomp.c/reduction-12.c: New test.
* testsuite/libgomp.c/reduction-13.c: New test.
* testsuite/libgomp.c/reduction-14.c: New test.
* testsuite/libgomp.c/reduction-15.c: New test.
* testsuite/libgomp.c/target-12.c (main): Adjust for
omp_target_is_present change for one-past-last element.
* testsuite/libgomp.c/target-17.c (foo): Drop tests where
the same var is both mapped and privatized.
* testsuite/libgomp.c/target-19.c (foo): Adjust for different
handling of zero-length array sections.
* testsuite/libgomp.c/target-28.c: New test.
* testsuite/libgomp.c/target-29.c: New test.
* testsuite/libgomp.c/target-30.c: New test.
* testsuite/libgomp.c/target-teams-1.c: New test.
* testsuite/libgomp.c++/member-6.C: New test.
* testsuite/libgomp.c++/member-7.C: New test.
* testsuite/libgomp.c++/monotonic-1.C: New test.
* testsuite/libgomp.c++/monotonic-2.C: New test.
* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
* testsuite/libgomp.c++/pr66199-3.C: New test.
* testsuite/libgomp.c++/pr66199-4.C: New test.
* testsuite/libgomp.c++/pr66199-5.C: New test.
* testsuite/libgomp.c++/pr66199-6.C: New test.
* testsuite/libgomp.c++/pr66199-7.C: New test.
* testsuite/libgomp.c++/pr66199-8.C: New test.
* testsuite/libgomp.c++/pr66199-9.C: New test.
* testsuite/libgomp.c++/reduction-11.C: New test.
* testsuite/libgomp.c++/reduction-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.
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
From-SVN: r229814
2015-11-05 16:08:08 +01:00
|
|
|
2015-11-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_start,
|
|
|
|
GOMP_loop_nonmonotonic_guided_next,
|
|
|
|
GOMP_loop_nonmonotonic_guided_start,
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_next,
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_start,
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_next,
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_start,
|
|
|
|
GOMP_parallel_loop_nonmonotonic_dynamic,
|
|
|
|
GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
|
|
|
|
(GOMP_target_41): Renamed to ...
|
|
|
|
(GOMP_target_ext): ... this. Add num_teams and thread_limit
|
|
|
|
arguments.
|
|
|
|
(GOMP_target_data_41): Renamed to ...
|
|
|
|
(GOMP_target_data_ext): ... this.
|
|
|
|
(GOMP_target_update_41): Renamed to ...
|
|
|
|
(GOMP_target_update_ext): ... this.
|
|
|
|
* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
|
|
|
|
GOMP_target_data_ext and GOMP_target_update_ext instead of
|
|
|
|
GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
|
|
|
|
Export GOMP_loop_nonmonotonic_dynamic_next,
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_start,
|
|
|
|
GOMP_loop_nonmonotonic_guided_next,
|
|
|
|
GOMP_loop_nonmonotonic_guided_start,
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_next,
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_start,
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_next,
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_start,
|
|
|
|
GOMP_parallel_loop_nonmonotonic_dynamic and
|
|
|
|
GOMP_parallel_loop_nonmonotonic_guided.
|
|
|
|
* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
|
|
|
|
GOMP_parallel_loop_nonmonotonic_guided,
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_start,
|
|
|
|
GOMP_loop_nonmonotonic_guided_start,
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_next,
|
|
|
|
GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
|
|
|
|
* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_start,
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_next,
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
|
|
|
|
* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
|
|
|
|
functions.
|
|
|
|
(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER. For
|
|
|
|
GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
|
|
|
|
Use gomp_map_val function.
|
|
|
|
(gomp_target_fallback_firstprivate): New static function.
|
|
|
|
(GOMP_target_41): Renamed to ...
|
|
|
|
(GOMP_target_ext): ... this. Add num_teams and thread_limit
|
|
|
|
arguments. Move firstprivate fallback handling into a new
|
|
|
|
function.
|
|
|
|
(GOMP_target_data_41): Renamed to ...
|
|
|
|
(GOMP_target_data_ext): ... this.
|
|
|
|
(GOMP_target_update_41): Renamed to ...
|
|
|
|
(GOMP_target_update_ext): ... this.
|
|
|
|
(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
|
|
|
|
gomp_map_0len_lookup instead of gomp_map_lookup.
|
|
|
|
(omp_target_is_present): Use gomp_map_0len_lookup instead of
|
|
|
|
gomp_map_lookup.
|
|
|
|
* testsuite/libgomp.c/target-28.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/monotonic-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/monotonic-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/nonmonotonic-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/nonmonotonic-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr66199-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr66199-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr66199-7.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr66199-8.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr66199-9.c: New test.
|
|
|
|
* testsuite/libgomp.c/reduction-11.c: New test.
|
|
|
|
* testsuite/libgomp.c/reduction-12.c: New test.
|
|
|
|
* testsuite/libgomp.c/reduction-13.c: New test.
|
|
|
|
* testsuite/libgomp.c/reduction-14.c: New test.
|
|
|
|
* testsuite/libgomp.c/reduction-15.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-12.c (main): Adjust for
|
|
|
|
omp_target_is_present change for one-past-last element.
|
|
|
|
* testsuite/libgomp.c/target-17.c (foo): Drop tests where
|
|
|
|
the same var is both mapped and privatized.
|
|
|
|
* testsuite/libgomp.c/target-19.c (foo): Adjust for different
|
|
|
|
handling of zero-length array sections.
|
|
|
|
* testsuite/libgomp.c/target-28.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-29.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-30.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-teams-1.c: New test.
|
|
|
|
* testsuite/libgomp.c++/member-6.C: New test.
|
|
|
|
* testsuite/libgomp.c++/member-7.C: New test.
|
|
|
|
* testsuite/libgomp.c++/monotonic-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/monotonic-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-4.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-6.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-7.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-8.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-9.C: New test.
|
|
|
|
* testsuite/libgomp.c++/reduction-11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/reduction-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.
|
|
|
|
|
2015-11-04 21:48:05 +01:00
|
|
|
2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
|
|
|
|
and reduction copy.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
|
|
|
|
|
2015-11-04 18:01:23 +01:00
|
|
|
2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
|
|
|
|
* libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
|
|
|
|
|
2015-11-03 21:18:33 +01:00
|
|
|
2015-11-03 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
|
|
|
|
(GOMP_OFFLOAD_openacc_parallel): Likewise.
|
|
|
|
* oacc-host.c (host_openacc_exec): Likewise.
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.
|
|
|
|
|
2015-11-03 12:28:22 +01:00
|
|
|
2015-11-03 Julian Brown <julian@codesourcery.com>
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
|
|
|
|
Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
|
|
|
|
|
|
|
|
2015-11-03 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
|
|
|
|
file.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
|
|
|
|
Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
|
|
|
|
|
2015-10-30 01:13:22 +01:00
|
|
|
2015-10-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* openacc.h (enum acc_device_t): Reformat. Ensure layout
|
|
|
|
compatibility.
|
|
|
|
(enum acc_async_t): Reformat.
|
|
|
|
(acc_on_device): Declare compatible with builtin and provide C++
|
|
|
|
wrapper.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
|
|
|
|
|
2015-10-29 10:03:40 +01:00
|
|
|
2015-10-29 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to...
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c:
|
|
|
|
... this. Add a description of the test at the top of the file.
|
|
|
|
* testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to...
|
|
|
|
* testsuite/libgomp.oacc-fortran/combined-directives-1.f90:
|
|
|
|
... this. Add a description of the test at the top of the file.
|
|
|
|
|
2015-10-28 15:27:30 +01:00
|
|
|
2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New.
|
|
|
|
|
2015-10-28 04:00:10 +01:00
|
|
|
2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute
|
|
|
|
dimensions.
|
|
|
|
|
2015-10-27 11:32:32 +01:00
|
|
|
2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
PR testsuite/68063
|
|
|
|
* testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause.
|
|
|
|
|
[PR c/64765, c/64880] Support OpenACC Combined Directives in C, C++
gcc/c-family/
PR c/64765
PR c/64880
* c-common.h (c_oacc_split_loop_clauses): Declare function.
* c-omp.c (c_oacc_split_loop_clauses): New function.
gcc/c/
PR c/64765
PR c/64880
* c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
parameters, and handle these. Adjust all users.
(c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
into...
(c_parser_oacc_kernels_parallel): ... this new function. Adjust
all users.
* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
declare functions.
(c_finish_omp_construct): Declare function.
* c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
Merge functions into...
(c_finish_omp_construct): ... this new function.
gcc/cp/
PR c/64765
PR c/64880
* cp-tree.h (finish_oacc_kernels, finish_oacc_parallel): Don't
declare functions.
(finish_omp_construct): Declare function.
* parser.c (cp_parser_oacc_loop): Add p_name, mask, cclauses
formal parameters, and handle these. Adjust all users.
(cp_parser_oacc_kernels, cp_parser_oacc_parallel): Merge functions
into...
(cp_parser_oacc_kernels_parallel): ... this new function. Adjust
all users.
* semantics.c (finish_oacc_kernels, finish_oacc_parallel): Merge functions into...
(finish_omp_construct): ... this new function.
gcc/
* tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
(OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
(OACC_PARALLEL_COMBINED): Don't define macros. Adjust all users.
gcc/testsuite/
PR c/64765
PR c/64880
* c-c++-common/goacc/loop-1.c: Don't skip for C++. Don't prune
sorry message.
(PR64765): New function.
* gfortran.dg/goacc/coarray_2.f90: XFAIL.
* gfortran.dg/goacc/combined_loop.f90: Extend. Don't prune
sorry message.
* gfortran.dg/goacc/cray.f95: Refine prune directive.
* gfortran.dg/goacc/parameter.f95: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
* testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
From-SVN: r229404
2015-10-27 09:39:15 +01:00
|
|
|
2015-10-27 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
|
|
|
|
* testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
|
|
|
|
|
2015-10-26 17:24:17 +01:00
|
|
|
2015-10-26 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
2015-10-26 17:25:04 +01:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
|
|
|
|
|
2015-10-26 17:24:54 +01:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit
|
|
|
|
acc_device_nvidia usage.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
|
|
|
|
|
2015-10-26 17:24:44 +01:00
|
|
|
* oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
|
|
|
|
|
2015-10-26 17:24:28 +01:00
|
|
|
PR libgomp/66518
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
|
|
|
|
|
2015-10-26 17:24:17 +01:00
|
|
|
PR libgomp/65437
|
|
|
|
PR libgomp/66518
|
|
|
|
* oacc-mem.c (update_dev_host): Call goacc_lazy_initialize.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL.
|
|
|
|
|
2015-10-23 12:45:13 +02:00
|
|
|
2015-10-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR testsuite/68063
|
|
|
|
* testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
|
|
|
|
|
2015-10-20 23:09:09 +02:00
|
|
|
2015-10-20 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane
|
|
|
|
vector_length.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
|
2015-10-14 20:37:10 +02:00
|
|
|
2015-10-14 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
Aleksander Ivanushenko <aleksander.ivanushenko@intel.com>
|
|
|
|
|
|
|
|
* target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
|
|
|
|
to 0 when mapnum is 0.
|
|
|
|
|
2015-10-14 10:30:52 +02:00
|
|
|
2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
|
|
|
|
Cast to int from int32_t.
|
|
|
|
|
builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR, [...]): New.
gcc/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
* cgraph.h (enum cgraph_simd_clone_arg_type): Add
SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
(struct cgraph_simd_clone_arg): Adjust comment.
* coretypes.h (struct gomp_ordered): New forward decl.
* gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
set critical clauses to it.
(gimple_build_omp_ordered): Return gomp_ordered * instead of
gimple *. Add CLAUSES argument, set ordered clauses to it.
(gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
GIMPLE_OMP_ORDERED.
* gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
* gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP. Add another bit
to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP. Adjust
GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
Add another bit to GF_OMP_TARGET_KIND_MASK mask. Add
GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
renumber
GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
(gomp_critical): Add clauses field.
(gomp_ordered): New struct.
(is_a_helper <gomp_ordered *>::test): New inline.
(gimple_build_omp_critical): Add CLAUSES argument.
(gimple_build_omp_ordered): Likewise. Return gomp_ordered *
instead of gimple *.
(gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
inline functions.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
(dump_gimple_omp_target): Handle enter data and exit data.
(dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
(dump_gimple_omp_critical): Print clauses.
(dump_gimple_omp_ordered): New function.
(dump_gimple_omp_task): Handle taskloop.
(pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
GIMPLE_OMP_ORDERED.
* gimple-walk.c (walk_gimple_op): Walk clauses on
GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
(enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
(struct gimplify_omp_ctx): Add loop_iter_var,
target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
and target_firstprivatize_array_bases fields.
(delete_omp_context): Release loop_iter_var.
(gimplify_bind_expr): Handle ORT_NONE.
(maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
ORT_COMBINED_TARGET.
(is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
(omp_firstprivatize_variable): Handle ORT_NONE. Adjust check for
ORT_TARGET for the addition of ORT_COMBINED_TARGET. Handle
ctx->target_map_scalars_firstprivate.
(omp_add_variable): Handle ORT_NONE. Allow map clause together with
data sharing clauses. For data sharing clause with VLA decl
on omp target/target data don't add firstprivate for the pointer.
Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
(omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
the addition of ORT_COMBINED_TARGET.
(omp_notice_variable): Handle ORT_NONE. Adjust check for ORT_TARGET
for the addition of ORT_COMBINED_TARGET. Handle implicit mapping of
pointers as zero length array sections and
ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
data sharing.
(omp_check_private): Handle omp_member_access_dummy_var vars.
(find_decl_expr): New function.
(gimplify_scan_omp_clauses): Add CODE argument. For OMP_CLAUSE_IF
complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
Handle OMP_CLAUSE_GANG separately. Handle
OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
clauses. Diagnose linear clause on combined
distribute {, parallel for} simd construct, unless it is the loop
iterator. Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
Handle map clauses with COMPONENT_REF. Initialize
ctx->target_map_scalars_firstprivate,
ctx->target_firstprivatize_array_bases and
ctx->target_map_pointers_as_0len_arrays. Add firstprivate for
linear clause even to target region if combined. Remove
map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
OMP_TARGET_{,ENTER_,EXIT_}DATA. For GOMP_MAP_FIRSTPRIVATE_POINTER
map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}. Handle
OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
For linear clause on worksharing loop combined with parallel add
shared clause on the parallel. Handle OMP_CLAUSE_REDUCTION
with MEM_REF OMP_CLAUSE_DECL. Set DECL_NAME on
omp_member_access_dummy_var vars. Add lastprivate clause to outer
taskloop if needed.
(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
GOMP_MAP_POINTER.
(gimplify_adjust_omp_clauses): Add CODE argument. Handle removal
of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
in target body. Handle removal of struct mapping if struct is not
seen in target body. Remove GOMP_MAP_STRUCT map clause on
OMP_TARGET_EXIT_DATA. Adjust check for ORT_TARGET for the
addition of ORT_COMBINED_TARGET. Use GOMP_MAP_FIRSTPRIVATE_POINTER
instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
for VLAs. Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
clause appear together. Handle
OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. Don't remove map
clause if it has map-type-modifier always. Handle
OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
clauses.
(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
callers.
(gimplify_omp_for): Likewise. Handle OMP_TASKLOOP. Initialize
loop_iter_var. Use OMP_FOR_ORIG_DECLS. Fix handling of lastprivate
iterators in doacross loops.
(gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
gimplify_adjust_omp_clauses callers. Use ORT_COMBINED_TARGET
for OMP_TARGET_COMBINED. Adjust check for ORT_TARGET
for the addition of ORT_COMBINED_TARGET.
(gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
gimplify_adjust_omp_clauses callers. Handle OMP_TARGET_ENTER_DATA
and OMP_TARGET_EXIT_DATA.
(gimplify_omp_ordered): New function.
(gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
OMP_TARGET_EXIT_DATA. Use gimplify_omp_ordered for OMP_ORDERED.
Gimplify clauses on OMP_CRITICAL.
* internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
expand_GOMP_SIMD_ORDERED_END): New functions.
* internal-fn.def (GOMP_SIMD_ORDERED_START,
GOMP_SIMD_ORDERED_END): New internal functions.
* omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
(BUILT_IN_GOMP_TASK): Add INT argument to the end.
(BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
adjust type.
(BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
GOMP_target_data_41, adjust type.
(BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
GOMP_target_update_41, adjust type.
* omp-low.c (struct omp_region): Adjust comments, add ord_stmt
field.
(struct omp_for_data): Add ordered and simd_schedule fields.
(omp_member_access_dummy_var, unshare_and_remap_1,
unshare_and_remap, is_taskloop_ctx): New functions.
(is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
(extract_omp_for_data): Handle taskloops and doacross loops
and simd schedule modifier.
(omp_adjust_chunk_size): New function.
(get_ws_args_for): Use it.
(lookup_sfield): Change first argument to splay_tree_key,
add overload with first argument tree.
(maybe_lookup_field): Likewise.
(use_pointer_for_field): Handle omp_member_access_dummy_var.
(omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
task_shared_vars, clear TREE_ADDRESSABLE on the copy.
(build_outer_var_ref): Add LASTPRIVATE argument, handle
taskloops and omp_member_access_dummy_var vars.
(build_sender_ref): Change first argument to splay_tree_key,
add overload with first argument tree.
(install_var_field): For mask & 8 use &DECL_UID as key instead
of the tree itself.
(fixup_child_record_type): Const qualify *.omp_data_i.
(scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
(create_omp_child_function): Set TREE_READONLY on .omp_data_i.
(find_combined_for): Allow searching for different GIMPLE_OMP_FOR
kinds.
(add_taskreg_looptemp_clauses): New function.
(scan_omp_parallel): Use it.
(scan_omp_task): Likewise.
(finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
(check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
and GF_OMP_TARGET_KIND_EXIT_DATA. Formatting fixes. Allow the
sandwiched taskloop constructs. Type check
OMP_CLAUSE_DEPEND_{KIND,SOURCE}. Allow ordered simd inside of simd
region. Diagnose depend(source) or depend(sink:...) on
target constructs or task/taskloop.
(handle_simd_reference): Use get_name.
(lower_rec_input_clauses): Likewise. Ignore all
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
Allow _LOOPTEMP_ clause on GOMP_TASK. Unshare new_var
before passing it to omp_clause_{default,copy}_ctor. Handle
OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL. Set
lastprivate_firstprivate flag for linear that needs copyin and
copyout. Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
(lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
on taskloop lookup decl in outer context. Pass true to
build_outer_var_ref lastprivate argument. Handle
OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
outside of outer taskloop for.
(lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
OMP_CLAUSE_DECL.
(lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
GOMP_TASK. Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. Handle
omp_member_access_dummy_var vars. Handle OMP_CLAUSE_REDUCTION
with MEM_REF OMP_CLAUSE_DECL. Use new lookup_sfield overload.
(lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
abstract origin. Handle omp_member_access_dummy_var vars.
(expand_parallel_call): Use expand_omp_build_assign.
(expand_task_call): Handle taskloop construct expansion. Add
REGION argument. Use GOMP_TASK_* defines instead of hardcoded
integers. Add priority argument to GOMP_task* calls. Or in
GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
GOMP_task call.
(expand_omp_build_assign): Add prototype. Add AFTER
argument, if true emit statements after *GSI_P and continue linking.
(expand_omp_taskreg): Adjust expand_task_call caller.
(expand_omp_for_init_counts): Rename zero_iter_bb argument to
zero_iter1_bb and first_zero_iter to first_zero_iter1, add
zero_iter2_bb and first_zero_iter2 arguments, handle computation
of counts even for ordered loops.
(expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
(expand_omp_ordered_source, expand_omp_ordered_sink,
expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
functions.
(expand_omp_for_generic): Use omp_adjust_chunk_size. Handle linear
clauses on worksharing loop. Handle DOACROSS loop expansion.
(expand_omp_for_static_nochunk): Handle linear clauses on
worksharing loop. Adjust expand_omp_for_init_counts
callers.
(expand_omp_for_static_chunk): Likewise. Use omp_adjust_chunk_size.
(expand_omp_simd): Handle addressable fd->loop.v. Adjust
expand_omp_for_init_counts callers.
(expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
functions.
(expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
Handle doacross loops.
(expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
GF_OMP_TARGET_KIND_EXIT_DATA. Pass flags and depend arguments to
GOMP_target_{41,update_41,enter_exit_data} libcalls.
(expand_omp): Don't expand ordered depend constructs here, record
ord_stmt instead for later expand_omp_for_generic.
(build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
clause as stand-alone directive.
(lower_omp_ordered_clauses): New function.
(lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
don't lower anything.
(lower_omp_for_lastprivate): Use last _looptemp_ clause
on taskloop for comparison.
(lower_omp_for): Handle taskloop constructs. Adjust OMP_CLAUSE_DECL
and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
expansion for linear adjustments.
(create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
(lower_depend_clauses): Assert not seeing sink/source depend kinds.
Set TREE_ADDRESSABLE on array. Change first argument from gimple *
to tree * pointing to the stmt's clauses.
(lower_omp_taskreg): Adjust lower_depend_clauses caller.
(lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
clauses. Always use short kind and 8-bit align shift.
(lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
(struct lower_omp_regimplify_operands_data): New type.
(lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
New functions.
(lower_omp_1): Use lower_omp_regimplify_operands instead of
gimple_regimplify_operands.
(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
clause as stand-alone directive.
(simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
(simd_clone_mangle): Mangle the various linear kinds
per the new ABI.
(simd_clone_adjust_argument_types): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
(simd_clone_init_simd_arrays): Don't do anything for uval.
(simd_clone_adjust): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
* omp-low.h (omp_member_access_dummy_var): New prototype.
* passes.def (pass_simduid_cleanup): Schedule another copy of the
pass after all optimizations.
* tree.c (omp_clause_code_name): Add entries for
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
(omp_clause_num_ops): Likewise. Bump number of OMP_CLAUSE_REDUCTION
arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
(walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
OMP_CLAUSE_REDUCTION 5 arguments. Handle
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
clauses.
* tree-core.h (enum omp_clause_linear_kind): New.
(struct tree_omp_clause): Change type of map_kind
from unsigned char to unsigned int. Add subcode.if_modifier
and subcode.linear_kind fields.
(enum omp_clause_code): Add
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
(OMP_CLAUSE_REDUCTION): Document
OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
* tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
(OMP_CRITICAL): Move before OMP_SINGLE. Add OMP_CRITICAL_CLAUSES
operand.
(OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES
operand.
(OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
codes.
* tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
(OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
char.
(OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
(OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
(OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
(OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
* tree-inline.c (remap_gimple_stmt): Handle clauses on
GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL. For
IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
* tree-nested.c (convert_nonlocal_omp_clauses): Handle
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
clauses. Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
(convert_local_omp_clauses): Likewise.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
clauses. Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
OMP_CLAUSE_DEPEND_{SOURCE,SINK}. Use "delete" for
GOMP_MAP_FORCE_DEALLOC. Handle
GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
(dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
and clauses on OMP_ORDERED and OMP_CRITICAL.
* tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
(vectorize_loops): Adjust comments.
(pass_simduid_cleanup::execute): Likewise.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
* wide-int.h (wi::gcd): New.
gcc/c-family/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
(c_define_builtins): Likewise.
* c-common.h (enum c_omp_clause_split): Add
C_OMP_CLAUSE_SPLIT_TASKLOOP.
(c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
(c_finish_omp_for): Add ORIG_DECLV argument.
* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
201511 instead of 201307.
* c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
OMP_CRITICAL_CLAUSES to it.
(c_finish_omp_ordered): Add CLAUSES argument, set
OMP_ORDERED_CLAUSES to it.
(c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
to it if OMP_FOR. Clear DECL_INITIAL on the IVs.
(c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
constructs and new OpenMP 4.5 clauses. Clear
OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD. Add
verification code.
* c-pragma.c (omp_pragmas_simd): Add taskloop.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
(enum pragma_omp_clause): Add
PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
gcc/c/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
(c_parser_omp_variable_list): Handle structure elements for
map, to and from clauses. Handle array sections in reduction
clause. Formatting fixes.
(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
if clause modifiers.
(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
c_parser_omp_clause_priority, c_parser_omp_clause_hint,
c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
c_parser_omp_clause_is_device_ptr): New functions.
(c_parser_omp_clause_ordered): Parse optional parameter.
(c_parser_omp_clause_reduction): Handle array reductions.
(c_parser_omp_clause_schedule): Parse optional simd modifier.
(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
functions.
(c_parser_omp_clause_linear): Parse linear clause modifiers.
(c_parser_omp_clause_depend_sink): New function.
(c_parser_omp_clause_depend): Parse source/sink depend kinds.
(c_parser_omp_clause_map): Parse release/delete map kinds and
optional always modifier.
(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
and c_finish_omp_clauses callers.
(c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
(OMP_CRITICAL_CLAUSE_MASK): Define.
(c_parser_omp_critical): Parse critical clauses.
(c_parser_omp_for_loop): Handle doacross loops, adjust
c_finish_omp_for and c_finish_omp_clauses callers.
(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
(c_parser_omp_simd): Allow ordered clause if it has no parameter.
(OMP_FOR_CLAUSE_MASK): Add linear clause.
(c_parser_omp_for): Disallow ordered clause when combined with
distribute. Disallow linear clause when combined with distribute
and not combined with simd.
(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
parse clauses and if depend clause is found, don't parse a body.
(c_parser_omp_parallel): Disallow copyin clause on target parallel.
Allow target parallel without for after it.
(OMP_TASK_CLAUSE_MASK): Add priority clause.
(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
(c_parser_omp_target_data): Diagnose no map clauses or clauses with
invalid kinds.
(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
functions.
(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
defaultmap and is_device_ptr clauses.
(c_parser_omp_target): Parse target parallel and target simd. Set
OMP_TARGET_COMBINED on combined constructs. Parse target enter data
and target exit data. Diagnose invalid map kinds.
(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
construct.
(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
&omp_priv.
(OMP_TASKLOOP_CLAUSE_MASK): Define.
(c_parser_omp_taskloop): New function.
(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
handle PRAGMA_OMP_TASKLOOP.
(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
* c-tree.h (c_finish_omp_clauses): Add two new arguments.
* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
Add IS_OMP argument, handle structure element bases, diagnose
bitfields, pass IS_OMP recursively, diagnose known zero length
array sections in depend clauses, handle array sections in reduction
clause, diagnose negative length even for pointers.
(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
types, pass IS_OMP down to handle_omp_array_sections_1, handle
array sections in reduction clause, set
OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
gcc/cp/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* class.c (finish_struct_1): Call finish_omp_declare_simd_methods.
* cp-gimplify.c (cp_gimplify_expr): Handle OMP_TASKLOOP.
(cp_genericize_r): Likewise.
(cxx_omp_finish_clause): Don't diagnose references.
(cxx_omp_disregard_value_expr): New function.
* cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Document for OMP_TASKLOOP.
(DECL_OMP_PRIVATIZED_MEMBER): Define.
(finish_omp_declare_simd_methods, push_omp_privatization_clauses,
pop_omp_privatization_clauses, save_omp_privatization_clauses,
restore_omp_privatization_clauses, omp_privatize_field,
cxx_omp_disregard_value_expr): New prototypes.
(finish_omp_clauses): Add two new arguments.
(finish_omp_for): Add ORIG_DECLV argument.
* parser.c (cp_parser_lambda_body): Call
save_omp_privatization_clauses and restore_omp_privatization_clauses.
(cp_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
(cp_parser_omp_var_list_no_open): Handle structure elements for
map, to and from clauses. Handle array sections in reduction
clause. Parse this keyword. Formatting fixes.
(cp_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
if clause modifiers.
(cp_parser_omp_clause_num_tasks, cp_parser_omp_clause_grainsize,
cp_parser_omp_clause_priority, cp_parser_omp_clause_hint,
cp_parser_omp_clause_defaultmap): New functions.
(cp_parser_omp_clause_ordered): Parse optional parameter.
(cp_parser_omp_clause_reduction): Handle array reductions.
(cp_parser_omp_clause_schedule): Parse optional simd modifier.
(cp_parser_omp_clause_nogroup, cp_parser_omp_clause_orderedkind):
New functions.
(cp_parser_omp_clause_linear): Parse linear clause modifiers.
(cp_parser_omp_clause_depend_sink): New function.
(cp_parser_omp_clause_depend): Parse source/sink depend kinds.
(cp_parser_omp_clause_map): Parse release/delete map kinds and
optional always modifier.
(cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_if
and finish_omp_clauses callers.
(cp_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
(OMP_CRITICAL_CLAUSE_MASK): Define.
(cp_parser_omp_critical): Parse critical clauses.
(cp_parser_omp_for_incr): Use cp_tree_equal if
processing_template_decl.
(cp_parser_omp_for_loop_init): Return tree instead of bool. Handle
non-static data member iterators.
(cp_parser_omp_for_loop): Handle doacross loops, adjust
finish_omp_for and finish_omp_clauses callers.
(cp_omp_split_clauses): Adjust finish_omp_clauses caller.
(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
(cp_parser_omp_simd): Allow ordered clause if it has no parameter.
(OMP_FOR_CLAUSE_MASK): Add linear clause.
(cp_parser_omp_for): Disallow ordered clause when combined with
distribute. Disallow linear clause when combined with distribute
and not combined with simd.
(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
(cp_parser_omp_ordered): Add CONTEXT argument, return bool instead
of tree, parse clauses and if depend clause is found, don't parse
a body.
(cp_parser_omp_parallel): Disallow copyin clause on target parallel.
Allow target parallel without for after it.
(OMP_TASK_CLAUSE_MASK): Add priority clause.
(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
(cp_parser_omp_target_data): Diagnose no map clauses or clauses with
invalid kinds.
(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
(cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): New
functions.
(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
defaultmap and is_device_ptr clauses.
(cp_parser_omp_target): Parse target parallel and target simd. Set
OMP_TARGET_COMBINED on combined constructs. Parse target enter data
and target exit data. Diagnose invalid map kinds.
(cp_parser_oacc_cache): Adjust finish_omp_clauses caller.
(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
(cp_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
construct.
(OMP_TASKLOOP_CLAUSE_MASK): Define.
(cp_parser_omp_taskloop): New function.
(cp_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
handle PRAGMA_OMP_TASKLOOP.
(cp_parser_pragma): Handle PRAGMA_OMP_ORDERED here directly,
handle PRAGMA_OMP_TASKLOOP, call push_omp_privatization_clauses
and pop_omp_privatization_clauses around parsing calls.
(cp_parser_cilk_for): Adjust finish_omp_clauses caller.
* pt.c (apply_late_template_attributes): Adjust tsubst_omp_clauses
and finish_omp_clauses callers.
(tsubst_omp_clause_decl): Return NULL if decl is NULL.
For TREE_LIST, copy over OMP_CLAUSE_DEPEND_SINK_NEGATIVE bit.
Use tsubst_expr instead of tsubst_copy, undo convert_from_reference
effects.
(tsubst_omp_clauses): Add ALLOW_FIELDS argument. Handle new
OpenMP 4.5 clauses. Use tsubst_omp_clause_decl for more clauses.
If ALLOW_FIELDS, handle non-static data members in the clauses.
Clear OMP_CLAUSE_LINEAR_STEP if it has been cleared before.
(omp_parallel_combined_clauses): New variable.
(tsubst_omp_for_iterator): Add ORIG_DECLV argument, recur on
OMP_FOR_ORIG_DECLS, handle non-static data member iterators.
Improve handling of clauses on combined constructs.
(tsubst_expr): Call push_omp_privatization_clauses and
pop_omp_privatization_clauses around instantiation of certain
OpenMP constructs, improve handling of clauses on combined
constructs, handle OMP_TASKLOOP, adjust tsubst_omp_for_iterator,
tsubst_omp_clauses and finish_omp_for callers, handle clauses on
critical and ordered, handle OMP_TARGET_{ENTER,EXIT}_DATA.
(instantiate_decl): Call save_omp_privatization_clauses and
restore_omp_privatization_clauses around instantiation.
(dependent_omp_for_p): Fix up comment typo. Handle SCOPE_REF.
* semantics.c (omp_private_member_map, omp_private_member_vec,
omp_private_member_ignore_next): New variables.
(finish_non_static_data_member): Return dummy decl for privatized
non-static data members.
(omp_clause_decl_field, omp_clause_printable_decl,
omp_note_field_privatization, omp_privatize_field): New functions.
(handle_omp_array_sections_1): Fix comment typo.
Add IS_OMP argument, handle structure element bases, diagnose
bitfields, pass IS_OMP recursively, diagnose known zero length
array sections in depend clauses, handle array sections in reduction
clause, diagnose negative length even for pointers.
(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
types, pass IS_OMP down to handle_omp_array_sections_1, handle
array sections in reduction clause, set
OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
(finish_omp_reduction_clause): Handle array sections and arrays.
Use omp_clause_printable_decl.
(finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink):
New functions.
(finish_omp_clauses): Add ALLOW_FIELDS and DECLARE_SIMD arguments.
Handle new OpenMP 4.5 clauses and new restrictions for the old
ones, handle non-static data members, reject this keyword when not
allowed.
(push_omp_privatization_clauses, pop_omp_privatization_clauses,
save_omp_privatization_clauses, restore_omp_privatization_clauses):
New functions.
(handle_omp_for_class_iterator): Handle OMP_TASKLOOP class iterators.
Add collapse and ordered arguments. Fix handling of lastprivate
iterators in doacross loops.
(finish_omp_for): Add ORIG_DECLV argument, handle doacross loops,
adjust c_finish_omp_for, handle_omp_for_class_iterator and
finish_omp_clauses callers. Fill in OMP_CLAUSE_LINEAR_STEP on simd
loops with non-static data member iterators.
gcc/fortran/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
* trans-openmp.c (gfc_trans_omp_clauses): Set
OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
to NULL.
(gfc_trans_omp_critical): Adjust for addition of clauses.
(gfc_trans_omp_ordered): Likewise.
* types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
gcc/lto/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
* lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
gcc/jit/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
* jit-builtins.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
* jit-builtins.h (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
gcc/ada/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
gcc/testsuite/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* c-c++-common/gomp/cancel-1.c (f2): Add map clause to target data.
* c-c++-common/gomp/clauses-1.c: New test.
* c-c++-common/gomp/clauses-2.c: New test.
* c-c++-common/gomp/clauses-3.c: New test.
* c-c++-common/gomp/clauses-4.c: New test.
* c-c++-common/gomp/declare-target-1.c: New test.
* c-c++-common/gomp/declare-target-2.c: New test.
* c-c++-common/gomp/depend-3.c: New test.
* c-c++-common/gomp/depend-4.c: New test.
* c-c++-common/gomp/doacross-1.c: New test.
* c-c++-common/gomp/if-1.c: New test.
* c-c++-common/gomp/if-2.c: New test.
* c-c++-common/gomp/linear-1.c: New test.
* c-c++-common/gomp/map-2.c: New test.
* c-c++-common/gomp/map-3.c: New test.
* c-c++-common/gomp/nesting-1.c (f_omp_parallel,
f_omp_target_data): Add map clause to target data.
* c-c++-common/gomp/nesting-warn-1.c (f_omp_target): Likewise.
* c-c++-common/gomp/ordered-1.c: New test.
* c-c++-common/gomp/ordered-2.c: New test.
* c-c++-common/gomp/ordered-3.c: New test.
* c-c++-common/gomp/pr61486-1.c (foo): Remove linear clause
on non-iterator.
* c-c++-common/gomp/pr61486-2.c (test, test2): Remove ordered
clause and ordered construct where no longer allowed.
* c-c++-common/gomp/priority-1.c: New test.
* c-c++-common/gomp/reduction-1.c: New test.
* c-c++-common/gomp/schedule-simd-1.c: New test.
* c-c++-common/gomp/sink-1.c: New test.
* c-c++-common/gomp/sink-2.c: New test.
* c-c++-common/gomp/sink-3.c: New test.
* c-c++-common/gomp/sink-4.c: New test.
* c-c++-common/gomp/udr-1.c: New test.
* c-c++-common/taskloop-1.c: New test.
* c-c++-common/cpp/openmp-define-3.c: Adjust for the new
value of _OPENMP macro.
* c-c++-common/cilk-plus/PS/body.c (foo): Adjust expected diagnostics.
* c-c++-common/goacc-gomp/nesting-fail-1.c (f_acc_parallel,
f_acc_kernels, f_acc_data, f_acc_loop): Add map clause to target data.
* gcc.dg/gomp/clause-1.c:
* gcc.dg/gomp/reduction-1.c: New test.
* gcc.dg/gomp/sink-fold-1.c: New test.
* gcc.dg/gomp/sink-fold-2.c: New test.
* gcc.dg/gomp/sink-fold-3.c: New test.
* gcc.dg/vect/vect-simd-clone-15.c: New test.
* g++.dg/gomp/clause-1.C (T::test): Remove dg-error on privatization
of non-static data members.
* g++.dg/gomp/clause-3.C (foo): Remove one dg-error directive.
Add some linear clause tests.
* g++.dg/gomp/declare-simd-3.C: New test.
* g++.dg/gomp/linear-1.C: New test.
* g++.dg/gomp/member-1.C: New test.
* g++.dg/gomp/member-2.C: New test.
* g++.dg/gomp/pr66571-2.C: New test.
* g++.dg/gomp/pr67504.C (foo): Add test for ordered clause with
dependent argument.
* g++.dg/gomp/pr67522.C (foo): Add test for invalid array section
in reduction clause.
* g++.dg/gomp/reference-1.C: New test.
* g++.dg/gomp/sink-1.C: New test.
* g++.dg/gomp/sink-2.C: New test.
* g++.dg/gomp/sink-3.C: New test.
* g++.dg/gomp/task-1.C: Remove both dg-error directives.
* g++.dg/gomp/this-1.C: New test.
* g++.dg/gomp/this-2.C: New test.
* g++.dg/vect/simd-clone-2.cc: New test.
* g++.dg/vect/simd-clone-2.h: New test.
* g++.dg/vect/simd-clone-3.cc: New test.
* g++.dg/vect/simd-clone-4.cc: New test.
* g++.dg/vect/simd-clone-4.h: New test.
* g++.dg/vect/simd-clone-5.cc: New test.
include/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* gomp-constants.h (GOMP_MAP_FLAG_ALWAYS): Define.
(enum gomp_map_kind): Add GOMP_MAP_FIRSTPRIVATE,
GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_USE_DEVICE_PTR,
GOMP_MAP_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_ALWAYS_TO,
GOMP_MAP_ALWAYS_FROM, GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT,
GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_DELETE,
GOMP_MAP_RELEASE, GOMP_MAP_FIRSTPRIVATE_POINTER.
(GOMP_MAP_ALWAYS_TO_P, GOMP_MAP_ALWAYS_FROM_P): Define.
(GOMP_TASK_FLAG_UNTIED, GOMP_TASK_FLAG_FINAL, GOMP_TASK_FLAG_MERGEABLE,
GOMP_TASK_FLAG_DEPEND, GOMP_TASK_FLAG_PRIORITY, GOMP_TASK_FLAG_UP,
GOMP_TASK_FLAG_GRAINSIZE, GOMP_TASK_FLAG_IF, GOMP_TASK_FLAG_NOGROUP,
GOMP_TARGET_FLAG_NOWAIT, GOMP_TARGET_FLAG_EXIT_DATA,
GOMP_TARGET_FLAG_UPDATE): Define.
libgomp/
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.
liboffloadmic/
2015-10-13 Ilya Verbin <ilya.verbin@intel.com>
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_dev2dev): New
function.
* plugin/offload_target_main.cpp (__offload_target_tgt2tgt): New
static function, register it in liboffloadmic.
From-SVN: r228777
2015-10-13 21:06:23 +02:00
|
|
|
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 12:08:59 +02:00
|
|
|
2015-10-13 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/67476
|
|
|
|
* testsuite/libgomp.c/autopar-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/autopar-4.c: New test.
|
|
|
|
* testsuite/libgomp.c/autopar-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/autopar-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/autopar-7.c: New test.
|
|
|
|
* testsuite/libgomp.c/autopar-8.c: New test.
|
|
|
|
|
2015-10-12 22:22:30 +02:00
|
|
|
2015-10-12 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
|
|
|
|
initializer.
|
|
|
|
|
2015-10-09 15:55:23 +02:00
|
|
|
2015-10-09 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
|
|
|
|
using load_gcc_lib.
|
|
|
|
|
nvptx offloading linking
gcc/
* config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
(Token, Stmt): Remove structs.
(decls, vars, fns): Remove variables.
(alloc_comment, append_stmt, is_keyword): Remove macros.
(tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
(write_stmt, write_stmts, parse_insn, parse_list_nosemi)
(parse_init, parse_file): Remove functions.
(read_file): Accept a pointer to a length and store into it.
(process): Don't try to parse the input file, just write it out as
a string, but looking for maps. Also write out the length.
(main): Don't use "-S" to compile PTX code.
libgomp/
* oacc-ptx.h: Remove file, moving its content into...
* config/nvptx/fortran.c: ... here...
* config/nvptx/oacc-init.c: ..., here...
* config/nvptx/oacc-parallel.c: ..., and here.
* config/nvptx/openacc.f90: New file.
* plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
(link_ptx): Don't link in predefined bits of PTX code.
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
From-SVN: r228418
2015-10-02 21:43:41 +02:00
|
|
|
2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-ptx.h: Remove file, moving its content into...
|
|
|
|
* config/nvptx/fortran.c: ... here...
|
|
|
|
* config/nvptx/oacc-init.c: ..., here...
|
|
|
|
* config/nvptx/oacc-parallel.c: ..., and here.
|
|
|
|
* config/nvptx/openacc.f90: New file.
|
|
|
|
* plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
|
|
|
|
(link_ptx): Don't link in predefined bits of PTX code.
|
|
|
|
|
2015-09-30 23:35:47 +02:00
|
|
|
2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
|
|
|
|
(struct targ_ptx_obj): New.
|
|
|
|
(nvptx_tdata): Move earlier, change data format.
|
|
|
|
(link_ptx): Take targ_ptx_obj ptr and count. Allow multiple
|
|
|
|
objects.
|
|
|
|
(GOMP_OFFLOAD_load_image): Adjust.
|
|
|
|
|
2015-09-30 10:44:49 +02:00
|
|
|
2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-11.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-2.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-25.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.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-3.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-35.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.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.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
2015-09-29 22:03:33 +02:00
|
|
|
2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-init.c (acc_on_device): Force optimization level.
|
|
|
|
|
2015-09-29 21:45:47 +02:00
|
|
|
2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
|
|
|
|
(cuda_errlist): Delete.
|
|
|
|
(cuda_error): Reimplement.
|
|
|
|
|
gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
inlude/
* gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
(GOMP_DIM_GANG, GOMP_DIM_WORKER, GOMP_DIM_VECTOR, GOMP_DIM_MAX,
GOMP_DIM_MASK): New.
(GOMP_LAUNCH_DIM, GOMP_LAUNCH_ASYNC, GOMP_LAUNCH_WAIT): New.
(GOMP_LAUNCH_CODE_SHIFT, GOMP_LAUNCH_DEVICE_SHIFT,
GOMP_LAUNCH_OP_SHIFT): New.
(GOMP_LAUNCH_PACK, GOMP_LAUNCH_CODE, GOMP_LAUNCH_DEVICE,
GOMP_LAUNCH_OP): New.
(GOMP_LAUNCH_OP_MAX): New.
libgomp/
* libgomp.h (acc_dispatch_t): Replace separate geometry args with
array.
* libgomp.map (GOACC_parallel_keyed): New.
* oacc-parallel.c (goacc_wait): Take pointer to va_list. Adjust
all callers.
(GOACC_parallel_keyed): New interface. Lose geometry arguments
and take keyed varargs list. Adjust call to exec_func.
(GOACC_parallel): Force host fallback.
* libgomp_g.h (GOACC_parallel): Remove.
(GOACC_parallel_keyed): Declare.
* plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
(stuct targ_gn_descriptor): Replace name field with launch field.
(nvptx_exec): Lose separate geometry args, take array. Process
dynamic dimensions and adjust.
(struct nvptx_tdata): Replace fn_names field with fn_descs.
(GOMP_OFFLOAD_load_image): Adjust for change in function table
data.
(GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
passing.
* oacc-host.c (host_openacc_exec): Adjust for change in dimension
passing.
gcc/
* config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
(nvptx_record_offload_symbol): Record function execution geometry.
* config/nvptx/mkoffload.c (process): Include launch geometry in
function data.
* omp-low.c (oacc_launch_pack): New.
(replace_oacc_fn_attrib): New.
(set_oacc_fn_attrib): New.
(get_oacc_fn_attrib): New.
(expand_omp_target): Create keyed varargs for GOACC_parallel call
generation.
* omp-low.h (get_oacc_fn_attrib): Declare.
* builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
* tree.h (OMP_CLAUSE_EXPR): New.
* omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
gcc/c-family/
* c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
gcc/fortran/
* f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
* types.def (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define
From-SVN: r228220
2015-09-28 21:37:33 +02:00
|
|
|
2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp.h (acc_dispatch_t): Replace separate geometry args with
|
|
|
|
array.
|
|
|
|
* libgomp.map (GOACC_parallel_keyed): New.
|
|
|
|
* oacc-parallel.c (goacc_wait): Take pointer to va_list. Adjust
|
|
|
|
all callers.
|
|
|
|
(GOACC_parallel_keyed): New interface. Lose geometry arguments
|
|
|
|
and take keyed varargs list. Adjust call to exec_func.
|
|
|
|
(GOACC_parallel): Force host fallback.
|
|
|
|
* libgomp_g.h (GOACC_parallel): Remove.
|
|
|
|
(GOACC_parallel_keyed): Declare.
|
|
|
|
* plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
|
|
|
|
(stuct targ_gn_descriptor): Replace name field with launch field.
|
|
|
|
(nvptx_exec): Lose separate geometry args, take array. Process
|
|
|
|
dynamic dimensions and adjust.
|
|
|
|
(struct nvptx_tdata): Replace fn_names field with fn_descs.
|
|
|
|
(GOMP_OFFLOAD_load_image): Adjust for change in function table
|
|
|
|
data.
|
|
|
|
(GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
|
|
|
|
passing.
|
|
|
|
* oacc-host.c (host_openacc_exec): Adjust for change in dimension
|
|
|
|
passing.
|
|
|
|
|
2015-09-22 08:45:22 +02:00
|
|
|
2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
PR libgomp/67141
|
|
|
|
* oacc-int.h (goacc_host_init): Add declaration.
|
|
|
|
* oacc-host.c (goacc_host_init): Remove static and constructor attribute.
|
|
|
|
* oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
|
|
|
|
|
2015-09-09 00:18:11 +02:00
|
|
|
2015-09-08 Aditya Kumar <hiraditya@msn.com>
|
|
|
|
Sebastian Pop <s.pop@samsung.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
|
|
|
|
match o/p.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Same.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Same.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Same.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Same.
|
|
|
|
|
2015-09-03 18:20:35 +02:00
|
|
|
2015-09-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* configure.tgt: Add missing ;; in between nvptx and rtems
|
|
|
|
snippets.
|
|
|
|
|
2015-09-03 13:34:28 +02:00
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* config/posix/pool.h (gomp_adjust_thread_attr): New.
|
|
|
|
* config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
|
|
|
|
(gomp_thread_pool_reservoir): Add priority member.
|
|
|
|
* confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
|
|
|
|
priority.
|
|
|
|
(parse_thread_pools): Likewise.
|
|
|
|
* team.c (gomp_team_start): Call configuration provided
|
|
|
|
gomp_adjust_thread_attr(). Destroy thread attributes if
|
|
|
|
necessary.
|
|
|
|
* libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
|
|
|
|
|
2015-09-03 13:29:59 +02:00
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* config/posix/pool.h: New.
|
|
|
|
* config/rtems/pool.h: Likewise.
|
|
|
|
* config/rtems/proc.c: Likewise.
|
|
|
|
* libgomp.h (gomp_thread_destructor): Declare.
|
|
|
|
* team.c: Include configuration provided "pool.h".
|
|
|
|
(gomp_get_thread_pool): Define in configuration.
|
|
|
|
(gomp_team_end): Call configuration defined
|
|
|
|
gomp_release_thread_pool().
|
|
|
|
|
2015-09-03 13:26:36 +02:00
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* config/rtems/bar.c: New.
|
|
|
|
* config/rtems/bar.h: Likewise.
|
|
|
|
* config/rtems/mutex.c: Likewise.
|
|
|
|
* config/rtems/mutex.h: Likewise.
|
|
|
|
* config/rtems/sem.c: Likewise.
|
|
|
|
* config/rtems/sem.h: Likewise.
|
|
|
|
* configure.ac (*-*-rtems*): Check that Newlib provides a proper
|
|
|
|
<sys/lock.h> header file.
|
|
|
|
* configure.tgt (*-*-rtems*): Enable RTEMS configuration if
|
|
|
|
supported by Newlib.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2015-09-03 13:24:34 +02:00
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* team.c (gomp_new_thread_pool): Delete and move content to ...
|
|
|
|
(gomp_get_thread_pool): ... new function. Allocate and
|
|
|
|
initialize thread pool on demand.
|
|
|
|
(get_last_team): Use gomp_get_thread_pool().
|
|
|
|
(gomp_team_start): Delete thread pool initialization.
|
|
|
|
|
2015-09-03 13:01:14 +02:00
|
|
|
2015-09-03 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/65637
|
|
|
|
* testsuite/libgomp.c/autopar-2.c: New test.
|
|
|
|
|
2015-08-29 09:07:51 +02:00
|
|
|
2015-08-29 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/46193
|
|
|
|
* testsuite/libgomp.c/pr46193.c: New test.
|
|
|
|
|
2015-08-24 19:10:06 +02:00
|
|
|
2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
libgomp/
|
|
|
|
* libgomp.map: Add 4.0.2 version.
|
|
|
|
* target.c (offload_image_descr): Add version field.
|
|
|
|
(gomp_load_image_to_device): Add version argument. Adjust plugin
|
|
|
|
call. Improve load mismatch diagnostic.
|
|
|
|
(gomp_unload_image_from_device): Add version argument. Adjust plugin
|
|
|
|
call.
|
|
|
|
(GOMP_offload_regster): Make stub function, move bulk to ...
|
|
|
|
(GOMP_offload_register_ver): ... here. Process version argument.
|
|
|
|
(GOMP_offload_unregister): Make stub function, move bulk to ...
|
|
|
|
(GOMP_offload_unregister_ver): ... here. Process version argument.
|
|
|
|
(gomp_init_device): Process version field.
|
|
|
|
(gomp_unload_device): Process version field.
|
|
|
|
(gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
|
|
|
|
macros. Check plugin version.
|
|
|
|
* libgomp.h (gomp_device_descr): Add version function field. Adjust
|
|
|
|
loader and unloader types.
|
|
|
|
* oacc-host.c: Include gomp-constants.h.
|
|
|
|
(host_version): New.
|
|
|
|
(host_load_image, host_unload_image): Adjust.
|
|
|
|
(host_dispatch): Add host_version.
|
|
|
|
* plugin/plugin-nvptx.c: Include gomp-constants.h.
|
|
|
|
(GOMP_OFFLOAD_version): New.
|
|
|
|
(GOMP_OFFLOAD_load_image): Add version arg and check it.
|
|
|
|
(GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
* plugin/plugin-host.c: Include gomp-constants.h.
|
|
|
|
(GOMP_OFFLOAD_version): New.
|
|
|
|
(GOMP_OFFLOAD_load_image): Add version arg.
|
|
|
|
(GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
|
2015-08-24 17:01:44 +02:00
|
|
|
2015-08-24 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/65468
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
|
|
|
|
|
2015-08-24 15:14:17 +02:00
|
|
|
2015-08-24 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/65468
|
|
|
|
* testsuite/libgomp.c/static-chunk-size-one.c: New test.
|
|
|
|
|
2015-08-24 13:01:25 +02:00
|
|
|
2015-08-24 Joost VandeVondele <vondele@gnu.gcc.org>
|
|
|
|
|
|
|
|
PR libgomp/66761
|
|
|
|
PR libgomp/67303
|
|
|
|
* iter.c (gomp_iter_dynamic_next): Employ an atomic load.
|
|
|
|
(gomp_iter_guided_next): Idem.
|
|
|
|
* iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
|
|
|
|
(gomp_iter_ull_guided_next): Idem.
|
|
|
|
* config/linux/wait.h (do_spin): Idem.
|
|
|
|
|
2015-08-10 18:48:26 +02:00
|
|
|
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp-plugin.h (enum offload_target_type): Remove
|
|
|
|
OFFLOAD_TARGET_TYPE_HOST_NONSHM.
|
|
|
|
* openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
|
|
|
|
* openacc.h (enum acc_device_t): Likewise.
|
|
|
|
* openacc_lib.h: Likewise.
|
|
|
|
* oacc-init.c (name_of_acc_device_t): Don't handle it.
|
|
|
|
(acc_on_device): Just use __builtin_acc_on_device.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
|
|
|
|
of acc_on_device builtin.
|
|
|
|
* plugin/plugin-host.h: Remove file.
|
|
|
|
* plugin/plugin-host.c: Likewise, but salvage some content into...
|
|
|
|
* oacc-host.c: ... this file.
|
|
|
|
* plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
|
|
|
|
* plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* configure: Likewise.
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
(check_effective_target_openacc_host_nonshm_selected): Remove.
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Don't handle
|
|
|
|
ACC_DEVICE_TYPE=host_nonshm.
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
|
|
|
|
|
2015-08-10 17:53:33 +02:00
|
|
|
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* config/nvptx/affinity.c: New file.
|
|
|
|
* config/nvptx/alloc.c: Likewise.
|
|
|
|
* config/nvptx/bar.c: Likewise.
|
|
|
|
* config/nvptx/barrier.c: Likewise.
|
|
|
|
* config/nvptx/critical.c: Likewise.
|
|
|
|
* config/nvptx/env.c: Likewise.
|
|
|
|
* config/nvptx/error.c: Likewise.
|
|
|
|
* config/nvptx/fortran.c: Likewise.
|
|
|
|
* config/nvptx/iter.c: Likewise.
|
|
|
|
* config/nvptx/iter_ull.c: Likewise.
|
|
|
|
* config/nvptx/libgomp-plugin.c: Likewise.
|
|
|
|
* config/nvptx/lock.c: Likewise.
|
|
|
|
* config/nvptx/loop.c: Likewise.
|
|
|
|
* config/nvptx/loop_ull.c: Likewise.
|
|
|
|
* config/nvptx/mutex.c: Likewise.
|
|
|
|
* config/nvptx/oacc-async.c: Likewise.
|
|
|
|
* config/nvptx/oacc-cuda.c: Likewise.
|
|
|
|
* config/nvptx/oacc-host.c: Likewise.
|
|
|
|
* config/nvptx/oacc-init.c: Likewise.
|
|
|
|
* config/nvptx/oacc-mem.c: Likewise.
|
|
|
|
* config/nvptx/oacc-parallel.c: Likewise.
|
|
|
|
* config/nvptx/oacc-plugin.c: Likewise.
|
|
|
|
* config/nvptx/omp-lock.h: Likewise.
|
|
|
|
* config/nvptx/ordered.c: Likewise.
|
|
|
|
* config/nvptx/parallel.c: Likewise.
|
|
|
|
* config/nvptx/proc.c: Likewise.
|
|
|
|
* config/nvptx/ptrlock.c: Likewise.
|
|
|
|
* config/nvptx/sections.c: Likewise.
|
|
|
|
* config/nvptx/sem.c: Likewise.
|
|
|
|
* config/nvptx/single.c: Likewise.
|
|
|
|
* config/nvptx/splay-tree.c: Likewise.
|
|
|
|
* config/nvptx/target.c: Likewise.
|
|
|
|
* config/nvptx/task.c: Likewise.
|
|
|
|
* config/nvptx/team.c: Likewise.
|
|
|
|
* config/nvptx/time.c: Likewise.
|
|
|
|
* config/nvptx/work.c: Likewise.
|
|
|
|
* configure.ac: Don't probe pthreads support for host nvptx*-*-*.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* configure.tgt (config_path): Set to "nvptx" for target
|
|
|
|
nvptx*-*-*.
|
|
|
|
|
2015-08-10 17:22:30 +02:00
|
|
|
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
|
|
|
|
|
2015-08-04 02:40:18 +02:00
|
|
|
2015-08-03 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c: Don't include dlfcn.h.
|
|
|
|
(cuda_errlist): Constify.
|
|
|
|
(errmsg): Move into ...
|
|
|
|
(cuda_error): ... here. Make smaller.
|
|
|
|
(_XSTR, _STR): Delete.
|
|
|
|
(cuda_synames): Delete.
|
|
|
|
(verify_device_library): Delete.
|
|
|
|
(nvptx_init): Don't call it.
|
|
|
|
|
2015-07-28 09:54:04 +02:00
|
|
|
2015-07-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/uns-outer-4.c: New test.
|
|
|
|
|
2015-07-24 16:38:43 +02:00
|
|
|
2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr66714.c: New test.
|
|
|
|
|
2015-07-22 19:19:31 +02:00
|
|
|
2015-07-22 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
PR libgomp/66950
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
|
|
|
|
(fib_ref): New function.
|
|
|
|
(fib): Correct corner cases in the recursion.
|
|
|
|
(main): Replace the non-simd loop with fib_ref call.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
|
|
|
|
subroutine.
|
|
|
|
(fibonacci): Lower the parameter N to 30. Correct accordingly check
|
|
|
|
for the last array element value. Replace the non-simd loop with
|
|
|
|
fib_ref call. Remove redundant b_ref array. Remove the comparison
|
|
|
|
of the last array element with according Fibonacci sequence element.
|
|
|
|
(fib): Correct corner cases in the recursion.
|
|
|
|
|
2015-07-21 15:30:06 +02:00
|
|
|
2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* target.c (gomp_offload_image_to_device): Rename to ...
|
|
|
|
(gomp_load_image_to_device): ... here.
|
|
|
|
(GOMP_offload_register): Adjust call.
|
|
|
|
(gomp_init_device): Likewise.
|
|
|
|
(gomp_unload_image_from_device): New. Broken out of ...
|
|
|
|
(GOMP_offload_unregister): ... here. Call it.
|
|
|
|
(gomp_unload_device): New.
|
|
|
|
* libgomp.h (gomp_unload_device): Declare.
|
|
|
|
* oacc-init.c (acc_shutdown_1): Unload from device before deleting
|
|
|
|
mem maps.
|
|
|
|
|
2015-07-20 18:17:57 +02:00
|
|
|
2015-07-20 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2015-07-20 19:31:46 +02:00
|
|
|
* oacc-parallel.c (GOACC_parallel): Move variadic handling into
|
|
|
|
wait=-specific if.
|
|
|
|
(GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
|
|
|
|
!=0 condition.
|
|
|
|
(goacc_waits): Move !num_waits handling to ...
|
|
|
|
(GOACC_wait): ... here, the only caller that might have zero waits.
|
|
|
|
|
2015-07-20 18:17:57 +02:00
|
|
|
* plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
|
|
|
|
(struct ptx_image_data): Move earlier, add fns field.
|
|
|
|
(struct ptx_device): Add images and image_lock fields.
|
|
|
|
(ptx_images, ptx_image_lock): Delete.
|
|
|
|
(nvptx_open_device): Initialize images and image_lock fields.
|
|
|
|
(nvptx_close_device): Destroy image_lock.
|
|
|
|
(GOMP_OFFLOAD_load_image): Register image to device-specific fields.
|
|
|
|
(GOMP_OFFLOAD_unload_image): Unregister image from device-specific
|
|
|
|
fields.
|
|
|
|
|
2015-07-17 16:07:53 +02:00
|
|
|
2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
2015-07-17 19:17:26 +02:00
|
|
|
* target.c (GOMP_offload_register): Use int for device type arg.
|
|
|
|
(GOMP_offload_unregister): Likewise.
|
|
|
|
|
2015-07-17 19:12:01 +02:00
|
|
|
* target.c (struct_offload_image_descr): Constify host_table.
|
|
|
|
(gomp_offload_image_to_device): Likewise.
|
|
|
|
(GOMP_offload_register, GOMP_offload_unregister): Likewise.
|
|
|
|
|
2015-07-17 16:07:53 +02:00
|
|
|
* libgomp.h (gomp_device_descr): Constify target data arguments.
|
|
|
|
* target.c (struct offload_image_descr): Constify target_data.
|
|
|
|
(gomp_offload_image_to_device): Likewise.
|
|
|
|
(GOMP_offload_register): Likewise.
|
|
|
|
(GOMP_offload_unrefister): Likewise.
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
|
|
|
|
GOMP_OFFLOAD_unload_image): Constify target data.
|
|
|
|
* plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
|
|
|
|
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
|
2015-07-16 19:17:31 +02:00
|
|
|
2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (link_ptx): Constify string argument.
|
|
|
|
Workaround driver library const error.
|
|
|
|
(struct nvptx_tdata, nvptx_tdata_t): New.
|
|
|
|
(GOMP_OFFLOAD_load_image): Use struct for target_data's real
|
|
|
|
type.
|
|
|
|
|
2015-07-15 15:13:10 +02:00
|
|
|
2015-07-15 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
|
|
|
|
of EPS parameter from integer to real.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
|
|
|
|
type of EPS parameter from integer to real.
|
|
|
|
|
2015-07-15 11:11:11 +02:00
|
|
|
2015-07-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* team.c (get_last_team): New.
|
|
|
|
(gomp_new_team): Recycle last non-nested team if possible.
|
|
|
|
(gomp_team_end): Move team work share list free lock destruction
|
|
|
|
to ...
|
|
|
|
(free_team): ... here.
|
|
|
|
|
2015-07-14 20:54:35 +02:00
|
|
|
2015-07-14 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
|
|
|
|
and ref from int to double. Replaced their comparison with
|
|
|
|
an inequality of their difference and EPS.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
|
|
|
|
comparison of pri and a reference number with an inequality of their
|
|
|
|
difference and EPS.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
|
|
|
|
the comparison of sum and sum_ref with an inequality of their
|
|
|
|
difference and EPS.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
|
|
|
|
the comparison of pri and a reference number with an inequality of
|
|
|
|
their difference and EPS.
|
|
|
|
|
2015-07-13 15:08:13 +02:00
|
|
|
2015-07-13 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
|
|
|
|
* testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
|
|
|
|
* testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
|
|
|
|
(vec_mult_ref): Remove v1 and v2 arguments, turn them into local
|
|
|
|
variables.
|
|
|
|
(vec_mult): Likewise. Add #pragma omp taskwait.
|
|
|
|
(main): Adjust caller.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/device-1.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/device-2.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/device-3.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-1.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-2.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-3.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-4.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-5.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-6.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-7.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-8.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target-1.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target-2.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target-3.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target-4.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target-5.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-2.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-3.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-4.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-5.c: ...this.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-6.c: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
|
|
|
|
(vec_mult): Add !$omp taskwait.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
|
|
|
|
|
2015-07-10 10:25:18 +02:00
|
|
|
2015-07-10 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
|
|
|
|
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
|
|
|
|
|
2015-07-08 16:59:59 +02:00
|
|
|
2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
PR libgomp/65099
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
|
|
|
|
in a 64-bit configuration.
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
|
|
|
|
offloading testing if no such device is available.
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
2015-07-08 14:31:00 +02:00
|
|
|
2015-07-08 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
|
|
|
|
second call to f.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
|
2015-07-07 18:25:22 +02:00
|
|
|
2015-07-07 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/66642
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
|
|
|
|
iteration count case.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
|
|
|
|
function, factor out of ...
|
|
|
|
(main): ... here. Test low iteration count case.
|
|
|
|
|
2015-07-06 09:21:48 +02:00
|
|
|
2015-07-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* libgomp.h (gomp_thread_pool): Comment last_team field.
|
|
|
|
|
2015-07-02 10:17:20 +02:00
|
|
|
2015-07-02 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr66702-1.C: Require
|
|
|
|
vect_simd_clones effective target.
|
|
|
|
* testsuite/libgomp.c++/pr66702-2.C: Ditto.
|
|
|
|
|
2015-06-30 17:43:55 +02:00
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
|
|
|
|
already set. Use DEFAULT_CFLAGS in dg-runtest.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
|
|
|
|
"-O2".
|
|
|
|
|
2015-06-30 14:22:04 +02:00
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
|
|
|
|
already set. Use DEFAULT_CFLAGS in dg-runtest.
|
|
|
|
* testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
|
|
|
|
* testsuite/libgomp.c++/pr64824.C: Same.
|
|
|
|
* testsuite/libgomp.c++/pr64868.C: Same.
|
|
|
|
* testsuite/libgomp.c++/pr66199-1.C: Same.
|
|
|
|
* testsuite/libgomp.c++/pr66199-2.C: Same.
|
|
|
|
* testsuite/libgomp.c++/target-2.C: Same.
|
|
|
|
* testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
|
|
|
|
-std=<standard> option.
|
|
|
|
* testsuite/libgomp.c++/udr-11.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-12.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-13.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-14.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-15.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-16.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-17.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-18.C: Same.
|
|
|
|
* testsuite/libgomp.c++/udr-19.C: Same.
|
|
|
|
* testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
|
|
|
|
* testsuite/libgomp.c++/simd-1.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-2.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-3.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-4.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-5.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-6.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-7.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-8.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd-9.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd10.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd11.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd12.C: Same.
|
|
|
|
* testsuite/libgomp.c++/simd13.C: Same.
|
|
|
|
|
2015-06-30 14:12:42 +02:00
|
|
|
2015-06-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/66702
|
|
|
|
* testsuite/libgomp.c++/pr66702-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66702-2.C: New test.
|
|
|
|
|
2015-06-30 13:00:32 +02:00
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
|
|
|
|
|
2015-06-30 10:35:57 +02:00
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/66652
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
|
|
|
|
using restrict pointers.
|
|
|
|
(main): Add arguments to calls to f.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
|
2015-06-23 19:59:59 +02:00
|
|
|
2015-06-23 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
* configure.ac: Fix check for header <sys/sysctl.h>.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
2015-06-23 17:02:25 +02:00
|
|
|
2015-06-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
|
|
|
|
abort.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
|
|
|
|
|
2015-06-19 09:41:37 +02:00
|
|
|
2015-06-19 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
2015-06-19 09:41:44 +02:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
|
|
|
|
acc_device_nvidia.
|
|
|
|
|
2015-06-19 09:41:37 +02:00
|
|
|
PR libgomp/66518
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
2015-06-15 20:10:51 +02:00
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2". Use
|
|
|
|
dg-additional-options for any remaining options.
|
|
|
|
* testsuite/libgomp.c/atomic-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/atomic-4.c: Same.
|
|
|
|
* testsuite/libgomp.c/atomic-5.c: Same.
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Same.
|
|
|
|
* testsuite/libgomp.c/autopar-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/copyin-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/copyin-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/copyin-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Same.
|
|
|
|
* testsuite/libgomp.c/nestedfn-5.c: Same.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr32362-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr32362-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr32362-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr39591-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr39591-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr39591-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr58392.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr58756.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-10.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-11.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-12.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-13.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-14.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-15.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-4.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-5.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-6.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-7.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-8.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-9.c: Same.
|
|
|
|
|
2015-06-15 15:57:04 +02:00
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr35625.c: Fix typo.
|
|
|
|
|
2015-06-15 15:26:12 +02:00
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
|
|
|
|
in dg-options.
|
|
|
|
* testsuite/libgomp.c/atomic-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/debug-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr26171.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr64824.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr64868.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr66133.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr66199-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr66199-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/target-8.c: Same.
|
|
|
|
|
2015-06-15 15:26:03 +02:00
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
|
|
|
|
-std={gnu99,c99}.
|
|
|
|
* testsuite/libgomp.c/for-1.c: Same.
|
|
|
|
* testsuite/libgomp.c/for-2.c: Same.
|
|
|
|
* testsuite/libgomp.c/for-3.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr35625.c: Same.
|
|
|
|
* testsuite/libgomp.c/pr39154.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-16.c: Same.
|
|
|
|
* testsuite/libgomp.c/simd-17.c: Same.
|
|
|
|
|
2015-06-13 10:05:54 +02:00
|
|
|
2015-06-13 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
|
|
|
|
|
2015-06-13 10:05:44 +02:00
|
|
|
2015-06-13 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
|
|
|
|
(N): Define.
|
|
|
|
(main): Use N instead of hardcoded constants.
|
|
|
|
|
2015-06-05 17:57:34 +02:00
|
|
|
2015-06-05 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
merge from gomp4 branch:
|
|
|
|
2015-05-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR tree-optimization/65443
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
|
|
|
|
|
2015-05-29 10:20:29 +02:00
|
|
|
2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/bounds.c: Adjust for
|
|
|
|
cleanup-tree-dump removal.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/pr41118.c: Likewise.
|
|
|
|
|
2015-05-28 15:59:17 +02:00
|
|
|
2015-05-28 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
|
|
|
|
(futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
|
|
|
|
(futex_wake) [!__x86_64__]: Ditto.
|
|
|
|
|
2015-05-28 12:35:39 +02:00
|
|
|
2015-05-28 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
|
|
|
|
function comment. Only call gomp_fatal if new argument is true.
|
|
|
|
(acc_dev_num_out_of_range): New function.
|
|
|
|
(acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
|
|
|
|
acc_dev_num_out_of_range as appropriate.
|
|
|
|
(acc_get_num_devices, acc_set_device_type, acc_get_device_type)
|
2015-05-28 15:59:17 +02:00
|
|
|
(acc_get_device_num, acc_set_device_num): Update calls to
|
|
|
|
resolve_device.
|
2015-05-28 12:35:39 +02:00
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
|
|
|
|
output.
|
|
|
|
|
2015-05-28 11:29:19 +02:00
|
|
|
2015-05-28 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
PR libgomp/65742
|
|
|
|
* oacc-init.c (plugin/plugin-host.h): Include.
|
|
|
|
(acc_on_device): Check whether we're in an offloaded region for
|
|
|
|
host_nonshm
|
|
|
|
plugin. Don't use __builtin_acc_on_device.
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
|
|
|
|
nonshm_exec flag in thread-local data.
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
|
|
|
|
data for host_nonshm plugin.
|
|
|
|
(GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
|
|
|
|
for host_nonshm plugin.
|
|
|
|
* plugin/plugin-host.h: New.
|
|
|
|
|
2015-05-27 21:35:58 +02:00
|
|
|
2015-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
2015-05-27 23:07:09 +02:00
|
|
|
* config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
|
|
|
|
|
|
|
|
2015-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
|
|
|
|
Declare as int.
|
|
|
|
(FUTEX_PRIVATE_FLAG): Remove L suffix.
|
|
|
|
* config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
|
|
|
|
Declare as int.
|
|
|
|
|
|
|
|
2015-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
2015-05-28 15:59:17 +02:00
|
|
|
* config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
|
2015-05-27 21:35:58 +02:00
|
|
|
|
2015-05-27 08:16:37 +02:00
|
|
|
2015-05-27 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
* target.c (gomp_map_pointer): New function abstracting out
|
|
|
|
GOMP_MAP_POINTER handling.
|
|
|
|
(gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
|
|
|
|
gomp_map_pointer().
|
|
|
|
|
2015-05-19 18:16:15 +02:00
|
|
|
2015-05-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/66199
|
|
|
|
* testsuite/libgomp.c/pr66199-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr66199-2.c: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr66199-2.C: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr66199-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr66199-2.f90: New test.
|
|
|
|
|
2015-05-19 13:06:31 +02:00
|
|
|
2015-05-19 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
|
|
|
|
on cuInit failure.
|
|
|
|
|
2015-05-13 18:59:20 +02:00
|
|
|
2015-05-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/66133
|
|
|
|
* testsuite/libgomp.c/pr66133.c: New test.
|
|
|
|
|
2015-05-13 13:24:38 +02:00
|
|
|
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerated with automake-1.11.6.
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
* configure: Likewise.
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
2015-05-09 06:50:35 +02:00
|
|
|
2015-05-08 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
|
|
|
|
_Complex.
|
|
|
|
|
|
|
|
* openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
|
|
|
|
|
2015-05-06 21:10:14 +02:00
|
|
|
2015-05-06 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-init.c (acc_device_lock): Add explanatory comment.
|
|
|
|
(resolve_device): Add comment about locking requirement.
|
|
|
|
(acc_init_1, acc_shutdown_1): Likewise. Add locking around
|
|
|
|
gomp_init_device and gomp_fini_device calls.
|
|
|
|
(acc_get_num_devices, acc_set_device_type, acc_get_device_type)
|
|
|
|
(acc_get_device_num, acc_set_device_num): Add locking around
|
|
|
|
resolve_device and gomp_init_device calls.
|
|
|
|
|
2015-05-06 18:45:49 +02:00
|
|
|
2015-05-06 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
|
|
|
|
goacc_thread_lock on error paths.
|
|
|
|
* oacc-mem.c (lookup_host): Remove locking from function. Note
|
|
|
|
locking requirement for caller in function comment.
|
|
|
|
(lookup_dev): Likewise.
|
|
|
|
(acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
|
|
|
|
(acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
|
|
|
|
(update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
|
|
|
|
Add locking.
|
|
|
|
|
2015-05-05 11:39:29 +02:00
|
|
|
2015-05-05 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
PR testsuite/65205
|
|
|
|
PR libgomp/65993
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
|
|
|
|
don't expect "0x" prefix for "%p" format specifier, don't expect
|
|
|
|
"(nil)" for NULL pointer.
|
|
|
|
* 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-25.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.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-35.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.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.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
|
|
|
|
accurately specify what we're looking for.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
2015-04-30 14:44:39 +02:00
|
|
|
2015-04-30 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
PR testsuite/65205
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
(check_effective_target_openacc_host_selected)
|
|
|
|
(check_effective_target_openacc_host_nonshm_selected): New
|
|
|
|
procedures.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
|
|
|
|
dg-shouldfail.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-11.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-2.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-25.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.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-3.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-35.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.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.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
|
|
|
|
|
mkoffload.c (process): Support variable mapping.
gcc/
* config/nvptx/mkoffload.c (process): Support variable mapping.
libgomp/
* libgomp.h (target_mem_desc: Remove mem_map field.
(acc_dispatch_t): Remove open_device_func, close_device_func,
get_device_num_func, set_device_num_func, target_data members.
Change create_thread_data_func argument to device number instead of
generic pointer.
* oacc-async.c (assert.h): Include.
(acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
(acc_wait_all, acc_wait_all_async): Use current host thread's
active device, not base_dev.
* oacc-cuda.c (acc_get_current_cuda_device)
(acc_get_current_cuda_context, acc_get_cuda_stream)
(acc_set_cuda_stream): Likewise.
* oacc-host.c (host_dispatch): Don't set open_device_func,
close_device_func, get_device_num_func or set_device_num_func.
* oacc-init.c (base_dev, init_key): Remove.
(cached_base_dev): New.
(name_of_acc_device_t): New.
(acc_init_1): Initialise default-numbered device, not zeroth.
(acc_shutdown_1): Close all devices of a given type.
(goacc_destroy_thread): Don't use base_dev.
(lazy_open, lazy_init, lazy_init_and_open): Remove.
(goacc_attach_host_thread_to_device): New.
(acc_init): Reimplement with goacc_attach_host_thread_to_device.
(acc_get_num_devices): Don't use base_dev.
(acc_set_device_type): Reimplement.
(acc_get_device_type): Don't use base_dev.
(acc_get_device_num): Tweak logic.
(acc_set_device_num): Likewise.
(acc_on_device): Use acc_get_device_type.
(goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
(goacc_lazy_initialize): Reimplement with acc_init and
goacc_attach_host_thread_to_device.
* oacc-int.h (goacc_thread): Add base_dev field.
(base_dev): Remove extern declaration.
(goacc_attach_host_thread_to_device): Add prototype.
* oacc-mem.c (acc_malloc): Use current thread's device instead of
base_dev.
(acc_free): Likewise.
(acc_memcpy_to_device): Likewise.
(acc_memcpy_from_device): Likewise.
* oacc-parallel.c (select_acc_device): Remove. Replace calls with
goacc_lazy_initialize (throughout).
(GOACC_parallel): Use tgt_offset to locate target functions.
* target.c (gomp_map_vars): Don't set tgt->mem_map.
(gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
(gomp_load_plugin_for_device): Remove open_device, close_device,
get_device_num, set_device_num openacc hook initialisation. Don't set
openacc.target_data.
* plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
(GOMP_OFFLOAD_openacc_close_device)
(GOMP_OFFLOAD_openacc_get_device_num)
(GOMP_OFFLOAD_openacc_set_device_num): Remove.
(GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
to int.
* plugin/plugin-nvptx.c (ptx_inited): Remove.
(instantiated_devices, ptx_dev_lock): New.
(struct ptx_image_data): New.
(ptx_devices, ptx_images, ptx_image_lock): New.
(fini_streams_for_device): Reorder cuStreamDestroy call.
(nvptx_get_num_devices): Remove forward declaration.
(nvptx_init): Change return type to bool.
(nvptx_fini): Remove.
(nvptx_attach_host_thread_to_device): New.
(nvptx_open_device): Return struct ptx_device* instead of void*.
(nvptx_close_device): Change argument type to struct ptx_device*,
return type to void.
(nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
(kernel_target_data, kernel_host_table): Remove static globals.
(GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
(GOMP_OFFLOAD_init_device): Reimplement.
(GOMP_OFFLOAD_fini_device): Likewise.
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
(GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
(GOMP_OFFLOAD_host2dev): Use ORD argument.
(GOMP_OFFLOAD_openacc_open_device)
(GOMP_OFFLOAD_openacc_close_device)
(GOMP_OFFLOAD_openacc_set_device_num)
(GOMP_OFFLOAD_openacc_get_device_num): Remove.
(GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
(device number).
libgomp/testsuite/
* libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
From-SVN: r221922
2015-04-08 17:58:33 +02:00
|
|
|
2015-04-08 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp.h (target_mem_desc: Remove mem_map field.
|
|
|
|
(acc_dispatch_t): Remove open_device_func, close_device_func,
|
|
|
|
get_device_num_func, set_device_num_func, target_data members.
|
|
|
|
Change create_thread_data_func argument to device number instead of
|
|
|
|
generic pointer.
|
|
|
|
* oacc-async.c (assert.h): Include.
|
|
|
|
(acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
|
|
|
|
(acc_wait_all, acc_wait_all_async): Use current host thread's
|
|
|
|
active device, not base_dev.
|
|
|
|
* oacc-cuda.c (acc_get_current_cuda_device)
|
|
|
|
(acc_get_current_cuda_context, acc_get_cuda_stream)
|
|
|
|
(acc_set_cuda_stream): Likewise.
|
|
|
|
* oacc-host.c (host_dispatch): Don't set open_device_func,
|
|
|
|
close_device_func, get_device_num_func or set_device_num_func.
|
|
|
|
* oacc-init.c (base_dev, init_key): Remove.
|
|
|
|
(cached_base_dev): New.
|
|
|
|
(name_of_acc_device_t): New.
|
|
|
|
(acc_init_1): Initialise default-numbered device, not zeroth.
|
|
|
|
(acc_shutdown_1): Close all devices of a given type.
|
|
|
|
(goacc_destroy_thread): Don't use base_dev.
|
|
|
|
(lazy_open, lazy_init, lazy_init_and_open): Remove.
|
|
|
|
(goacc_attach_host_thread_to_device): New.
|
|
|
|
(acc_init): Reimplement with goacc_attach_host_thread_to_device.
|
|
|
|
(acc_get_num_devices): Don't use base_dev.
|
|
|
|
(acc_set_device_type): Reimplement.
|
|
|
|
(acc_get_device_type): Don't use base_dev.
|
|
|
|
(acc_get_device_num): Tweak logic.
|
|
|
|
(acc_set_device_num): Likewise.
|
|
|
|
(acc_on_device): Use acc_get_device_type.
|
|
|
|
(goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
|
|
|
|
(goacc_lazy_initialize): Reimplement with acc_init and
|
|
|
|
goacc_attach_host_thread_to_device.
|
|
|
|
* oacc-int.h (goacc_thread): Add base_dev field.
|
|
|
|
(base_dev): Remove extern declaration.
|
|
|
|
(goacc_attach_host_thread_to_device): Add prototype.
|
|
|
|
* oacc-mem.c (acc_malloc): Use current thread's device instead of
|
|
|
|
base_dev.
|
|
|
|
(acc_free): Likewise.
|
|
|
|
(acc_memcpy_to_device): Likewise.
|
|
|
|
(acc_memcpy_from_device): Likewise.
|
|
|
|
* oacc-parallel.c (select_acc_device): Remove. Replace calls with
|
|
|
|
goacc_lazy_initialize (throughout).
|
|
|
|
(GOACC_parallel): Use tgt_offset to locate target functions.
|
|
|
|
* target.c (gomp_map_vars): Don't set tgt->mem_map.
|
|
|
|
(gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
|
|
|
|
(gomp_load_plugin_for_device): Remove open_device, close_device,
|
|
|
|
get_device_num, set_device_num openacc hook initialisation. Don't set
|
|
|
|
openacc.target_data.
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
|
|
|
|
(GOMP_OFFLOAD_openacc_close_device)
|
|
|
|
(GOMP_OFFLOAD_openacc_get_device_num)
|
|
|
|
(GOMP_OFFLOAD_openacc_set_device_num): Remove.
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
|
|
|
|
to int.
|
|
|
|
* plugin/plugin-nvptx.c (ptx_inited): Remove.
|
|
|
|
(instantiated_devices, ptx_dev_lock): New.
|
|
|
|
(struct ptx_image_data): New.
|
|
|
|
(ptx_devices, ptx_images, ptx_image_lock): New.
|
|
|
|
(fini_streams_for_device): Reorder cuStreamDestroy call.
|
|
|
|
(nvptx_get_num_devices): Remove forward declaration.
|
|
|
|
(nvptx_init): Change return type to bool.
|
|
|
|
(nvptx_fini): Remove.
|
|
|
|
(nvptx_attach_host_thread_to_device): New.
|
|
|
|
(nvptx_open_device): Return struct ptx_device* instead of void*.
|
|
|
|
(nvptx_close_device): Change argument type to struct ptx_device*,
|
|
|
|
return type to void.
|
|
|
|
(nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
|
|
|
|
(kernel_target_data, kernel_host_table): Remove static globals.
|
|
|
|
(GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
|
|
|
|
(GOMP_OFFLOAD_init_device): Reimplement.
|
|
|
|
(GOMP_OFFLOAD_fini_device): Likewise.
|
|
|
|
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
|
|
|
|
(GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
|
|
|
|
(GOMP_OFFLOAD_host2dev): Use ORD argument.
|
|
|
|
(GOMP_OFFLOAD_openacc_open_device)
|
|
|
|
(GOMP_OFFLOAD_openacc_close_device)
|
|
|
|
(GOMP_OFFLOAD_openacc_set_device_num)
|
|
|
|
(GOMP_OFFLOAD_openacc_get_device_num): Remove.
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
|
|
|
|
(device number).
|
|
|
|
|
|
|
|
testsuite/
|
|
|
|
* libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
|
|
|
|
|
libgomp: rework initialization of offloading
gcc/
* config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
GOMP_offload_unregister from the destructor.
libgomp/
* libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
* libgomp.h (struct gomp_memory_mapping): Remove.
(struct target_mem_desc): Change type of mem_map from
gomp_memory_mapping * to splay_tree_s *.
(struct gomp_device_descr): Remove register_image_func, get_table_func.
Add load_image_func, unload_image_func.
Change type of mem_map from gomp_memory_mapping to splay_tree_s.
Remove offload_regions_registered.
(gomp_init_tables): Remove.
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
to splay_tree_s *.
* libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
* oacc-host.c (host_dispatch): Do not initialize register_image_func,
get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
offload_regions_registered.
Initialize load_image_func, unload_image_func, mem_map.root.
(goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
* oacc-init.c (lazy_open): Don't call gomp_init_tables.
(acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
* oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
gomp_memory_mapping *. Use dev's lock and splay_tree.
(lookup_dev): Use dev's lock.
(acc_deviceptr): Pass dev to lookup_host instead of mem_map.
(acc_is_present): Likewise.
(acc_map_data): Likewise.
(acc_unmap_data): Likewise. Use dev's lock.
(present_create_copy): Likewise.
(delete_copyout): Pass dev to lookup_host instead of mem_map.
(update_dev_host): Likewise.
(gomp_acc_remove_pointer): Likewise. Use dev's lock.
* oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
* plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
(GOMP_OFFLOAD_get_table): Remove
(GOMP_OFFLOAD_load_image): New function.
(GOMP_OFFLOAD_unload_image): New function.
* target.c (register_lock): New mutex for offload image registration.
(num_devices): Do not guard with PLUGIN_SUPPORT.
(gomp_realloc_unlock): New static function.
(gomp_map_vars_existing): Add device descriptor argument. Unlock mutex
before gomp_fatal.
(gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal.
(gomp_copy_from_async): Use dev's lock and splay_tree instead of
mem_map's.
(gomp_unmap_vars): Likewise.
(gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and
splay_tree instead of mm's. Unlock mutex before gomp_fatal.
(gomp_offload_image_to_device): New static function.
(GOMP_offload_register): Add mutex lock.
Call gomp_offload_image_to_device for all initialized devices.
Replace gomp_realloc with gomp_realloc_unlock.
(GOMP_offload_unregister): New function.
(gomp_init_tables): Replace with gomp_init_device. Replace a call to
get_table_func from the plugin with calls to init_device_func and
gomp_offload_image_to_device.
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
to splay_tree_s *.
(GOMP_target): Do not call gomp_init_tables. Use dev's lock and
splay_tree instead of mem_map's. Unlock mutex before gomp_fatal.
(GOMP_target_data): Do not call gomp_init_tables.
(GOMP_target_update): Likewise. Remove argument from gomp_update.
(gomp_load_plugin_for_device): Replace register_image and get_table
with load_image and unload_image in DLSYM ().
(gomp_register_images_for_device): Remove function.
(gomp_target_init): Do not initialize current_device.mem_map.*,
current_device.offload_regions_registered.
Remove call to gomp_register_images_for_device.
Do not free offload_images and num_offload_images.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp: Include map.
(AddrVect, DevAddrVect, ImgDevAddrMap): New typedefs.
(num_devices, num_images, address_table): New static vars.
(num_libraries, lib_descrs): Remove static vars.
(set_mic_lib_path): Rename to ...
(init): ... this. Allocate address_table and get num_devices.
(GOMP_OFFLOAD_get_num_devices): return num_devices.
(load_lib_and_get_table): Remove static function.
(offload_image): New static function.
(GOMP_OFFLOAD_get_table): Remove function.
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New functions.
From-SVN: r221878
2015-04-06 14:40:28 +02:00
|
|
|
2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
|
|
|
|
* libgomp.h (struct gomp_memory_mapping): Remove.
|
|
|
|
(struct target_mem_desc): Change type of mem_map from
|
|
|
|
gomp_memory_mapping * to splay_tree_s *.
|
|
|
|
(struct gomp_device_descr): Remove register_image_func, get_table_func.
|
|
|
|
Add load_image_func, unload_image_func.
|
|
|
|
Change type of mem_map from gomp_memory_mapping to splay_tree_s.
|
|
|
|
Remove offload_regions_registered.
|
|
|
|
(gomp_init_tables): Remove.
|
|
|
|
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
|
|
|
|
to splay_tree_s *.
|
|
|
|
* libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
|
|
|
|
* oacc-host.c (host_dispatch): Do not initialize register_image_func,
|
|
|
|
get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
|
|
|
|
offload_regions_registered.
|
|
|
|
Initialize load_image_func, unload_image_func, mem_map.root.
|
|
|
|
(goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
|
|
|
|
* oacc-init.c (lazy_open): Don't call gomp_init_tables.
|
|
|
|
(acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
|
|
|
|
* oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
|
|
|
|
gomp_memory_mapping *. Use dev's lock and splay_tree.
|
|
|
|
(lookup_dev): Use dev's lock.
|
|
|
|
(acc_deviceptr): Pass dev to lookup_host instead of mem_map.
|
|
|
|
(acc_is_present): Likewise.
|
|
|
|
(acc_map_data): Likewise.
|
|
|
|
(acc_unmap_data): Likewise. Use dev's lock.
|
|
|
|
(present_create_copy): Likewise.
|
|
|
|
(delete_copyout): Pass dev to lookup_host instead of mem_map.
|
|
|
|
(update_dev_host): Likewise.
|
|
|
|
(gomp_acc_remove_pointer): Likewise. Use dev's lock.
|
|
|
|
* oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
|
|
|
|
(GOMP_OFFLOAD_get_table): Remove
|
|
|
|
(GOMP_OFFLOAD_load_image): New function.
|
|
|
|
(GOMP_OFFLOAD_unload_image): New function.
|
|
|
|
* target.c (register_lock): New mutex for offload image registration.
|
|
|
|
(num_devices): Do not guard with PLUGIN_SUPPORT.
|
|
|
|
(gomp_realloc_unlock): New static function.
|
|
|
|
(gomp_map_vars_existing): Add device descriptor argument. Unlock mutex
|
|
|
|
before gomp_fatal.
|
|
|
|
(gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
|
|
|
|
Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal.
|
|
|
|
(gomp_copy_from_async): Use dev's lock and splay_tree instead of
|
|
|
|
mem_map's.
|
|
|
|
(gomp_unmap_vars): Likewise.
|
|
|
|
(gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and
|
|
|
|
splay_tree instead of mm's. Unlock mutex before gomp_fatal.
|
|
|
|
(gomp_offload_image_to_device): New static function.
|
|
|
|
(GOMP_offload_register): Add mutex lock.
|
|
|
|
Call gomp_offload_image_to_device for all initialized devices.
|
|
|
|
Replace gomp_realloc with gomp_realloc_unlock.
|
|
|
|
(GOMP_offload_unregister): New function.
|
|
|
|
(gomp_init_tables): Replace with gomp_init_device. Replace a call to
|
|
|
|
get_table_func from the plugin with calls to init_device_func and
|
|
|
|
gomp_offload_image_to_device.
|
|
|
|
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
|
|
|
|
to splay_tree_s *.
|
|
|
|
(GOMP_target): Do not call gomp_init_tables. Use dev's lock and
|
|
|
|
splay_tree instead of mem_map's. Unlock mutex before gomp_fatal.
|
|
|
|
(GOMP_target_data): Do not call gomp_init_tables.
|
|
|
|
(GOMP_target_update): Likewise. Remove argument from gomp_update.
|
|
|
|
(gomp_load_plugin_for_device): Replace register_image and get_table
|
|
|
|
with load_image and unload_image in DLSYM ().
|
|
|
|
(gomp_register_images_for_device): Remove function.
|
|
|
|
(gomp_target_init): Do not initialize current_device.mem_map.*,
|
|
|
|
current_device.offload_regions_registered.
|
|
|
|
Remove call to gomp_register_images_for_device.
|
|
|
|
Do not free offload_images and num_offload_images.
|
|
|
|
|
2015-03-30 19:54:05 +02:00
|
|
|
2015-03-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/65597
|
|
|
|
* testsuite/libgomp.fortran/pr65597.f90: New test.
|
|
|
|
|
2015-03-27 13:10:16 +01:00
|
|
|
2015-03-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR testsuite/65594
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
|
|
|
|
(init, check): New function.
|
|
|
|
(foo): Change return type to void.
|
|
|
|
(main): Call init and check.
|
|
|
|
|
2015-03-27 13:10:07 +01:00
|
|
|
2015-03-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR testsuite/65594
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
|
|
|
|
(foo): Use M for non-inner loops to scale down test-case.
|
|
|
|
|
2015-03-25 16:05:02 +01:00
|
|
|
2015-03-25 Kai Tietz <ktietz@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/64972
|
|
|
|
* oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
|
|
|
|
(GOACC_data_start): Likewise.
|
|
|
|
* target.c (gomp_map_vars): Likewise.
|
|
|
|
|
2015-03-21 17:19:43 +01:00
|
|
|
2015-03-21 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
|
|
|
|
hppa*-*-hpux*.
|
|
|
|
|
2015-03-19 20:12:43 +01:00
|
|
|
2015-03-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-10.c: New test.
|
|
|
|
* testsuite/libgomp.c++/target-4.C: New test.
|
|
|
|
|
2015-03-13 14:30:26 +01:00
|
|
|
2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/declare-target-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/declare-target-2.f90: New file.
|
|
|
|
|
2015-03-13 11:57:07 +01:00
|
|
|
2015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
* configure.tgt (*-*-rtems*): Use local-exec TLS model.
|
|
|
|
* configure.ac (*-*-rtems*): Assume Pthread is supported.
|
|
|
|
(pthread.h): Check for this header file.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2015-02-25 16:38:38 +01:00
|
|
|
2015-02-25 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
|
|
|
|
(check_reduction_op, check_reduction_macro, max, min):
|
|
|
|
Declare.
|
|
|
|
(test_reductions_int, test_reductions_minmax, test_reductions_bool): New
|
|
|
|
function.
|
|
|
|
(main): Use new functions.
|
|
|
|
|
2015-02-18 14:33:43 +01:00
|
|
|
2015-02-18 Ilya Tocar <ilya.tocar@intel.com>
|
|
|
|
|
|
|
|
* target.c (gomp_load_plugin_for_device): Use const char * instead of
|
|
|
|
char * for variables holding dlerror return values.
|
|
|
|
(DLSYM_OPT): Ditto.
|
|
|
|
|
2015-02-17 19:24:07 +01:00
|
|
|
2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
|
|
|
|
|
2015-02-17 19:05:24 +01:00
|
|
|
2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
|
|
|
|
GOACC_ctaid, and GOACC_nctaid routines.
|
|
|
|
|
2015-02-11 14:40:31 +01:00
|
|
|
2015-02-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c/64824
|
|
|
|
* testsuite/libgomp.c/atomic-18.c: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-16.C: New test.
|
|
|
|
|
2015-02-04 23:32:36 +01:00
|
|
|
2015-02-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c/64824
|
|
|
|
PR c/64868
|
|
|
|
* testsuite/libgomp.c/pr64824.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr64868.c: New test.
|
|
|
|
* testsuite/libgomp.c++/pr64824.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr64868.C: New test.
|
|
|
|
|
2015-02-02 04:31:31 +01:00
|
|
|
2015-02-01 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/64635
|
|
|
|
* configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
|
|
|
|
Link with -lpthread.
|
|
|
|
* config/aix/plugin-suffix.h: Delete.
|
|
|
|
|
2015-01-28 22:23:14 +01:00
|
|
|
2015-01-28 Jack Howarth <howarth.at.gcc@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/64635
|
|
|
|
* configure.tgt (*-*-aix*): Use config_path "aix posix".
|
|
|
|
(*-*-darwin*): Use config_path "bsd darwin posix".
|
|
|
|
(*-*-hpux*): Use config_path "hpux posix".
|
|
|
|
* target.c: Add include of plugin-suffix.h and use
|
|
|
|
SONAME_SUFFIX macro.
|
|
|
|
* config/aix/plugin-suffix.h: New file.
|
|
|
|
* config/darwin/plugin-suffix.h: New file.
|
|
|
|
* config/hpux/plugin-suffix.h: New file.
|
|
|
|
* config/posix/plugin-suffix.h: New file.
|
|
|
|
|
2015-01-23 19:19:50 +01:00
|
|
|
2015-01-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/64734
|
|
|
|
* libgomp.c/pr64734.c: New test.
|
|
|
|
|
2015-01-23 13:54:16 +01:00
|
|
|
2015-01-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR libgomp/64672
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
|
|
|
|
|
2015-01-23 13:53:55 +01:00
|
|
|
2015-01-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
PR libgomp/64707
|
|
|
|
* testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
|
|
|
|
dg-options.
|
|
|
|
|
[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/
* omp-low.c (offload_symbol_decl): Remove variable.
(get_offload_symbol_decl): Remove function.
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
BUILT_IN_GOACC_UPDATE don't pass it at all.
libgomp/
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
formal parameter. Update all users.
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
Document unused formal parameter.
From-SVN: r219836
2015-01-19 13:03:35 +01:00
|
|
|
2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/
* omp-low.c (offload_symbol_decl): Remove variable.
(get_offload_symbol_decl): Remove function.
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
BUILT_IN_GOACC_UPDATE don't pass it at all.
libgomp/
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
formal parameter. Update all users.
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
Document unused formal parameter.
From-SVN: r219837
2015-01-19 13:05:43 +01:00
|
|
|
PR libgomp/64625
|
[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/
* omp-low.c (offload_symbol_decl): Remove variable.
(get_offload_symbol_decl): Remove function.
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
BUILT_IN_GOACC_UPDATE don't pass it at all.
libgomp/
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
formal parameter. Update all users.
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
Document unused formal parameter.
From-SVN: r219836
2015-01-19 13:03:35 +01:00
|
|
|
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
|
|
|
|
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
|
|
|
|
formal parameter. Update all users.
|
|
|
|
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
|
|
|
|
Document unused formal parameter.
|
|
|
|
|
2015-01-16 21:05:21 +01:00
|
|
|
2015-01-16 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* oacc-parallel.c: Don't include <alloca.h>.
|
|
|
|
(GOACC_parallel): Use gomp_alloca instead of alloca.
|
|
|
|
|
2015-01-16 15:27:55 +01:00
|
|
|
2015-01-16 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
* target.c (num_devices): Guard with PLUGIN_SUPPORT.
|
|
|
|
|
Merge current set of OpenACC changes from gomp-4_0-branch.
contrib/
* gcc_update (files_and_dependencies): Update rules for new
libgomp/plugin/Makefrag.am and libgomp/plugin/configfrag.ac files.
gcc/
* builtin-types.def (BT_FN_VOID_INT_INT_VAR)
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
New function types.
* builtins.c: Include "gomp-constants.h".
(expand_builtin_acc_on_device): New function.
(expand_builtin, is_inexpensive_builtin): Handle
BUILT_IN_ACC_ON_DEVICE.
* builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
New macros.
* cgraph.c (cgraph_node::create): Consider flag_openacc next to
flag_openmp.
* config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
<*-intelmic-* | *-intelmicemul-*> (tm_file): Add
i386/intelmic-offload.h.
* gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
to libgomp and its dependencies.
* config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
* config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
* config/ia64/hpux.h (LIB_SPEC): Likewise.
* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
* doc/generic.texi: Update for OpenACC changes.
* doc/gimple.texi: Likewise.
* doc/invoke.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle
GF_OMP_FOR_KIND_OACC_LOOP.
(dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
GF_OMP_TARGET_KIND_OACC_UPDATE,
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
Dump more data.
* gimple.c: Update comments for OpenACC changes.
* gimple.def: Likewise.
* gimple.h: Likewise.
(enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
(gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
appropriate place.
(is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
* gimplify.c: Include "gomp-constants.h".
Update comments for OpenACC changes.
(is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
OMP_CLAUSE_SEQ.
(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
(gimplify_oacc_cache): New function.
(gimplify_omp_for): Handle OACC_LOOP.
(gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
OACC_DATA.
(gimplify_omp_target_update): Handle OACC_ENTER_DATA,
OACC_EXIT_DATA, OACC_UPDATE.
(gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
(gimplify_body): Consider flag_openacc next to flag_openmp.
* lto-streamer-out.c: Include "gomp-constants.h".
* omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
(BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
(BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
(BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
(BUILT_IN_ACC_ON_DEVICE): New builtins.
* omp-low.c: Include "gomp-constants.h".
Update comments for OpenACC changes.
(struct omp_context): Add reduction_map, gwv_below, gwv_this
members.
(extract_omp_for_data, use_pointer_for_field, install_var_field)
(new_omp_context, delete_omp_context, scan_sharing_clauses)
(create_omp_child_function, scan_omp_for, scan_omp_target)
(check_omp_nesting_restrictions, lower_reduction_clauses)
(build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
Update for OpenACC changes.
(scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
OMP_CLAUSE_MAP_*.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Handle GF_OMP_FOR_KIND_OACC_LOOP.
(expand_omp_target, lower_omp_target): Handle
GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
GF_OMP_TARGET_KIND_OACC_UPDATE,
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
GF_OMP_TARGET_KIND_OACC_DATA.
(pass_expand_omp::execute, execute_lower_omp)
(pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
flag_openmp.
(offload_symbol_decl): New variable.
(oacc_get_reduction_array_id, oacc_max_threads)
(get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
(maybe_lookup_oacc_reduction, enclosing_target_ctx)
(oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
(oacc_gimple_assign, oacc_initialize_reduction_data)
(oacc_finalize_reduction_data, oacc_process_reduction_data): New
functions.
(is_targetreg_ctx): Remove function.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
* tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
* tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
(OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
(OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
(OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
(OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
* tree-core.h: Update comments for OpenACC changes.
(enum omp_clause_map_kind): Remove.
(struct tree_omp_clause): Change type of map_kind member from enum
omp_clause_map_kind to unsigned char.
* tree-inline.c: Update comments for OpenACC changes.
* tree-nested.c: Likewise. Include "gomp-constants.h".
(convert_nonlocal_reference_stmt, convert_local_reference_stmt)
(convert_tramp_reference_stmt, convert_gimple_call): Update for
OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
* tree-pretty-print.c: Include "gomp-constants.h".
(dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
instead of OMP_CLAUSE_MAP_*.
(dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
* tree-streamer-in.c: Include "gomp-constants.h".
(unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
* tree-streamer-out.c: Include "gomp-constants.h".
(pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
OMP_CLAUSE_MAP_*.
* tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
(OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
(OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
* tree.c (omp_clause_num_ops): Update accordingly.
* tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
Likewise.
(OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
(OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
(OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
(OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
(OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
(OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
* tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
(OMP_CLAUSE_SET_MAP_KIND): New macro.
* varpool.c (varpool_node::get_create): Consider flag_openacc next
to flag_openmp.
* config/i386/intelmic-offload.h: New file.
* config/nvptx/offload.h: Likewise.
gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8)
(DEF_FUNCTION_TYPE_VAR_12): New macros.
gcc/c-family/
* c.opt (fopenacc): New option.
* c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
* c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
New macros.
* c-common.h (c_finish_oacc_wait): New prototype.
* c-omp.c: Include "omp-low.h" and "gomp-constants.h".
(c_finish_oacc_wait): New function.
* c-pragma.c (oacc_pragmas): New variable.
(c_pp_lookup_pragma, init_pragma): Handle it.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
PRAGMA_OACC_CLAUSE_WORKER.
gcc/c/
* c-parser.c: Include "gomp-constants.h".
(c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
Use OMP_CLAUSE_SET_MAP_KIND.
(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
(c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
(c_parser_omp_clause_name): Handle "auto", "async", "copy",
"copyout", "create", "delete", "deviceptr", "gang", "host",
"num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
"present_or_create", "pcreate", "seq", "self", "vector",
"vector_length", "wait", "worker".
(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
(OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
(c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
(c_parser_oacc_wait_list, c_parser_oacc_data_clause)
(c_parser_oacc_data_clause_deviceptr)
(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
(c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
(c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
(c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
(c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
(c_parser_oacc_parallel, c_parser_oacc_update)
(c_parser_oacc_wait): New functions.
* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
(c_finish_oacc_data): New prototypes.
* c-typeck.c: Include "gomp-constants.h".
(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
(c_finish_oacc_parallel, c_finish_oacc_kernels)
(c_finish_oacc_data): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
GOMP_MAP_FORCE_DEVICEPTR.
gcc/cp/
* parser.c: Include "gomp-constants.h".
(cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
Use OMP_CLAUSE_SET_MAP_KIND.
(cp_parser_omp_construct, cp_parser_pragma): Handle
PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
(cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
"create", "delete", "deviceptr", "host", "num_gangs",
"num_workers", "present", "present_or_copy", "pcopy",
"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
"present_or_create", "pcreate", "vector_length", "wait".
(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
(OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
(cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
(cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
(cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
(cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
(cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
(cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
(cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
(cp_parser_oacc_kernels, cp_parser_oacc_loop)
(cp_parser_oacc_parallel, cp_parser_oacc_update)
(cp_parser_oacc_wait): New functions.
* cp-tree.h (finish_oacc_data, finish_oacc_kernels)
(finish_oacc_parallel): New prototypes.
* semantics.c: Include "gomp-constants.h".
(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
(finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
(finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
functions.
gcc/fortran/
* lang.opt (fopenacc): New option.
* cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
* dump-parse-tree.c (show_omp_node): Split part of it into...
(show_omp_clauses): ... this new function.
(show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
(show_namespace): Update for OpenACC.
* f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
(DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
(DEF_GOACC_BUILTIN_COMPILER): New macros.
* types.def (BT_FN_VOID_INT_INT_VAR)
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
New function types.
* gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
ST_OACC_ROUTINE.
(struct gfc_expr_list): New data type.
(gfc_get_expr_list): New macro.
(gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
(OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
(OMP_LIST_CACHE): New enumerators.
(struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
wait_list, tile_list, async, gang, worker, vector, seq,
independent, wait, par_auto, gang_static, and loc members.
(struct gfc_namespace): Add oacc_declare_clauses member.
(gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
(gfc_free_expr_list, gfc_resolve_oacc_directive)
(gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
(gfc_resolve_oacc_blocks): New prototypes.
* match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
EXEC_OACC_PARALLEL_LOOP.
* match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
(gfc_match_oacc_update, gfc_match_oacc_declare)
(gfc_match_oacc_loop, gfc_match_oacc_host_data)
(gfc_match_oacc_data, gfc_match_oacc_kernels)
(gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
(gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
(gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
prototypes.
* openmp.c: Include "diagnostic.h" and "gomp-constants.h".
(gfc_free_omp_clauses): Update for members added to struct
gfc_omp_clauses.
(gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
openacc parameter.
(resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
(struct fortran_omp_context): Add is_openmp member.
(gfc_resolve_omp_parallel_blocks): Initialize it.
(gfc_resolve_do_iterator): Update for OpenACC.
(gfc_resolve_omp_directive): Call
resolve_omp_directive_inside_oacc_region.
(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
(OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
(OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
(OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
(OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
(OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
(OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
(OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
(OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
(OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
(OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
(OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
(OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
(OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
(OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
(OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
(OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
(OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
(OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
(OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
(gfc_match_omp_clauses): Handle those.
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
(OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
(OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
(OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
(OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
(OACC_WAIT_CLAUSES): New macros.
(gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
(gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
(gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
(gfc_match_oacc_kernels, gfc_match_oacc_data)
(gfc_match_oacc_host_data, gfc_match_oacc_loop)
(gfc_match_oacc_declare, gfc_match_oacc_update)
(gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
(gfc_match_oacc_wait, gfc_match_oacc_cache)
(gfc_match_oacc_routine, oacc_is_loop)
(resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
(check_symbol_not_pointer, check_array_not_assumed)
(resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
(oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
(omp_code_to_statement, oacc_code_to_statement)
(resolve_oacc_directive_inside_omp_region)
(resolve_omp_directive_inside_oacc_region)
(resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
(resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
(resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
(gfc_resolve_oacc_directive): New functions.
* parse.c (next_free): Update for OpenACC. Move some code into...
(verify_token_free): ... this new function.
(next_fixed): Update for OpenACC. Move some code into...
(verify_token_fixed): ... this new function.
(case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
(case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
ST_OACC_KERNELS_LOOP.
(case_decl): Add ST_OACC_ROUTINE.
(push_state, parse_critical_block, parse_progunit): Update for
OpenACC.
(gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
ST_OACC_ROUTINE.
(verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
(parse_executable): Handle ST_OACC_PARALLEL_LOOP,
ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
(decode_oacc_directive, parse_oacc_structured_block)
(parse_oacc_loop, is_oacc): New functions.
* parse.h (struct gfc_state_data): Add oacc_declare_clauses
member.
(is_oacc): New prototype.
* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
EXEC_OACC_EXIT_DATA.
(resolve_codes): Call gfc_resolve_oacc_declare.
* scanner.c (openacc_flag, openacc_locus): New variables.
(skip_free_comments): Update for OpenACC. Move some code into...
(skip_omp_attribute): ... this new function.
(skip_oacc_attribute): New function.
(skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
* st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
* trans-decl.c (gfc_generate_function_code): Update for OpenACC.
* trans-openmp.c: Include "gomp-constants.h".
(gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
(gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
independent, wait_list, num_gangs_expr, num_workers_expr,
vector_length_expr, vector, vector_expr, worker, worker_expr,
gang, gang_expr members.
(gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
(gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
(gfc_trans_oacc_executable_directive)
(gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
(gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
* trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
* trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
New prototypes.
* trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
EXEC_OACC_EXIT_DATA.
* gfortran.texi: Update for OpenACC.
* intrinsic.texi: Likewise.
* invoke.texi: Likewise.
gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
New macros.
* lto.c: Include "gomp-constants.h".
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_fopenacc): New
procedure.
* g++.dg/goacc-gomp/goacc-gomp.exp: New file.
* g++.dg/goacc/goacc.exp: Likewise.
* gcc.dg/goacc-gomp/goacc-gomp.exp: Likewise.
* gcc.dg/goacc/goacc.exp: Likewise.
* gfortran.dg/goacc/goacc.exp: Likewise.
* c-c++-common/cpp/openacc-define-1.c: New file.
* c-c++-common/cpp/openacc-define-2.c: Likewise.
* c-c++-common/cpp/openacc-define-3.c: Likewise.
* c-c++-common/goacc-gomp/nesting-1.c: Likewise.
* c-c++-common/goacc-gomp/nesting-fail-1.c: Likewise.
* c-c++-common/goacc/acc_on_device-2-off.c: Likewise.
* c-c++-common/goacc/acc_on_device-2.c: Likewise.
* c-c++-common/goacc/asyncwait-1.c: Likewise.
* c-c++-common/goacc/cache-1.c: Likewise.
* c-c++-common/goacc/clauses-fail.c: Likewise.
* c-c++-common/goacc/collapse-1.c: Likewise.
* c-c++-common/goacc/data-1.c: Likewise.
* c-c++-common/goacc/data-2.c: Likewise.
* c-c++-common/goacc/data-clause-duplicate-1.c: Likewise.
* c-c++-common/goacc/deviceptr-1.c: Likewise.
* c-c++-common/goacc/deviceptr-2.c: Likewise.
* c-c++-common/goacc/deviceptr-3.c: Likewise.
* c-c++-common/goacc/if-clause-1.c: Likewise.
* c-c++-common/goacc/if-clause-2.c: Likewise.
* c-c++-common/goacc/kernels-1.c: Likewise.
* c-c++-common/goacc/loop-1.c: Likewise.
* c-c++-common/goacc/loop-private-1.c: Likewise.
* c-c++-common/goacc/nesting-1.c: Likewise.
* c-c++-common/goacc/nesting-data-1.c: Likewise.
* c-c++-common/goacc/nesting-fail-1.c: Likewise.
* c-c++-common/goacc/parallel-1.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/pragma_context.c: Likewise.
* c-c++-common/goacc/present-1.c: Likewise.
* c-c++-common/goacc/reduction-1.c: Likewise.
* c-c++-common/goacc/reduction-2.c: Likewise.
* c-c++-common/goacc/reduction-3.c: Likewise.
* c-c++-common/goacc/reduction-4.c: Likewise.
* c-c++-common/goacc/sb-1.c: Likewise.
* c-c++-common/goacc/sb-2.c: Likewise.
* c-c++-common/goacc/sb-3.c: Likewise.
* c-c++-common/goacc/update-1.c: Likewise.
* gcc.dg/goacc/acc_on_device-1.c: Likewise.
* gfortran.dg/goacc/acc_on_device-1.f95: Likewise.
* gfortran.dg/goacc/acc_on_device-2-off.f95: Likewise.
* gfortran.dg/goacc/acc_on_device-2.f95: Likewise.
* gfortran.dg/goacc/assumed.f95: Likewise.
* gfortran.dg/goacc/asyncwait-1.f95: Likewise.
* gfortran.dg/goacc/asyncwait-2.f95: Likewise.
* gfortran.dg/goacc/asyncwait-3.f95: Likewise.
* gfortran.dg/goacc/asyncwait-4.f95: Likewise.
* gfortran.dg/goacc/branch.f95: Likewise.
* gfortran.dg/goacc/cache-1.f95: Likewise.
* gfortran.dg/goacc/coarray.f95: Likewise.
* gfortran.dg/goacc/continuation-free-form.f95: Likewise.
* gfortran.dg/goacc/cray.f95: Likewise.
* gfortran.dg/goacc/critical.f95: Likewise.
* gfortran.dg/goacc/data-clauses.f95: Likewise.
* gfortran.dg/goacc/data-tree.f95: Likewise.
* gfortran.dg/goacc/declare-1.f95: Likewise.
* gfortran.dg/goacc/enter-exit-data.f95: Likewise.
* gfortran.dg/goacc/fixed-1.f: Likewise.
* gfortran.dg/goacc/fixed-2.f: Likewise.
* gfortran.dg/goacc/fixed-3.f: Likewise.
* gfortran.dg/goacc/fixed-4.f: Likewise.
* gfortran.dg/goacc/host_data-tree.f95: Likewise.
* gfortran.dg/goacc/if.f95: Likewise.
* gfortran.dg/goacc/kernels-tree.f95: Likewise.
* gfortran.dg/goacc/list.f95: Likewise.
* gfortran.dg/goacc/literal.f95: Likewise.
* gfortran.dg/goacc/loop-1.f95: Likewise.
* gfortran.dg/goacc/loop-2.f95: Likewise.
* gfortran.dg/goacc/loop-3.f95: Likewise.
* gfortran.dg/goacc/loop-tree-1.f90: Likewise.
* gfortran.dg/goacc/omp.f95: Likewise.
* gfortran.dg/goacc/parallel-kernels-clauses.f95: Likewise.
* gfortran.dg/goacc/parallel-kernels-regions.f95: Likewise.
* gfortran.dg/goacc/parallel-tree.f95: Likewise.
* gfortran.dg/goacc/parameter.f95: Likewise.
* gfortran.dg/goacc/private-1.f95: Likewise.
* gfortran.dg/goacc/private-2.f95: Likewise.
* gfortran.dg/goacc/private-3.f95: Likewise.
* gfortran.dg/goacc/pure-elemental-procedures.f95: Likewise.
* gfortran.dg/goacc/reduction-2.f95: Likewise.
* gfortran.dg/goacc/reduction.f95: Likewise.
* gfortran.dg/goacc/routine-1.f90: Likewise.
* gfortran.dg/goacc/routine-2.f90: Likewise.
* gfortran.dg/goacc/sentinel-free-form.f95: Likewise.
* gfortran.dg/goacc/several-directives.f95: Likewise.
* gfortran.dg/goacc/sie.f95: Likewise.
* gfortran.dg/goacc/subarrays.f95: Likewise.
* gfortran.dg/gomp/map-1.f90: Likewise.
* gfortran.dg/openacc-define-1.f90: Likewise.
* gfortran.dg/openacc-define-2.f90: Likewise.
* gfortran.dg/openacc-define-3.f90: Likewise.
* g++.dg/gomp/block-1.C: Update for changed compiler output.
* g++.dg/gomp/block-2.C: Likewise.
* g++.dg/gomp/block-3.C: Likewise.
* g++.dg/gomp/block-5.C: Likewise.
* g++.dg/gomp/target-1.C: Likewise.
* g++.dg/gomp/target-2.C: Likewise.
* g++.dg/gomp/taskgroup-1.C: Likewise.
* g++.dg/gomp/teams-1.C: Likewise.
* gcc.dg/cilk-plus/jump-openmp.c: Likewise.
* gcc.dg/cilk-plus/jump.c: Likewise.
* gcc.dg/gomp/block-1.c: Likewise.
* gcc.dg/gomp/block-10.c: Likewise.
* gcc.dg/gomp/block-2.c: Likewise.
* gcc.dg/gomp/block-3.c: Likewise.
* gcc.dg/gomp/block-4.c: Likewise.
* gcc.dg/gomp/block-5.c: Likewise.
* gcc.dg/gomp/block-6.c: Likewise.
* gcc.dg/gomp/block-7.c: Likewise.
* gcc.dg/gomp/block-8.c: Likewise.
* gcc.dg/gomp/block-9.c: Likewise.
* gcc.dg/gomp/target-1.c: Likewise.
* gcc.dg/gomp/target-2.c: Likewise.
* gcc.dg/gomp/taskgroup-1.c: Likewise.
* gcc.dg/gomp/teams-1.c: Likewise.
include/
* gomp-constants.h: New file.
libgomp/
* Makefile.am (search_path): Add $(top_srcdir)/../include.
(libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
oacc-async.c, oacc-plugin.c, oacc-cuda.c.
[USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
Include $(top_srcdir)/plugin/Makefrag.am.
(nodist_libsubinclude_HEADERS): Add openacc.h.
[USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
openacc.f90, openacc.mod, openacc_kinds.mod.
(omp_lib.mod): Generalize into...
(%.mod): ... this new rule.
(openacc_kinds.mod, openacc.mod): New rules.
* plugin/configfrag.ac: New file.
* configure.ac: Move plugin/offloading support into it. Include
it. Instantiate testsuite/libgomp-test-support.pt.exp.
* plugin/Makefrag.am: New file.
* testsuite/Makefile.am (OFFLOAD_TARGETS)
(OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
export.
(libgomp-test-support.exp): New rule.
(all-local): Depend on it.
* Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
* config.h.in: Likewise.
* configure: Likewise.
* configure.tgt: Harden shell syntax.
* env.c: Include "oacc-int.h".
(parse_acc_device_type): New function.
(gomp_debug_var, goacc_device_type, goacc_device_num): New
variables.
(initialize_env): Initialize those. Call
goacc_runtime_initialize.
* error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
(gomp_fatal): Call gomp_vfatal.
* libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
(gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
(gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
(splay_tree_node, splay_tree, splay_tree_key)
(struct target_mem_desc, struct splay_tree_key_s)
(struct gomp_memory_mapping, struct acc_dispatch_t)
(struct gomp_device_descr, gomp_acc_insert_pointer)
(gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
(gomp_unmap_vars, gomp_init_device, gomp_init_tables)
(gomp_free_memmap, gomp_fini_device): New declarations.
(gomp_vdebug, gomp_debug): New macros.
Include "splay-tree.h".
* libgomp.map (OACC_2.0): New symbol version. Use for
acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
acc_set_device_type_h_, acc_get_device_type,
acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
acc_get_device_num, acc_get_device_num_h_, acc_async_test,
acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
acc_copyin_array_h_, acc_present_or_copyin,
acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
acc_present_or_create_32_h_, acc_present_or_create_64_h_,
acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
acc_update_device, acc_update_device_32_h_,
acc_update_device_64_h_, acc_update_device_array_h_,
acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
acc_update_self_array_h_, acc_map_data, acc_unmap_data,
acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
acc_is_present_64_h_, acc_is_present_array_h_,
acc_memcpy_to_device, acc_memcpy_from_device,
acc_get_current_cuda_device, acc_get_current_cuda_context,
acc_get_cuda_stream, acc_set_cuda_stream.
(GOACC_2.0): New symbol version. Use for GOACC_data_end,
GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
GOACC_update, GOACC_wait, GOACC_get_thread_num,
GOACC_get_num_threads.
(GOMP_PLUGIN_1.0): New symbol version. Use for
GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
GOMP_PLUGIN_acc_thread.
* libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
environment variable.
* libgomp_g.h (GOACC_data_start, GOACC_data_end)
(GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
(GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
* splay-tree.h (splay_tree_lookup, splay_tree_insert)
(splay_tree_remove): New declarations.
(rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
(splay_tree_remove, splay_tree_lookup): Move into...
* splay-tree.c: ... this new file.
* target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
(splay_tree_node, splay_tree, splay_tree_key)
(struct target_mem_desc, struct splay_tree_key_s)
(struct gomp_device_descr): Don't declare.
(num_devices_openmp): New variable.
(gomp_get_num_devices ): Use it.
(gomp_init_targets_once): New function.
(gomp_get_num_devices ): Use it.
(get_kind, gomp_copy_from_async, gomp_free_memmap)
(gomp_fini_device, gomp_register_image_for_device): New functions.
(gomp_map_vars): Add devaddrs parameter.
(gomp_update): Add mm parameter.
(gomp_init_device): Move most of it into...
(gomp_init_tables): ... this new function.
(gomp_register_images_for_device): Remove function.
(splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
Make them hidden instead of static.
(gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
(gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
(GOMP_target_end_data, GOMP_target_update)
(gomp_load_plugin_for_device, gomp_target_init): Update for
OpenACC changes.
* oacc-async.c: New file.
* oacc-cuda.c: Likewise.
* oacc-host.c: Likewise.
* oacc-init.c: Likewise.
* oacc-int.h: Likewise.
* oacc-mem.c: Likewise.
* oacc-parallel.c: Likewise.
* oacc-plugin.c: Likewise.
* oacc-plugin.h: Likewise.
* oacc-ptx.h: Likewise.
* openacc.f90: Likewise.
* openacc.h: Likewise.
* openacc_lib.h: Likewise.
* plugin/plugin-host.c: Likewise.
* plugin/plugin-nvptx.c: Likewise.
* libgomp-plugin.c: Likewise.
* libgomp-plugin.h: Likewise.
* libgomp_target.h: Remove file after merging content into the
former file. Update all users.
* testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
(offload_targets_s, offload_targets_s_openacc): New variables.
(check_effective_target_openacc_nvidia_accel_present)
(check_effective_target_openacc_nvidia_accel_selected): New
procedures.
(libgomp_init): Update for OpenACC changes.
* testsuite/libgomp-test-support.exp.in: New file.
* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
* testsuite/libgomp.oacc-c/c.exp: Likewise.
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
* 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-19.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-2.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-26.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-27.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-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-41.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-45.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-46.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-49.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-51.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.
* testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
* testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
* testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_name)
(GOMP_OFFLOAD_get_caps, GOMP_OFFLOAD_fini_device): New functions.
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Dmitry Bocharnikov <dmitry.b@samsung.com>
Co-Authored-By: Evgeny Gavrin <e.gavrin@samsung.com>
Co-Authored-By: Ilmir Usmanov <i.usmanov@samsung.com>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
Co-Authored-By: James Norris <jnorris@codesourcery.com>
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r219682
2015-01-15 21:11:12 +01:00
|
|
|
2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
James Norris <jnorris@codesourcery.com>
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* Makefile.am (search_path): Add $(top_srcdir)/../include.
|
|
|
|
(libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
|
|
|
|
oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
|
|
|
|
oacc-async.c, oacc-plugin.c, oacc-cuda.c.
|
|
|
|
[USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
|
|
|
|
Include $(top_srcdir)/plugin/Makefrag.am.
|
|
|
|
(nodist_libsubinclude_HEADERS): Add openacc.h.
|
|
|
|
[USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
|
|
|
|
openacc.f90, openacc.mod, openacc_kinds.mod.
|
|
|
|
(omp_lib.mod): Generalize into...
|
|
|
|
(%.mod): ... this new rule.
|
|
|
|
(openacc_kinds.mod, openacc.mod): New rules.
|
|
|
|
* plugin/configfrag.ac: New file.
|
|
|
|
* configure.ac: Move plugin/offloading support into it. Include
|
|
|
|
it. Instantiate testsuite/libgomp-test-support.pt.exp.
|
|
|
|
* plugin/Makefrag.am: New file.
|
|
|
|
* testsuite/Makefile.am (OFFLOAD_TARGETS)
|
|
|
|
(OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
|
|
|
|
export.
|
|
|
|
(libgomp-test-support.exp): New rule.
|
|
|
|
(all-local): Depend on it.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
* configure: Likewise.
|
|
|
|
* configure.tgt: Harden shell syntax.
|
|
|
|
* env.c: Include "oacc-int.h".
|
|
|
|
(parse_acc_device_type): New function.
|
|
|
|
(gomp_debug_var, goacc_device_type, goacc_device_num): New
|
|
|
|
variables.
|
|
|
|
(initialize_env): Initialize those. Call
|
|
|
|
goacc_runtime_initialize.
|
|
|
|
* error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
|
|
|
|
(gomp_fatal): Call gomp_vfatal.
|
|
|
|
* libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
|
|
|
|
(gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
|
|
|
|
(gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
|
|
|
|
(splay_tree_node, splay_tree, splay_tree_key)
|
|
|
|
(struct target_mem_desc, struct splay_tree_key_s)
|
|
|
|
(struct gomp_memory_mapping, struct acc_dispatch_t)
|
|
|
|
(struct gomp_device_descr, gomp_acc_insert_pointer)
|
|
|
|
(gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
|
|
|
|
(gomp_unmap_vars, gomp_init_device, gomp_init_tables)
|
|
|
|
(gomp_free_memmap, gomp_fini_device): New declarations.
|
|
|
|
(gomp_vdebug, gomp_debug): New macros.
|
|
|
|
Include "splay-tree.h".
|
|
|
|
* libgomp.map (OACC_2.0): New symbol version. Use for
|
|
|
|
acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
|
|
|
|
acc_set_device_type_h_, acc_get_device_type,
|
|
|
|
acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
|
|
|
|
acc_get_device_num, acc_get_device_num_h_, acc_async_test,
|
|
|
|
acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
|
|
|
|
acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
|
|
|
|
acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
|
|
|
|
acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
|
|
|
|
acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
|
|
|
|
acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
|
|
|
|
acc_copyin_array_h_, acc_present_or_copyin,
|
|
|
|
acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
|
|
|
|
acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
|
|
|
|
acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
|
|
|
|
acc_present_or_create_32_h_, acc_present_or_create_64_h_,
|
|
|
|
acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
|
|
|
|
acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
|
|
|
|
acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
|
|
|
|
acc_update_device, acc_update_device_32_h_,
|
|
|
|
acc_update_device_64_h_, acc_update_device_array_h_,
|
|
|
|
acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
|
|
|
|
acc_update_self_array_h_, acc_map_data, acc_unmap_data,
|
|
|
|
acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
|
|
|
|
acc_is_present_64_h_, acc_is_present_array_h_,
|
|
|
|
acc_memcpy_to_device, acc_memcpy_from_device,
|
|
|
|
acc_get_current_cuda_device, acc_get_current_cuda_context,
|
|
|
|
acc_get_cuda_stream, acc_set_cuda_stream.
|
|
|
|
(GOACC_2.0): New symbol version. Use for GOACC_data_end,
|
|
|
|
GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
|
|
|
|
GOACC_update, GOACC_wait, GOACC_get_thread_num,
|
|
|
|
GOACC_get_num_threads.
|
|
|
|
(GOMP_PLUGIN_1.0): New symbol version. Use for
|
|
|
|
GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
|
|
|
|
GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
|
|
|
|
GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
|
|
|
|
GOMP_PLUGIN_acc_thread.
|
|
|
|
* libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
|
|
|
|
environment variable.
|
|
|
|
* libgomp_g.h (GOACC_data_start, GOACC_data_end)
|
|
|
|
(GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
|
|
|
|
(GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
|
|
|
|
* splay-tree.h (splay_tree_lookup, splay_tree_insert)
|
|
|
|
(splay_tree_remove): New declarations.
|
|
|
|
(rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
|
|
|
|
(splay_tree_remove, splay_tree_lookup): Move into...
|
|
|
|
* splay-tree.c: ... this new file.
|
|
|
|
* target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
|
|
|
|
(splay_tree_node, splay_tree, splay_tree_key)
|
|
|
|
(struct target_mem_desc, struct splay_tree_key_s)
|
|
|
|
(struct gomp_device_descr): Don't declare.
|
|
|
|
(num_devices_openmp): New variable.
|
|
|
|
(gomp_get_num_devices ): Use it.
|
|
|
|
(gomp_init_targets_once): New function.
|
|
|
|
(gomp_get_num_devices ): Use it.
|
|
|
|
(get_kind, gomp_copy_from_async, gomp_free_memmap)
|
|
|
|
(gomp_fini_device, gomp_register_image_for_device): New functions.
|
|
|
|
(gomp_map_vars): Add devaddrs parameter.
|
|
|
|
(gomp_update): Add mm parameter.
|
|
|
|
(gomp_init_device): Move most of it into...
|
|
|
|
(gomp_init_tables): ... this new function.
|
|
|
|
(gomp_register_images_for_device): Remove function.
|
|
|
|
(splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
|
|
|
|
Make them hidden instead of static.
|
|
|
|
(gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
|
|
|
|
(gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
|
|
|
|
(GOMP_target_end_data, GOMP_target_update)
|
|
|
|
(gomp_load_plugin_for_device, gomp_target_init): Update for
|
|
|
|
OpenACC changes.
|
|
|
|
* oacc-async.c: New file.
|
|
|
|
* oacc-cuda.c: Likewise.
|
|
|
|
* oacc-host.c: Likewise.
|
|
|
|
* oacc-init.c: Likewise.
|
|
|
|
* oacc-int.h: Likewise.
|
|
|
|
* oacc-mem.c: Likewise.
|
|
|
|
* oacc-parallel.c: Likewise.
|
|
|
|
* oacc-plugin.c: Likewise.
|
|
|
|
* oacc-plugin.h: Likewise.
|
|
|
|
* oacc-ptx.h: Likewise.
|
|
|
|
* openacc.f90: Likewise.
|
|
|
|
* openacc.h: Likewise.
|
|
|
|
* openacc_lib.h: Likewise.
|
|
|
|
* plugin/plugin-host.c: Likewise.
|
|
|
|
* plugin/plugin-nvptx.c: Likewise.
|
|
|
|
* libgomp-plugin.c: Likewise.
|
|
|
|
* libgomp-plugin.h: Likewise.
|
|
|
|
* libgomp_target.h: Remove file after merging content into the
|
|
|
|
former file. Update all users.
|
|
|
|
* testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
|
|
|
|
(offload_targets_s, offload_targets_s_openacc): New variables.
|
|
|
|
(check_effective_target_openacc_nvidia_accel_present)
|
|
|
|
(check_effective_target_openacc_nvidia_accel_selected): New
|
|
|
|
procedures.
|
|
|
|
(libgomp_init): Update for OpenACC changes.
|
|
|
|
* testsuite/libgomp-test-support.exp.in: New file.
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
|
|
|
|
* 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-19.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-2.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-26.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.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-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-41.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-45.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-46.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-49.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-51.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.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
|
|
|
|
Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
|
|
|
|
|
2015-01-10 20:10:37 +01:00
|
|
|
2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
* configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
|
|
|
|
to "GNU Offloading and Multi Processing Runtime Library". Change
|
|
|
|
all users.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* libgomp.texi: Update.
|
|
|
|
|
2015-01-08 17:01:24 +01:00
|
|
|
2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
2015-01-08 17:01:37 +01:00
|
|
|
* configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
|
|
|
|
"$tgt_dir/lib32".
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2015-01-08 17:01:24 +01:00
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Correctly match
|
|
|
|
"intelmic" in $offload_targets.
|
|
|
|
|
2015-01-05 13:05:46 +01:00
|
|
|
2015-01-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2015-01-05 13:33:28 +01:00
|
|
|
Update copyright years.
|
|
|
|
|
2015-01-05 13:05:46 +01:00
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
2014-12-12 11:31:44 +01:00
|
|
|
2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load target-utils.exp.
|
|
|
|
Move load of target-supportes.exp earlier.
|
|
|
|
|
2014-12-10 21:52:10 +01:00
|
|
|
2014-12-10 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-9.c: New test.
|
|
|
|
|
2014-12-10 14:42:20 +01:00
|
|
|
2014-12-09 Varvara Rainchik <varvara.rainchik@intel.com>
|
|
|
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* configure.ac: Add GCC_CHECK_EMUTLS.
|
|
|
|
* libgomp.h: Add check for USE_EMUTLS: this case
|
|
|
|
is equal to HAVE_TLS.
|
|
|
|
* team.c: Likewise.
|
|
|
|
|
2014-12-03 14:58:07 +01:00
|
|
|
2014-12-03 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
|
|
|
|
|
2014-11-28 14:59:49 +01:00
|
|
|
2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-critical-1.c: New test.
|
|
|
|
|
2014-11-26 20:36:36 +01:00
|
|
|
2014-11-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
|
2014-12-03 14:58:07 +01:00
|
|
|
to dg-options unless expensive testing is on.
|
2014-11-26 20:36:36 +01:00
|
|
|
(TESTITERS): Define to N if not defined.
|
|
|
|
(main): Use TESTITERS instead of N.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
|
|
|
|
dg-additional-options depending on whether expensive testing is on.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
|
|
|
|
Decrease N to 100000 and CHUNKSZ to 10000.
|
|
|
|
|
2014-11-25 00:08:26 +01:00
|
|
|
2014-11-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/63938
|
2014-11-26 20:36:36 +01:00
|
|
|
* testsuite/libgomp.fortran/pr63938-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr63938-2.f90: New test.
|
2014-11-25 00:08:26 +01:00
|
|
|
|
2014-11-22 00:25:51 +01:00
|
|
|
2014-11-21 Steve Ellcey <sellcey@imgtec.com>
|
|
|
|
|
|
|
|
* config/linux/mips/futex.h (SYS_futex): Define if not already done.
|
|
|
|
|
2014-11-21 17:49:17 +01:00
|
|
|
2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR bootstrap/63784
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2014-11-19 11:30:29 +01:00
|
|
|
2014-11-19 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Require
|
|
|
|
vect_simd_clones effective target.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
|
|
|
|
|
2014-11-14 18:19:55 +01:00
|
|
|
2014-11-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
|
|
|
|
of 32 as block_size.
|
|
|
|
* libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
|
|
|
|
instead of 32 as block_size.
|
|
|
|
|
2014-11-13 15:07:09 +01:00
|
|
|
2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* configure.ac: Set up offload_additional_options,
|
|
|
|
offload_additional_lib_paths and offload_targets.
|
|
|
|
* testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
|
|
|
|
OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Append
|
|
|
|
offload_additional_lib_paths to LD_LIBRARY_PATH. Append
|
|
|
|
offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic
|
|
|
|
build directory to LD_LIBRARY_PATH for intelmic offload targets.
|
|
|
|
|
2014-11-13 14:56:22 +01:00
|
|
|
2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
Kirill Yukhin <kirill.yukhin@intel.com>
|
|
|
|
Ilya Tocar <ilya.tocar@intel.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
(check_effective_target_offload_device): New.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/target-7.c: Fix test.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
|
|
|
|
|
[PATCH 5/7] OpenMP 4.0 offloading infrastructure: libgomp.
libgomp/
* libgomp.map (GOMP_4.0.1): New symbol version.
Add GOMP_offload_register.
* libgomp_target.h: New file.
* splay-tree.h: New file.
* target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
(gomp_target_init): New forward declaration.
(gomp_is_initialized): New static variable.
(splay_tree_node, splay_tree, splay_tree_key): New typedefs.
(struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
New structures.
(offload_images, num_offload_images, devices, num_devices): New static
variables.
(splay_compare): New static function.
(struct gomp_device_descr): New structure.
(gomp_get_num_devices): Call gomp_target_init.
(resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
(gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
(GOMP_offload_register): New function.
(GOMP_target): Arrange for host callback to be performed in a separate
initial thread and contention group, inheriting ICVs from
gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
Add device initialization and lookup for target function in splay tree.
(GOMP_target_data): Add device initialization and call gomp_map_vars.
(GOMP_target_end_data): Call gomp_unmap_vars.
(GOMP_target_update): Add device initialization and call gomp_update.
(gomp_load_plugin_for_device, gomp_register_images_for_device)
(gomp_target_init): New static functions.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r217492
2014-11-13 14:49:47 +01:00
|
|
|
2014-11-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
|
|
|
* libgomp.map (GOMP_4.0.1): New symbol version.
|
|
|
|
Add GOMP_offload_register.
|
|
|
|
* libgomp_target.h: New file.
|
|
|
|
* splay-tree.h: New file.
|
|
|
|
* target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
|
|
|
|
(gomp_target_init): New forward declaration.
|
|
|
|
(gomp_is_initialized): New static variable.
|
|
|
|
(splay_tree_node, splay_tree, splay_tree_key): New typedefs.
|
|
|
|
(struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
|
|
|
|
New structures.
|
|
|
|
(offload_images, num_offload_images, devices, num_devices): New static
|
|
|
|
variables.
|
|
|
|
(splay_compare): New static function.
|
|
|
|
(struct gomp_device_descr): New structure.
|
|
|
|
(gomp_get_num_devices): Call gomp_target_init.
|
|
|
|
(resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
|
|
|
|
(gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
|
|
|
|
(GOMP_offload_register): New function.
|
|
|
|
(GOMP_target): Arrange for host callback to be performed in a separate
|
|
|
|
initial thread and contention group, inheriting ICVs from
|
|
|
|
gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
|
|
|
|
Add device initialization and lookup for target function in splay tree.
|
|
|
|
(GOMP_target_data): Add device initialization and call gomp_map_vars.
|
|
|
|
(GOMP_target_end_data): Call gomp_unmap_vars.
|
|
|
|
(GOMP_target_update): Add device initialization and call gomp_update.
|
|
|
|
(gomp_load_plugin_for_device, gomp_register_images_for_device)
|
|
|
|
(gomp_target_init): New static functions.
|
|
|
|
|
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make
* configure: Regenerate.
* configure.ac (--enable-as-accelerator-for)
(--enable-offload-targets): New configure options.
gcc/
* Makefile.in (real_target_noncanonical, accel_dir_suffix)
(enable_as_accelerator): New variables substituted by configure.
(libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
being configured as an offload compiler.
(DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
ACCEL_DIR_SUFFIX.
(install-cpp, install-common, install_driver, install-gcc-ar): Do not
install for the offload compiler.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac (real_target_noncanonical, accel_dir_suffix)
(enable_as_accelerator): Compute new variables.
(ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
(OFFLOAD_TARGETS): List of target names suitable for offloading.
(ENABLE_OFFLOADING): Define if list of offload targets is not empty.
gcc/cp/
* Make-lang.in (c++.install-common): Do not install for the offload
compiler.
gcc/doc/
* install.texi (Options specification): Document
--enable-as-accelerator-for and --enable-offload-targets.
gcc/fortran/
* Make-lang.in (fortran.install-common): Do not install for the offload
compiler.
libgcc/
* Makefile.in (crtoffloadbegin$(objext)): New rule.
(crtoffloadend$(objext)): Likewise.
* configure: Regenerate.
* configure.ac (accel_dir_suffix): Compute new variable.
(extra_parts): Add crtoffloadbegin.o and crtoffloadend.o
if enable_offload_targets is not empty.
* offloadstuff.c: New file.
libgomp/
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for libdl, required for plugin support.
(PLUGIN_SUPPORT): Define if plugins are supported.
(enable_offload_targets): Support Intel MIC targets.
(OFFLOAD_TARGETS): List of target names suitable for offloading.
lto-plugin/
* Makefile.am (libexecsubdir): Tweak for the possibility of being
configured for offload compiler.
(accel_dir_suffix, real_target_noncanonical): New variables substituted
by configure.
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac (accel_dir_suffix, real_target_noncanonical): Compute new
variables.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r217485
2014-11-13 14:28:56 +01:00
|
|
|
2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* configure.ac: Check for libdl, required for plugin support.
|
|
|
|
(PLUGIN_SUPPORT): Define if plugins are supported.
|
|
|
|
(enable_offload_targets): Support Intel MIC targets.
|
|
|
|
(OFFLOAD_TARGETS): List of target names suitable for offloading.
|
|
|
|
|
2014-11-11 21:25:18 +01:00
|
|
|
2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR target/63610
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2014-11-05 10:52:42 +01:00
|
|
|
2014-11-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
|
|
|
|
|
2014-10-06 13:54:24 +02:00
|
|
|
2014-10-06 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
|
|
|
|
* testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
|
|
|
|
* testsuite/libgomp.c/thread-limit-2.c: Likewise.
|
|
|
|
|
2014-10-06 12:20:45 +02:00
|
|
|
2014-10-06 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr36802-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr36802-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/thread-limit-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/thread-limit-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
|
|
|
|
* testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
|
|
|
|
* testsuite/libgomp.c/omp-parallel-for.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/omp-parallel-if.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/omp-single-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/omp-single-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/omp_matvec.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/omp_workshare3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/omp_workshare4.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/shared-1.c: Fix defaulting to int. Fix implicit
|
|
|
|
declarations.
|
|
|
|
|
2014-10-03 09:29:42 +02:00
|
|
|
2014-10-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/61200
|
|
|
|
* testsuite/libgomp.c/pr61200.c: New test.
|
|
|
|
|
2014-09-18 18:43:28 +02:00
|
|
|
2014-09-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/63248
|
|
|
|
* testsuite/libgomp.c++/pr63248.C: New test.
|
|
|
|
|
2014-08-04 17:45:50 +02:00
|
|
|
2014-08-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* task.c (GOMP_taskgroup_end): If taskgroup->num_children
|
|
|
|
is not zero, but taskgroup->children is NULL and there are
|
|
|
|
any task->children, schedule those instead of waiting.
|
|
|
|
* testsuite/libgomp.c/depend-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-7.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-8.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-9.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-10.c: New test.
|
|
|
|
|
2014-08-01 10:05:13 +02:00
|
|
|
2014-08-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
|
|
|
|
(struct gomp_taskwait): New type.
|
|
|
|
(struct gomp_task): Add taskwait and parent_depends_on, remove
|
|
|
|
in_taskwait and taskwait_sem fields.
|
|
|
|
(gomp_finish_task): Don't destroy taskwait_sem.
|
|
|
|
* task.c (gomp_init_task): Don't init in_taskwait, instead init
|
|
|
|
taskwait and parent_depends_on.
|
|
|
|
(GOMP_task): For if (0) tasks with depend clause that depend on
|
|
|
|
earlier tasks don't defer them, instead call
|
|
|
|
gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
|
|
|
|
Initialize redundant_out field, for redundant out entries just
|
|
|
|
move them at the end of linked list instead of removing them
|
|
|
|
completely, and set redundant_out flag instead of redundant.
|
|
|
|
(gomp_task_run_pre): Update last_parent_depends_on if scheduling
|
|
|
|
that task.
|
|
|
|
(gomp_task_run_post_handle_dependers): If parent is in
|
|
|
|
gomp_task_maybe_wait_for_dependencies and newly runnable task
|
|
|
|
is not parent_depends_on, queue it in parent->children linked
|
|
|
|
list after all runnable tasks with parent_depends_on set.
|
|
|
|
Adjust for addition of taskwait indirection.
|
|
|
|
(gomp_task_run_post_remove_parent): If parent is in
|
|
|
|
gomp_task_maybe_wait_for_dependencies and task to be removed
|
|
|
|
is parent_depends_on, decrement n_depend and if needed awake
|
|
|
|
parent. Adjust for addition of taskwait indirection.
|
|
|
|
(GOMP_taskwait): Adjust for addition of taskwait indirection.
|
|
|
|
(gomp_task_maybe_wait_for_dependencies): New function.
|
|
|
|
* testsuite/libgomp.c/depend-5.c: New test.
|
|
|
|
|
2014-07-13 08:40:16 +02:00
|
|
|
2014-07-13 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/pr34020.f90: Make compile
|
2014-08-01 10:05:13 +02:00
|
|
|
with TS 18508/Fortran 2015.
|
2014-07-13 08:40:16 +02:00
|
|
|
|
2014-07-06 21:00:10 +02:00
|
|
|
2014-07-06 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
PR c/6940
|
|
|
|
* testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
|
|
|
|
|
2014-07-03 20:45:35 +02:00
|
|
|
2014-07-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
|
|
|
|
matches regex $lang_source_re, add $lang_include_flags to options.
|
|
|
|
* testsuite/libgomp.c/c.exp: Unset lang_include_flags.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise. Set lang_source_re
|
|
|
|
and lang_include_flags instead of adding -fintrinsic-modules-path= to
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
|
|
|
|
|
2014-07-03 17:23:43 +02:00
|
|
|
2014-07-03 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Explain
|
|
|
|
gfortran-dg-runtest usage.
|
|
|
|
|
2014-06-25 11:16:12 +02:00
|
|
|
2014-06-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/simd5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/simd6.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/simd7.f90: New test.
|
|
|
|
|
gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP, [...]): Make sure OMP_CLAUSE_SIZE is non-NULL.
* gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
non-NULL.
<case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
(gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
non-NULL.
(gimplify_adjust_omp_clauses): Likewise.
* omp-low.c (lower_rec_simd_input_clauses,
lower_rec_input_clauses, expand_omp_simd): Handle non-constant
safelen the same as safelen(1).
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
(convert_nonlocal_reference_stmt, convert_local_reference_stmt):
Fixup handling of GIMPLE_OMP_TARGET.
(convert_tramp_reference_stmt, convert_gimple_call): Handle
GIMPLE_OMP_TARGET.
gcc/fortran/
* dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
of n->udr.
* f95-lang.c (gfc_init_builtin_functions): Initialize
BUILT_IN_ASSUME_ALIGNED.
* gfortran.h (gfc_omp_namelist): Change udr field type to
struct gfc_omp_namelist_udr.
(gfc_omp_namelist_udr): New type.
(gfc_get_omp_namelist_udr): Define.
(gfc_resolve_code): New prototype.
* match.c (gfc_free_omp_namelist): Free name->udr.
* module.c (intrinsics): Add INTRINSIC_USER.
(fix_mio_expr): Likewise.
(mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
* openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
(gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
(struct resolve_omp_udr_callback_data): New type.
(resolve_omp_udr_callback, resolve_omp_udr_callback2,
resolve_omp_udr_clause): New functions.
(resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
here.
(omp_udr_callback): Don't check for implicitly declared functions
here.
(gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
implicitly declared subroutines here.
* resolve.c (resolve_function): If value.function.isym is non-NULL,
consider it already resolved.
(resolve_code): Renamed to ...
(gfc_resolve_code): ... this. No longer static.
(gfc_resolve_blocks, generate_component_assignments, resolve_codes):
Adjust callers.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
by reference type (C_PTR) variables.
(gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
(gfc_trans_omp_udr_expr): Remove.
(gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
expand it as assignment or subroutine call. Don't initialize
value.function.isym.
gcc/testsuite/
* gfortran.dg/gomp/udr2.f90 (f7, f9): Add !$omp parallel with
reduction clause.
* gfortran.dg/gomp/udr4.f90 (f4): Likewise.
Remove Label is never defined expected error.
* gfortran.dg/gomp/udr8.f90: New test.
libgomp/
* testsuite/libgomp.fortran/aligned1.f03: New test.
* testsuite/libgomp.fortran/nestedfn5.f90: New test.
* testsuite/libgomp.fortran/target7.f90: Surround loop spawning
tasks with !$omp parallel !$omp single.
* testsuite/libgomp.fortran/target8.f90: New test.
* testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
not to use trim in the combiner, instead call elemental function.
(fn): New elemental function.
* testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
Make elemental.
* testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
omp_in): Likewise.
* testsuite/libgomp.fortran/udr12.f90: New test.
* testsuite/libgomp.fortran/udr13.f90: New test.
* testsuite/libgomp.fortran/udr14.f90: New test.
* testsuite/libgomp.fortran/udr15.f90: New test.
From-SVN: r211929
2014-06-24 09:45:22 +02:00
|
|
|
2014-06-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2014-06-24 09:53:52 +02:00
|
|
|
* testsuite/libgomp.c/for-2.c: Define SC to static for
|
|
|
|
#pragma omp for simd testing.
|
|
|
|
* testsuite/libgomp.c/for-2.h (SC): Define if not defined.
|
|
|
|
(N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
|
|
|
|
SC macro.
|
|
|
|
* testsuite/libgomp.c/simd-14.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-15.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-16.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-17.c: New test.
|
|
|
|
* testsuite/libgomp.c++/for-10.C: Define SC to static for
|
|
|
|
#pragma omp for simd testing.
|
|
|
|
* testsuite/libgomp.c++/simd10.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd12.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd13.C: New test.
|
|
|
|
|
gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP, [...]): Make sure OMP_CLAUSE_SIZE is non-NULL.
* gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
non-NULL.
<case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
(gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
non-NULL.
(gimplify_adjust_omp_clauses): Likewise.
* omp-low.c (lower_rec_simd_input_clauses,
lower_rec_input_clauses, expand_omp_simd): Handle non-constant
safelen the same as safelen(1).
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
(convert_nonlocal_reference_stmt, convert_local_reference_stmt):
Fixup handling of GIMPLE_OMP_TARGET.
(convert_tramp_reference_stmt, convert_gimple_call): Handle
GIMPLE_OMP_TARGET.
gcc/fortran/
* dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
of n->udr.
* f95-lang.c (gfc_init_builtin_functions): Initialize
BUILT_IN_ASSUME_ALIGNED.
* gfortran.h (gfc_omp_namelist): Change udr field type to
struct gfc_omp_namelist_udr.
(gfc_omp_namelist_udr): New type.
(gfc_get_omp_namelist_udr): Define.
(gfc_resolve_code): New prototype.
* match.c (gfc_free_omp_namelist): Free name->udr.
* module.c (intrinsics): Add INTRINSIC_USER.
(fix_mio_expr): Likewise.
(mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
* openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
(gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
(struct resolve_omp_udr_callback_data): New type.
(resolve_omp_udr_callback, resolve_omp_udr_callback2,
resolve_omp_udr_clause): New functions.
(resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
here.
(omp_udr_callback): Don't check for implicitly declared functions
here.
(gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
implicitly declared subroutines here.
* resolve.c (resolve_function): If value.function.isym is non-NULL,
consider it already resolved.
(resolve_code): Renamed to ...
(gfc_resolve_code): ... this. No longer static.
(gfc_resolve_blocks, generate_component_assignments, resolve_codes):
Adjust callers.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
by reference type (C_PTR) variables.
(gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
(gfc_trans_omp_udr_expr): Remove.
(gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
expand it as assignment or subroutine call. Don't initialize
value.function.isym.
gcc/testsuite/
* gfortran.dg/gomp/udr2.f90 (f7, f9): Add !$omp parallel with
reduction clause.
* gfortran.dg/gomp/udr4.f90 (f4): Likewise.
Remove Label is never defined expected error.
* gfortran.dg/gomp/udr8.f90: New test.
libgomp/
* testsuite/libgomp.fortran/aligned1.f03: New test.
* testsuite/libgomp.fortran/nestedfn5.f90: New test.
* testsuite/libgomp.fortran/target7.f90: Surround loop spawning
tasks with !$omp parallel !$omp single.
* testsuite/libgomp.fortran/target8.f90: New test.
* testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
not to use trim in the combiner, instead call elemental function.
(fn): New elemental function.
* testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
Make elemental.
* testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
omp_in): Likewise.
* testsuite/libgomp.fortran/udr12.f90: New test.
* testsuite/libgomp.fortran/udr13.f90: New test.
* testsuite/libgomp.fortran/udr14.f90: New test.
* testsuite/libgomp.fortran/udr15.f90: New test.
From-SVN: r211929
2014-06-24 09:45:22 +02:00
|
|
|
* testsuite/libgomp.fortran/aligned1.f03: New test.
|
|
|
|
* testsuite/libgomp.fortran/nestedfn5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target7.f90: Surround loop spawning
|
|
|
|
tasks with !$omp parallel !$omp single.
|
|
|
|
* testsuite/libgomp.fortran/target8.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
|
|
|
|
not to use trim in the combiner, instead call elemental function.
|
|
|
|
(fn): New elemental function.
|
|
|
|
* testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
|
|
|
|
Make elemental.
|
|
|
|
* testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
|
|
|
|
omp_in): Likewise.
|
|
|
|
* testsuite/libgomp.fortran/udr12.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr13.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr14.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr15.f90: New test.
|
|
|
|
|
gimplify.c (omp_notice_variable): If n is non-NULL and no flags change in ORT_TARGET region, don't jump to do_outer.
* gimplify.c (omp_notice_variable): If n is non-NULL
and no flags change in ORT_TARGET region, don't jump to
do_outer.
(struct gimplify_adjust_omp_clauses_data): New type.
(gimplify_adjust_omp_clauses_1): Adjust for data being
a struct gimplify_adjust_omp_clauses_data pointer instead
of tree *. Pass pre_p as a new argument to
lang_hooks.decls.omp_finish_clause hook.
(gimplify_adjust_omp_clauses): Add pre_p argument, adjust
splay_tree_foreach to pass both list_p and pre_p.
(gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
gimplify_omp_workshare, gimplify_omp_target_update): Adjust
gimplify_adjust_omp_clauses callers.
* langhooks.c (lhd_omp_finish_clause): New function.
* langhooks-def.h (lhd_omp_finish_clause): New prototype.
(LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
* langhooks.h (struct lang_hooks_for_decls): Add a new
gimple_seq * argument to omp_finish_clause hook.
* omp-low.c (scan_sharing_clauses): Call scan_omp_op on
non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
(scan_omp_parallel, lower_omp_for): When adding
_LOOPTEMP_ clause var, add it to outer ctx's decl_map
as identity.
* tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_MAP_TO_PSET.
gcc/cp/
* cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
argument.
* cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
gcc/fortran/
* cpp.c (cpp_define_builtins): Change _OPENMP macro to
201307.
* dump-parse-tree.c (show_omp_namelist): Add list_type
argument. Adjust for rop being u.reduction_op now,
handle depend_op or map_op.
(show_omp_node): Adjust callers. Print some new
OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
becoming a single OMP_LIST_DEPEND.
* f95-lang.c (gfc_handle_omp_declare_target_attribute): New
function.
(gfc_attribute_table): New variable.
(LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP target
EXEC_OMP_* codes and new clauses.
* gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
(symbol_attribute): Add omp_declare_target field.
(gfc_omp_depend_op, gfc_omp_map_op): New enums.
(gfc_omp_namelist): Replace rop field with union
containing reduction_op, depend_op and map_op.
(OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
(OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
(gfc_omp_clauses): Add num_teams, device, thread_limit,
dist_sched_kind, dist_chunk_size fields.
(gfc_common_head): Add omp_declare_target field.
(gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
EXEC_OMP_TARGET_UPDATE.
(gfc_add_omp_declare_target): New prototype.
* match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
gfc_match_omp_distribute_parallel_do,
gfc_match_omp_distribute_parallel_do_simd,
gfc_match_omp_distribute_simd, gfc_match_omp_target,
gfc_match_omp_target_data, gfc_match_omp_target_teams,
gfc_match_omp_target_teams_distribute,
gfc_match_omp_target_teams_distribute_parallel_do,
gfc_match_omp_target_teams_distribute_parallel_do_simd,
gfc_match_omp_target_teams_distribute_simd,
gfc_match_omp_target_update, gfc_match_omp_teams,
gfc_match_omp_teams_distribute,
gfc_match_omp_teams_distribute_parallel_do,
gfc_match_omp_teams_distribute_parallel_do_simd,
gfc_match_omp_teams_distribute_simd): New prototypes.
* module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
(attr_bits): Likewise.
(mio_symbol_attribute): Handle omp_declare_target attribute.
(gfc_free_omp_clauses): Free num_teams, device, thread_limit
and dist_chunk_size expressions.
(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
OMP_CLAUSE_DIST_SCHEDULE): Define.
(gfc_match_omp_clauses): Change mask parameter to unsigned int.
Adjust for rop becoming u.reduction_op. Disallow inbranch with
notinbranch. For depend clause, always create OMP_LIST_DEPEND
and fill in u.depend_op. Handle num_teams, device, map,
to, from, thread_limit and dist_schedule clauses.
(OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
OMP_CLAUSE_NOTINBRANCH.
(OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
OMP_DISTRIBUTE_CLAUSES): Define.
(match_omp): New function.
(gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
gfc_match_omp_task): Rewritten using match_omp.
(gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
Diagnose if the directives are followed by unexpected junk.
(gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
gfc_match_omp_distribute_parallel_do_simd,
gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
gfc_match_omp_target, gfc_match_omp_target_data,
gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
gfc_match_omp_target_teams_distribute_parallel_do,
gfc_match_omp_target_teams_distribute_parallel_do_simd,
gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
gfc_match_omp_teams, gfc_match_omp_teams_distribute,
gfc_match_omp_teams_distribute_parallel_do,
gfc_match_omp_teams_distribute_parallel_do_simd,
gfc_match_omp_teams_distrbute_simd): New functions.
* openmp.c (resolve_omp_clauses): Adjust for
OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
dist_chunk_size and thread_limit.
(gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
new EXEC_OMP_* codes.
(resolve_omp_do): Handle various new EXEC_OMP_* codes.
(gfc_resolve_omp_directive): Likewise.
(gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
* parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
offloading related directives.
(case_executable): Add ST_OMP_TARGET_UPDATE.
(case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
ST_OMP_DISTRIBUTE*.
(case_decl): Add ST_OMP_DECLARE_TARGET.
(gfc_ascii_statement): Handle new ST_OMP_* codes.
(parse_omp_do): Handle various new ST_OMP_* codes.
(parse_executable): Likewise.
* resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
codes.
(resolve_code): Likewise.
(resolve_symbol): Change that !$OMP DECLARE TARGET variables
are saved.
* st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
* symbol.c (check_conflict): Check omp_declare_target conflicts.
(gfc_add_omp_declare_target): New function.
(gfc_copy_attr): Copy omp_declare_target.
* trans.c (trans_code): Handle various new EXEC_OMP_* codes.
* trans-common.c (build_common_decl): Add "omp declare target"
attribute if needed.
* trans-decl.c (add_attributes_to_decl): Likewise.
* trans.h (gfc_omp_finish_clause): New prototype.
* trans-openmp.c (gfc_omp_finish_clause): New function.
(gfc_trans_omp_reduction_list): Adjust for rop being renamed
to u.reduction_op.
(gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
change to OMP_LIST_DEPEND and fix up depend handling.
Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
thread_limit, device, dist_chunk_size and dist_sched_kind.
(gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
(GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
(gfc_split_omp_clauses): Handle splitting of clauses for new
EXEC_OMP_* codes.
(gfc_trans_omp_do_simd): Add pblock argument, adjust for being
callable for combined constructs.
(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
(gfc_trans_omp_distribute, gfc_trans_omp_teams,
gfc_trans_omp_target, gfc_trans_omp_target_data,
gfc_trans_omp_target_update): New functions.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
new EXEC_OMP_* codes.
gcc/testsuite/
* gfortran.dg/gomp/declare-simd-1.f90: New test.
* gfortran.dg/gomp/depend-1.f90: New test.
* gfortran.dg/gomp/target1.f90: New test.
* gfortran.dg/gomp/target2.f90: New test.
* gfortran.dg/gomp/target3.f90: New test.
* gfortran.dg/gomp/udr4.f90: Adjust expected diagnostics.
* gfortran.dg/openmp-define-3.f90: Expect _OPENMP 201307 instead of
201107.
libgomp/
* omp_lib.f90.in (openmp_version): Set to 201307.
* omp_lib.h.in (openmp_version): Likewise.
* testsuite/libgomp.c/target-8.c: New test.
* testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
and inbranch clauses.
* testsuite/libgomp.fortran/depend-3.f90: New test.
* testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
openmp_version.
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
* testsuite/libgomp.fortran/target1.f90: New test.
* testsuite/libgomp.fortran/target2.f90: New test.
* testsuite/libgomp.fortran/target3.f90: New test.
* testsuite/libgomp.fortran/target4.f90: New test.
* testsuite/libgomp.fortran/target5.f90: New test.
* testsuite/libgomp.fortran/target6.f90: New test.
* testsuite/libgomp.fortran/target7.f90: New test.
From-SVN: r211768
2014-06-18 09:16:12 +02:00
|
|
|
2014-06-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* omp_lib.f90.in (openmp_version): Set to 201307.
|
|
|
|
* omp_lib.h.in (openmp_version): Likewise.
|
|
|
|
* testsuite/libgomp.c/target-8.c: New test.
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
|
|
|
|
and inbranch clauses.
|
|
|
|
* testsuite/libgomp.fortran/depend-3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
|
|
|
|
openmp_version.
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/target1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target6.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/target7.f90: New test.
|
|
|
|
|
re PR fortran/60928 (gfortran issue with allocatable components and OpenMP)
PR fortran/60928
* omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
Set lastprivate_firstprivate even if omp_private_outer_ref
langhook returns true.
<case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
langhook, call unshare_expr on new_var and call
build_outer_var_ref to get the last argument.
gcc/c-family/
* c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
(omp_pragmas): ... back here.
gcc/fortran/
* f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
like -fopenmp.
* openmp.c (resolve_omp_clauses): Remove allocatable components
diagnostics. Add associate-name and intent(in) pointer
diagnostics for various clauses, diagnose procedure pointers in
reduction clause.
* parse.c (match_word_omp_simd): New function.
(matchs, matcho): New macros.
(decode_omp_directive): Change match macros to either matchs
or matcho. Handle -fopenmp-simd.
(next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
* scanner.c (skip_free_comments, skip_fixed_comments, include_line):
Likewise.
* trans-array.c (get_full_array_size): Rename to...
(gfc_full_array_size): ... this. No longer static.
(duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
and handle it.
(gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
duplicate_allocatable callers.
(gfc_duplicate_allocatable_nocopy): New function.
(structure_alloc_comps): Adjust g*_full_array_size and
duplicate_allocatable caller.
* trans-array.h (gfc_full_array_size,
gfc_duplicate_allocatable_nocopy): New prototypes.
* trans-common.c (create_common): Call gfc_finish_decl_attrs.
* trans-decl.c (gfc_finish_decl_attrs): New function.
(gfc_finish_var_decl, create_function_arglist,
gfc_get_fake_result_decl): Call it.
(gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
don't allocate it again.
(gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
associate-names.
* trans.h (gfc_finish_decl_attrs): New prototype.
(struct lang_decl): Add scalar_allocatable and scalar_pointer
bitfields.
(GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
GFC_DECL_ASSOCIATE_VAR_P): Define.
(GFC_POINTER_TYPE_P): Remove.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
(gfc_omp_predetermined_sharing): Associate-names are predetermined.
(enum walk_alloc_comps): New.
(gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
gfc_walk_alloc_comps): New functions.
(gfc_omp_private_outer_ref): Return true for scalar allocatables or
decls with allocatable components.
(gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
allocatables and decls with allocatable components.
(gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
arrays here.
(gfc_trans_omp_reduction_list): Call
gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
(gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
(gfc_trans_omp_parallel_do_simd): Likewise.
* trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
(gfc_get_derived_type): Call gfc_finish_decl_attrs.
gcc/testsuite/
* gfortran.dg/gomp/allocatable_components_1.f90: Remove dg-error
directives.
* gfortran.dg/gomp/associate1.f90: New test.
* gfortran.dg/gomp/intentin1.f90: New test.
* gfortran.dg/gomp/openmp-simd-1.f90: New test.
* gfortran.dg/gomp/openmp-simd-2.f90: New test.
* gfortran.dg/gomp/openmp-simd-3.f90: New test.
* gfortran.dg/gomp/proc_ptr_2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/allocatable9.f90: New test.
* testsuite/libgomp.fortran/allocatable10.f90: New test.
* testsuite/libgomp.fortran/allocatable11.f90: New test.
* testsuite/libgomp.fortran/allocatable12.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
* testsuite/libgomp.fortran/associate1.f90: New test.
* testsuite/libgomp.fortran/associate2.f90: New test.
* testsuite/libgomp.fortran/procptr1.f90: New test.
From-SVN: r211397
2014-06-10 08:05:22 +02:00
|
|
|
2014-06-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/60928
|
|
|
|
* testsuite/libgomp.fortran/allocatable9.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable10.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable11.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable12.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/associate1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/associate2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/procptr1.f90: New test.
|
|
|
|
|
dump-parse-tree.c (show_omp_namelist): Dump reduction id in each list item.
gcc/fortran/
* dump-parse-tree.c (show_omp_namelist): Dump reduction
id in each list item.
(show_omp_node): Only handle OMP_LIST_REDUCTION, not
OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
dump reduction id here.
* frontend-passes.c (dummy_code_callback): Renamed to...
(gfc_dummy_code_callback): ... this. No longer static.
(optimize_reduction): Use gfc_dummy_code_callback instead of
dummy_code_callback.
* gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
(symbol_attribute): Add omp_udr_artificial_var bitfield.
(gfc_omp_reduction_op): New enum.
(gfc_omp_namelist): Add rop and udr fields.
(OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
(OMP_LIST_REDUCTION): New.
(gfc_omp_udr): New type.
(gfc_get_omp_udr): Define.
(gfc_symtree): Add n.omp_udr field.
(gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
(gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
gfc_dummy_code_callback): New prototypes.
* match.h (gfc_match_omp_declare_reduction): New prototype.
* module.c (MOD_VERSION): Increase to 13.
(omp_declare_reduction_stmt): New array.
(mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
New functions.
(read_module): Read OpenMP user defined reductions.
(write_module): Write OpenMP user defined reductions.
* openmp.c: Include arith.h.
(gfc_free_omp_udr, gfc_find_omp_udr): New functions.
(gfc_match_omp_clauses): Handle user defined reductions.
Store reduction kind into gfc_omp_namelist instead of using
several OMP_LIST_* entries.
(match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
gfc_match_omp_declare_reduction): New functions.
(resolve_omp_clauses): Adjust for reduction clauses being only
in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
(struct omp_udr_callback_data): New type.
(omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
functions.
* parse.c (decode_omp_directive): Handle !$omp declare reduction.
(case_decl): Add ST_OMP_DECLARE_REDUCTION.
(gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
* resolve.c (resolve_fl_variable): Allow len=: or len=* on
sym->attr.omp_udr_artificial_var symbols.
(resolve_types): Call gfc_resolve_omp_udrs.
* symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
use parent ns instead of gfc_current_ns.
(gfc_get_sym_tree): Don't insert symbols into
namespaces with omp_udr_ns set.
(free_omp_udr_tree): New function.
(gfc_free_namespace): Call it.
* trans-openmp.c (struct omp_udr_find_orig_data): New type.
(omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
(gfc_trans_omp_array_reduction): Renamed to...
(gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
argument, instead pass gfc_omp_namelist pointer N. Handle
user defined reductions.
(gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
Handle user defined reductions and reduction ops in gfc_omp_namelist.
(gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
list.
(gfc_split_omp_clauses): Likewise.
gcc/testsuite/
* gfortran.dg/gomp/allocatable_components_1.f90: Adjust for
reduction clause diagnostic changes.
* gfortran.dg/gomp/appendix-a/a.31.3.f90: Likewise.
* gfortran.dg/gomp/reduction1.f90: Likewise.
* gfortran.dg/gomp/reduction3.f90: Likewise.
* gfortran.dg/gomp/udr1.f90: New test.
* gfortran.dg/gomp/udr2.f90: New test.
* gfortran.dg/gomp/udr3.f90: New test.
* gfortran.dg/gomp/udr4.f90: New test.
* gfortran.dg/gomp/udr5.f90: New test.
* gfortran.dg/gomp/udr6.f90: New test.
* gfortran.dg/gomp/udr7.f90: New test.
libgomp/
* testsuite/libgomp.fortran/simd1.f90: New test.
* testsuite/libgomp.fortran/udr1.f90: New test.
* testsuite/libgomp.fortran/udr2.f90: New test.
* testsuite/libgomp.fortran/udr3.f90: New test.
* testsuite/libgomp.fortran/udr4.f90: New test.
* testsuite/libgomp.fortran/udr5.f90: New test.
* testsuite/libgomp.fortran/udr6.f90: New test.
* testsuite/libgomp.fortran/udr7.f90: New test.
* testsuite/libgomp.fortran/udr8.f90: New test.
* testsuite/libgomp.fortran/udr9.f90: New test.
* testsuite/libgomp.fortran/udr10.f90: New test.
* testsuite/libgomp.fortran/udr11.f90: New test.
From-SVN: r211303
2014-06-06 09:24:38 +02:00
|
|
|
2014-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/simd1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr6.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr7.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr8.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr9.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr10.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/udr11.f90: New test.
|
|
|
|
|
2014-05-27 11:14:53 +02:00
|
|
|
2014-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: Require
|
|
|
|
vect_simd_clones effective target.
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
|
|
|
|
|
2014-05-21 10:04:03 +02:00
|
|
|
2014-05-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/61252
|
|
|
|
* testsuite/libgomp.c++/simd-9.C: New test.
|
|
|
|
|
2014-05-18 12:29:30 +02:00
|
|
|
2014-05-18 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* libgomp.texi (Runitme Library Routines): Remove multiple @menu.
|
|
|
|
(Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
|
|
|
|
texts according to their @menu entry positions.
|
|
|
|
|
tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
* tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
* tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
number of operands to 3.
(walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
* gimplify.c (gimplify_scan_omp_clauses): Handle
OMP_CLAUSE_LINEAR_STMT.
* omp-low.c (lower_rec_input_clauses): Fix typo.
(maybe_add_implicit_barrier_cancel, lower_omp_1): Add
cast between Fortran boolean_type_node and C _Bool if
needed.
gcc/fortran/
* gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
ST_OMP_DECLARE_SIMD.
(gfc_omp_namelist): New typedef.
(gfc_get_omp_namelist): Define.
(OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
(gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
(gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
simdlen_expr fields.
(gfc_omp_declare_simd): New typedef.
(gfc_get_omp_declare_simd): Define.
(gfc_namespace): Add omp_declare_simd field.
(gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
EXEC_OMP_PARALLEL_DO_SIMD.
(gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
and GFC_OMP_ATOMIC_SWAP.
(gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
(gfc_free_omp_namelist, gfc_free_omp_declare_simd,
gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
prototypes.
* trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
* symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
* openmp.c (gfc_free_omp_clauses): Free safelen_expr and
simdlen_expr. Use gfc_free_omp_namelist instead of
gfc_free_namelist.
(gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
functions.
(gfc_match_omp_variable_list): Add end_colon, headp and
allow_sections arguments. Handle parsing of array sections.
Use *omp_namelist* instead of *namelist* data structure and
functions/macros. Allow termination at : character.
(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
(gfc_match_omp_clauses): Change first and needs_space variables
into arguments with default values. Parse inbranch, notinbranch,
proc_bind, safelen, simdlen, uniform, linear, aligned and
depend clauses.
(OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
(OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
(OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
(gfc_match_omp_do_simd): New function.
(gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
data structure and functions/macros.
(gfc_match_omp_simd, gfc_match_omp_declare_simd,
gfc_match_omp_parallel_do_simd): New functions.
(gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
(gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
functions.
(resolve_omp_clauses): Add where, omp_clauses and ns arguments.
Use *omp_namelist* instead of *namelist* data structure and
functions/macros. Resolve uniform, aligned, linear, depend,
safelen and simdlen clauses.
(resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
addition, recognize atomic swap.
(gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
EXEC_OMP_PARALLEL_DO.
(gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
data structure and functions/macros.
(resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD.
(gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
resolve_omp_clauses caller.
(gfc_resolve_omp_declare_simd): New function.
* parse.c (decode_omp_directive): Parse cancellation point, cancel,
declare simd, end do simd, end simd, end parallel do simd,
end taskgroup, parallel do simd, simd and taskgroup directives.
(case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
(case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
(case_decl): Add ST_OMP_DECLARE_SIMD.
(gfc_ascii_statement): Handle ST_OMP_CANCEL,
ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
ST_OMP_DECLARE_SIMD.
(parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
ST_OMP_PARALLEL_DO_SIMD.
(parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
(parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
ST_OMP_PARALLEL_DO_SIMD.
(parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
* trans-decl.c (gfc_get_extern_function_decl,
gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
needed.
* frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
of depend, aligned and linear clauses.
* match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
and EXEC_OMP_PARALLEL_DO_SIMD.
(gfc_free_omp_namelist): New function.
* dump-parse-tree.c (show_namelist): Removed.
(show_omp_namelist): New function.
(show_omp_node): Handle OpenMP 4.0 additions.
(show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
EXEC_OMP_TASKGROUP.
* match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
gfc_match_omp_taskgroup): New prototypes.
* trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
argument, handle it. Allow current_function_decl to be NULL.
(gfc_trans_omp_variable_list): Add declare_simd argument, pass
it through to gfc_trans_omp_variable and disregard whether
sym is referenced if declare_simd is true. Work on gfc_omp_namelist
instead of gfc_namelist.
(gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
gfc_namelist. Adjust gfc_trans_omp_variable caller.
(gfc_trans_omp_clauses): Add declare_simd argument, pass it through
to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
simdlen, depend, uniform, linear, proc_bind and aligned clauses.
Handle cancel kind.
(gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
adjust for GFC_OMP_ATOMIC_* changes.
(gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
functions.
(gfc_trans_omp_do): Add op argument, handle simd translation into
generic.
(GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
GFC_OMP_MASK_PARALLEL): New.
(gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
(gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
(gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
Adjust gfc_trans_omp_do caller.
(gfc_trans_omp_declare_simd): New function.
* st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
gfc_free_namelist.
* module.c (omp_declare_simd_clauses): New variable.
(mio_omp_declare_simd): New function.
(mio_symbol): Call it.
* trans.c (trans_code): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
* resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
(resolve_code): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
(resolve_types): Call gfc_resolve_omp_declare_simd.
gcc/testsuite/
* gfortran.dg/gomp/affinity-1.f90: New test.
libgomp/
* testsuite/libgomp.fortran/cancel-do-1.f90: New test.
* testsuite/libgomp.fortran/cancel-do-2.f90: New test.
* testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
* testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
* testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
* testsuite/libgomp.fortran/declare-simd-1.f90: New test.
* testsuite/libgomp.fortran/declare-simd-2.f90: New test.
* testsuite/libgomp.fortran/declare-simd-3.f90: New test.
* testsuite/libgomp.fortran/depend-1.f90: New test.
* testsuite/libgomp.fortran/depend-2.f90: New test.
* testsuite/libgomp.fortran/omp_atomic5.f90: New test.
* testsuite/libgomp.fortran/simd1.f90: New test.
* testsuite/libgomp.fortran/simd2.f90: New test.
* testsuite/libgomp.fortran/simd3.f90: New test.
* testsuite/libgomp.fortran/simd4.f90: New test.
* testsuite/libgomp.fortran/taskgroup1.f90: New test.
From-SVN: r210313
2014-05-11 22:26:36 +02:00
|
|
|
2014-05-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-do-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/cancel-do-2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/depend-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/depend-2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/simd1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/simd2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/simd3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/simd4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/taskgroup1.f90: New test.
|
|
|
|
|
2014-05-02 19:43:40 +02:00
|
|
|
2014-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/simd-10.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-11.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-12.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-13.c: New test.
|
|
|
|
|
2014-04-24 23:17:32 +02:00
|
|
|
2014-04-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2014-04-24 23:20:28 +02:00
|
|
|
* testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
|
|
|
|
atomic type clauses in any order and optional comma in between.
|
|
|
|
* testsuite/libgomp.c++/atomic-15.C: Likewise.
|
|
|
|
* testsuite/libgomp.c/atomic-17.c: Likewise.
|
|
|
|
|
2014-04-24 23:17:32 +02:00
|
|
|
* testsuite/libgomp.c/simd-7.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-8.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-9.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-16.c: New test.
|
|
|
|
|
2014-04-02 22:27:29 +02:00
|
|
|
2014-04-02 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/futex.h (futex_wait): Get error value from errno.
|
|
|
|
(futex_wake): Likewise.
|
|
|
|
|
2014-03-25 10:30:10 +01:00
|
|
|
2014-03-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/60331
|
|
|
|
* testsuite/libgomp.c++/udr-11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-12.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-13.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-14.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-15.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-16.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-17.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-18.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-19.C: New test.
|
|
|
|
|
2014-01-02 23:25:54 +01:00
|
|
|
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
Update copyright years
|
|
|
|
|
arc-common.c, [...]: Use the standard form for the copyright notice.
gcc/
* common/config/arc/arc-common.c, config/arc/arc-modes.def,
config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
config/arc/arc.md, config/arc/arc.opt, config/arm/arm_neon_builtins.def,
config/arm/crypto.def, config/i386/avx512cdintrin.h,
config/i386/avx512erintrin.h, config/i386/avx512fintrin.h,
config/i386/avx512pfintrin.h, config/i386/btver2.md,
config/i386/shaintrin.h, config/i386/slm.md, config/linux-protos.h,
config/linux.c, config/winnt-c.c, diagnostic-color.c,
diagnostic-color.h, gimple-ssa-isolate-paths.c, vtable-verify.c,
vtable-verify.h: Use the standard form for the copyright notice.
gcc/c-family/
* array-notation-common.c, c-cilkplus.c: Use the standard form for
the copyright notice.
gcc/c/
* c-array-notation.c: Use the standard form for the copyright notice.
gcc/cp/
* cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
the standard form for the copyright notice.
gcc/testsuite/
* gcc.target/arc/arc.exp: Use the standard form for the copyright
notice.
libgcc/
* config/arc/asm.h, config/arc/crtg.S, config/arc/crtgend.S,
config/arc/crti.S, config/arc/crtn.S, config/arc/divtab-arc700.c,
config/arc/dp-hack.h, config/arc/fp-hack.h,
config/arc/ieee-754/adddf3.S, config/arc/ieee-754/addsf3.S,
config/arc/ieee-754/arc600-dsp/divdf3.S,
config/arc/ieee-754/arc600-dsp/divsf3.S,
config/arc/ieee-754/arc600-dsp/muldf3.S,
config/arc/ieee-754/arc600-dsp/mulsf3.S,
config/arc/ieee-754/arc600-mul64/divdf3.S,
config/arc/ieee-754/arc600-mul64/divsf3.S,
config/arc/ieee-754/arc600-mul64/muldf3.S,
config/arc/ieee-754/arc600-mul64/mulsf3.S,
config/arc/ieee-754/arc600/divsf3.S,
config/arc/ieee-754/arc600/mulsf3.S,
config/arc/ieee-754/divdf3.S, config/arc/ieee-754/divsf3-stdmul.S,
config/arc/ieee-754/divsf3.S, config/arc/ieee-754/divtab-arc-df.c,
config/arc/ieee-754/divtab-arc-sf.c, config/arc/ieee-754/eqdf2.S,
config/arc/ieee-754/eqsf2.S, config/arc/ieee-754/extendsfdf2.S,
config/arc/ieee-754/fixdfsi.S, config/arc/ieee-754/fixsfsi.S,
config/arc/ieee-754/fixunsdfsi.S, config/arc/ieee-754/floatsidf.S,
config/arc/ieee-754/floatsisf.S, config/arc/ieee-754/floatunsidf.S,
config/arc/ieee-754/gedf2.S, config/arc/ieee-754/gesf2.S,
config/arc/ieee-754/gtdf2.S, config/arc/ieee-754/gtsf2.S,
config/arc/ieee-754/muldf3.S, config/arc/ieee-754/mulsf3.S,
config/arc/ieee-754/orddf2.S, config/arc/ieee-754/ordsf2.S,
config/arc/ieee-754/truncdfsf2.S, config/arc/ieee-754/uneqdf2.S,
config/arc/ieee-754/uneqsf2.S, config/arc/initfini.c,
config/arc/lib1funcs.S, config/arc/t-arc, config/arc/t-arc-newlib,
config/cris/umulsidi3.S, config/msp430/cmpsi2.S,
config/msp430/epilogue.S, config/msp430/lib2bitcountHI.c,
config/msp430/lib2divHI.c, config/msp430/lib2divQI.c,
config/msp430/lib2divSI.c, config/msp430/lib2mul.c,
config/msp430/msp430-divmod.h, config/msp430/msp430-mul.h,
config/msp430/slli.S, config/msp430/srai.S, config/msp430/srli.S,
config/rl78/divmodhi.S, config/rl78/divmodqi.S, config/rl78/divmodsi.S,
config/rl78/signbit.S, vtv_end.c, vtv_end_preinit.c, vtv_start.c,
vtv_start_preinit.c: Use the standard form for the copyright notice.
libgomp/
* hashtab.h: Use the standard form for the copyright notice.
libstdc++-v3/
* testsuite/18_support/new_handler.cc,
testsuite/18_support/terminate_handler.cc,
testsuite/18_support/unexpected_handler.cc: Use the standard form for
the copyright notice.
From-SVN: r206288
2014-01-02 23:09:02 +01:00
|
|
|
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
* hashtab.h: Use the standard form for the copyright notice.
|
|
|
|
|
2014-01-02 22:25:41 +01:00
|
|
|
2014-01-02 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
2013-12-17 19:05:32 +01:00
|
|
|
2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
|
|
|
|
alloca () with __builtin_alloca ().
|
|
|
|
* testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
|
|
|
|
* testsuite/libgomp.c/lock-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Likewise.
|
|
|
|
|
2013-12-17 16:17:00 +01:00
|
|
|
2013-12-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR testsuite/59534
|
|
|
|
* testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
|
|
|
|
comparisons.
|
|
|
|
|
2013-12-16 11:34:28 +01:00
|
|
|
2013-12-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/58756
|
|
|
|
* testsuite/libgomp.c/pr58756.c: New test.
|
|
|
|
|
2013-12-12 09:52:06 +01:00
|
|
|
2013-12-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/59467
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
|
|
|
|
!$omp parallel.
|
|
|
|
|
2013-11-07 16:07:34 +01:00
|
|
|
2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
2013-11-07 16:07:58 +01:00
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
* testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
|
|
|
|
* testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
|
|
|
|
Likewise.
|
|
|
|
|
2013-11-07 16:07:46 +01:00
|
|
|
* libgomp_g.h: Include <stddef.h> for size_t.
|
|
|
|
|
2013-11-07 16:07:34 +01:00
|
|
|
* libgomp.spec.in: Update comment about libgomp's dependencies.
|
|
|
|
* configure.ac: Likewise.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2013-10-16 00:08:46 +02:00
|
|
|
2013-10-16 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* libgomp.texi: (Runtime Library Routines): Update references for
|
|
|
|
OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
|
|
|
|
omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
|
|
|
|
omp_get_team_num, omp_is_initial_device, omp_set_default_device.
|
|
|
|
(Environment Variables): Update references for OpenMP 4.0. Add
|
|
|
|
OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
|
|
|
|
Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
|
|
|
|
order.
|
|
|
|
|
2013-10-14 10:26:18 +02:00
|
|
|
2013-10-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* env.c (parse_bind_var): Initialize value to avoid
|
|
|
|
(false positive) warning.
|
|
|
|
|
2013-10-12 09:52:15 +02:00
|
|
|
2013-10-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/58691
|
|
|
|
* config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
|
|
|
|
to check variable.
|
|
|
|
(gomp_init_num_threads): Move i variable declaration into
|
|
|
|
#ifdef CPU_ALLOC_SIZE block.
|
|
|
|
* config/linux/affinity.c (gomp_affinity_init_level): Test
|
|
|
|
gomp_places_list_len == 0 rather than gomp_places_list == 0
|
|
|
|
when checking for topology reading error.
|
|
|
|
* team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
|
|
|
|
* env.c (parse_affinity): Add ignore argument, if true, don't populate
|
|
|
|
gomp_places_list, only parse env var and always return false.
|
|
|
|
(parse_places_var): Likewise. Don't check gomp_global_icv.bind_var.
|
|
|
|
(initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
|
|
|
|
vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
|
|
|
|
and either of these variables were parsed correctly into a places
|
|
|
|
list.
|
|
|
|
|
2013-10-11 12:43:59 +02:00
|
|
|
2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
|
|
|
|
of 5 loopfn matches.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
|
|
|
|
|
2013-10-11 12:41:34 +02:00
|
|
|
2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
2013-10-11 12:43:48 +02:00
|
|
|
* Makefile.am (omp_lib.mod): Streamline rule.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2013-10-11 12:43:26 +02:00
|
|
|
* libgomp.texi (Runtime Library Routines): C linkage, don't throw
|
|
|
|
exceptions.
|
|
|
|
|
2013-10-11 12:43:15 +02:00
|
|
|
* testsuite/libgomp.c/lib-1.c (main): Add missing error check.
|
|
|
|
* testsuite/libgomp.fortran/lib1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/lib2.f: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/lib3.f: Likewise.
|
|
|
|
|
2013-10-11 12:42:53 +02:00
|
|
|
* configure.ac: Typo fix.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2013-10-11 12:42:42 +02:00
|
|
|
* testsuite/libgomp.fortran/openmp_version-1.f: New file.
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
|
|
|
|
|
2013-10-11 12:41:34 +02:00
|
|
|
* omp.h.in: Don't touch the user's namespace.
|
|
|
|
|
target.c: New file.
libgomp/
* target.c: New file.
* Makefile.am (libgomp_la_SOURCES): Add target.c.
* Makefile.in: Regenerated.
* libgomp_g.h (GOMP_task): Add depend argument.
(GOMP_barrier_cancel, GOMP_loop_end_cancel,
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
GOMP_target_end_data, GOMP_target_update, GOMP_teams,
GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
GOMP_taskgroup_start, GOMP_taskgroup_end,
GOMP_parallel_sections): New prototypes.
* fortran.c (omp_is_initial_device): Add ialias_redirect.
(omp_is_initial_device_): New function.
(ULP, STR1, STR2, ialias_redirect): Removed.
(omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
omp_set_default_device_8_, omp_get_default_device_,
omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
functions.
* libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
@@GOMP_4.0.
(omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
omp_set_default_device, omp_set_default_device_,
omp_set_default_device_8_, omp_get_default_device,
omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
omp_get_team_num_): Export @@OMP_4.0.
* team.c (struct gomp_thread_start_data): Add place field.
(gomp_thread_start): Clear thr->thread_pool and
thr->task before returning. Use gomp_team_barrier_wait_final
instead of gomp_team_barrier_wait. Initialize thr->place.
(gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
team_cancelled and task_queued_count fields.
(gomp_free_pool_helper): Clear thr->thread_pool and thr->task
before calling pthread_exit.
(gomp_free_thread): No longer static. Use
gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
(gomp_team_start): Add flags argument. Set
thr->thread_pool->threads_busy to nthreads immediately after creating
new pool. Use gomp_managed_threads_lock instead of
gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
(gomp_team_end): Use gomp_managed_threads_lock instead of
gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
of gomp_team_barrier_wait. If team->team_cancelled, call
gomp_fini_worshare on ws chain starting at team->work_shares_to_free
rather than thr->ts.work_share.
(initialize_team): Don't call gomp_sem_init here.
* sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
caller.
(GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
* env.c (gomp_global_icv): Add default_device_var, target_data and
bind_var initializers.
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
gomp_places_list_len): New variables.
(parse_bind_var, parse_one_place, parse_places_var): New functions.
(parse_affinity): Rewritten to construct OMP_PLACES list with unit
sized places.
(gomp_cancel_var): New global variable.
(parse_int): New function.
(handle_omp_display_env): New function.
(initialize_env): Use it. Initialize default_device_var.
Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
been successfully parsed (and call gomp_init_affinity in that case).
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New functions.
* libgomp.h: Include stdlib.h.
(ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
Define.
(struct target_mem_desc): Forward declare.
(struct gomp_task_icv): Add default_device_var, target_data, bind_var
and thread_limit_var fields.
(gomp_get_num_devices): New prototype.
(gomp_cancel_var): New extern decl.
(struct gomp_team): Add work_shares_to_free, work_share_cancelled,
team_cancelled and task_queued_count fields. Add comments about
task_{,queued_,running_}count.
(gomp_cancel_kind): New enum.
(gomp_work_share_end_cancel): New prototype.
(struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
and depend fields.
(struct gomp_taskgroup): New type.
(struct gomp_task_depend_entry,
struct gomp_dependers_vec): New types.
(gomp_finish_task): Free depend_hash if non-NULL.
(struct gomp_team_state): Add place_partition_off
and place_partition_len fields.
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
gomp_places_list_len): New extern decls.
(struct gomp_thread): Add place field.
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
(gomp_init_thread_affinity): Add place argument.
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
gomp_affinity_init_level, gomp_affinity_print_place): New
prototypes.
(gomp_team_start): Add flags argument.
(gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): Remove.
(gomp_managed_threads_lock): New variable.
(struct gomp_thread_pool): Add threads_busy field.
(gomp_free_thread): New prototype.
* task.c: Include hashtab.h.
(hash_entry_type): New typedef.
(htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
(gomp_init_task): Clear dependers, depend_hash, depend_count,
copy_ctors_done and taskgroup fields.
(GOMP_task): Add depend argument, handle depend clauses. If
gomp_team_barrier_cancelled or if it's taskgroup has been
cancelled, don't queue or start new tasks. Set copy_ctors_done
field if needed. Initialize taskgroup field. If copy_ctors_done
and already cancelled, don't discard the task. If taskgroup is
non-NULL, enqueue the task into taskgroup queue. Increment
num_children field in taskgroup. Increment task_queued_count.
(gomp_task_run_pre, gomp_task_run_post_remove_parent,
gomp_task_run_post_remove_taskgroup): New inline functions.
(gomp_task_run_post_handle_depend_hash,
gomp_task_run_post_handle_dependers,
gomp_task_run_post_handle_depend): New functions.
(GOMP_taskwait): Use them. If more than one new tasks
have been queued, wake other threads if needed.
(gomp_barrier_handle_tasks): Likewise. If
gomp_team_barrier_cancelled, don't start any new tasks, just free
all tasks.
(GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
* omp_lib.f90.in
(omp_proc_bind_kind, omp_proc_bind_false,
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
omp_proc_bind_spread): New params.
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New interfaces.
(omp_get_dynamic, omp_get_nested, omp_in_parallel,
omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level, omp_in_final): Remove
useless use omp_lib_kinds.
* omp.h.in (omp_proc_bind_t): New typedef.
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New prototypes.
* loop.c (gomp_parallel_loop_start): Add flags argument, pass it
through to gomp_team_start.
(GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
Adjust gomp_parallel_loop_start callers.
(GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
GOMP_loop_end_cancel): New functions.
(GOMP_parallel_end): Add ialias_redirect.
* hashtab.h: New file.
* libgomp.texi (Environment Variables): Minor cleanup,
update section refs to OpenMP 4.0rc2.
(OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
environment variables.
* work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
team->work_shares_to_free to thr->ts.work_share before calling
free_work_share.
(gomp_work_share_end_cancel): New function.
* config/linux/proc.c: Include errno.h.
(gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
(gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
sizeof (cpu_set_t) to determine number of iterations. Fix up check
extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
gomp_cpuset_size is sizeof (cpu_set_t).
(gomp_init_num_threads): Initialize gomp_cpuset_size,
gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
contain any logical CPUs.
(get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
is NULL. Use gomp_cpusetp instead of &cpuset and pass
gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
pthread_getaffinity_np. Check gomp_places_list instead of
gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
* config/linux/bar.c (gomp_barrier_wait_end,
gomp_barrier_wait_last): Use BAR_* defines.
(gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
from state where needed. Set work_share_cancelled to 0 on last
thread.
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
functions.
* config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
Add cpusetsize argument.
(gomp_cpuset_size, gomp_cpusetp): Declare.
* config/linux/affinity.c: Include errno.h, stdio.h and string.h.
(affinity_counter): Remove.
(CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
if CPU_ALLOC_SIZE isn't defined.
(gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
silently create OMP_PLACES=threads, if it is non-NULL afterwards,
bind current thread to the first place.
(gomp_init_thread_affinity): Rewritten. Add place argument, just
pthread_setaffinity_np to gomp_places_list[place].
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
gomp_affinity_init_level, gomp_affinity_print_place): New functions.
* config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
(gomp_barrier_t): Add awaited_final field.
(gomp_barrier_init): Initialize awaited_final field.
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
prototypes.
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
defines.
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
gomp_team_barrier_cancelled): New inline functions.
(gomp_barrier_last_thread,
gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): Use BAR_* defines.
* config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
(gomp_barrier_wait_end): Use BAR_* defines.
(gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
Use BAR_* defines.
(gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
gomp_team_barrier_cancel): New functions.
* config/posix/affinity.c (gomp_init_thread_affinity): Add place
argument.
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
* config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
(gomp_barrier_t): Add cancellable field.
(gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
gomp_team_barrier_cancel): New prototypes.
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
gomp_team_barrier_cancelled): New inline functions.
(gomp_barrier_wait_start, gomp_barrier_last_thread,
gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): Use BAR_* defines.
* barrier.c (GOMP_barrier_cancel): New function.
* omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
omp_proc_bind_spread): New params.
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New externals.
* parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
New functions.
(gomp_resolve_num_threads): Adjust for thread_limit now being in
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
infinity. If not nested, just return minimum of max_num_threads
and icv->thread_limit_var and if thr->thread_pool, set threads_busy
to the returned value. Otherwise, don't update atomically
gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
(GOMP_parallel_end): Adjust for thread_limit now being in
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
infinity. Adjust threads_busy in the pool rather than
gomp_remaining_threads_count. Remember team->nthreads and call
gomp_team_end before adjusting threads_busy, if not nested
afterwards, just set it to 1 non-atomically. Add ialias.
(GOMP_parallel_start): Adjust gomp_team_start caller.
* testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
* testsuite/libgomp.c/affinity-1.c: New test.
* testsuite/libgomp.c/atomic-15.c: New test.
* testsuite/libgomp.c/atomic-16.c: New test.
* testsuite/libgomp.c/atomic-17.c: New test.
* testsuite/libgomp.c/cancel-for-1.c: New test.
* testsuite/libgomp.c/cancel-for-2.c: New test.
* testsuite/libgomp.c/cancel-parallel-1.c: New test.
* testsuite/libgomp.c/cancel-parallel-2.c: New test.
* testsuite/libgomp.c/cancel-parallel-3.c: New test.
* testsuite/libgomp.c/cancel-sections-1.c: New test.
* testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
* testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
* testsuite/libgomp.c/depend-1.c: New test.
* testsuite/libgomp.c/depend-2.c: New test.
* testsuite/libgomp.c/depend-3.c: New test.
* testsuite/libgomp.c/depend-4.c: New test.
* testsuite/libgomp.c/for-1.c: New test.
* testsuite/libgomp.c/for-1.h: New file.
* testsuite/libgomp.c/for-2.c: New test.
* testsuite/libgomp.c/for-2.h: New file.
* testsuite/libgomp.c/for-3.c: New test.
* testsuite/libgomp.c/pr58392.c: New test.
* testsuite/libgomp.c/simd-1.c: New test.
* testsuite/libgomp.c/simd-2.c: New test.
* testsuite/libgomp.c/simd-3.c: New test.
* testsuite/libgomp.c/simd-4.c: New test.
* testsuite/libgomp.c/simd-5.c: New test.
* testsuite/libgomp.c/simd-6.c: New test.
* testsuite/libgomp.c/target-1.c: New test.
* testsuite/libgomp.c/target-2.c: New test.
* testsuite/libgomp.c/target-3.c: New test.
* testsuite/libgomp.c/target-4.c: New test.
* 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/taskgroup-1.c: New test.
* testsuite/libgomp.c/thread-limit-1.c: New test.
* testsuite/libgomp.c/thread-limit-2.c: New test.
* testsuite/libgomp.c/thread-limit-3.c: New test.
* testsuite/libgomp.c/udr-1.c: New test.
* testsuite/libgomp.c/udr-2.c: New test.
* testsuite/libgomp.c/udr-3.c: New test.
* testsuite/libgomp.c++/affinity-1.C: New test.
* testsuite/libgomp.c++/atomic-10.C: New test.
* testsuite/libgomp.c++/atomic-11.C: New test.
* testsuite/libgomp.c++/atomic-12.C: New test.
* testsuite/libgomp.c++/atomic-13.C: New test.
* testsuite/libgomp.c++/atomic-14.C: New test.
* testsuite/libgomp.c++/atomic-15.C: New test.
* testsuite/libgomp.c++/cancel-for-1.C: New test.
* testsuite/libgomp.c++/cancel-for-2.C: New test.
* testsuite/libgomp.c++/cancel-parallel-1.C: New test.
* testsuite/libgomp.c++/cancel-parallel-2.C: New test.
* testsuite/libgomp.c++/cancel-parallel-3.C: New test.
* testsuite/libgomp.c++/cancel-sections-1.C: New test.
* testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
* testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
* testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
* testsuite/libgomp.c++/cancel-test.h: New file.
* testsuite/libgomp.c++/for-9.C: New test.
* testsuite/libgomp.c++/for-10.C: New test.
* testsuite/libgomp.c++/for-11.C: New test.
* testsuite/libgomp.c++/simd-1.C: New test.
* testsuite/libgomp.c++/simd-2.C: New test.
* testsuite/libgomp.c++/simd-3.C: New test.
* testsuite/libgomp.c++/simd-4.C: New test.
* testsuite/libgomp.c++/simd-5.C: New test.
* testsuite/libgomp.c++/simd-6.C: New test.
* testsuite/libgomp.c++/simd-7.C: New test.
* testsuite/libgomp.c++/simd-8.C: New test.
* testsuite/libgomp.c++/target-1.C: New test.
* testsuite/libgomp.c++/target-2.C: New test.
* testsuite/libgomp.c++/target-2-aux.cc: New file.
* testsuite/libgomp.c++/target-3.C: New test.
* testsuite/libgomp.c++/taskgroup-1.C: New test.
* testsuite/libgomp.c++/udr-1.C: New test.
* testsuite/libgomp.c++/udr-2.C: New test.
* testsuite/libgomp.c++/udr-3.C: New test.
* testsuite/libgomp.c++/udr-4.C: New test.
* testsuite/libgomp.c++/udr-5.C: New test.
* testsuite/libgomp.c++/udr-6.C: New test.
* testsuite/libgomp.c++/udr-7.C: New test.
* testsuite/libgomp.c++/udr-8.C: New test.
* testsuite/libgomp.c++/udr-9.C: New test.
gcc/
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
formatting fixes, use pp_colon instead of pp_character (..., ':'),
similarly pp_right_paren.
(dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
clauses.
(omp_declare_simd_clauses_equal,
omp_remove_redundant_declare_simd_attrs): New functions.
(attribute_value_equal): Use omp_declare_simd_clauses_equal.
(walk_tree_1): Handle new OpenMP 4.0 clauses.
* tree.h (OMP_LOOP_CHECK): Define.
(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
(OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SIMDLEN_EXPR): Define.
(OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
(omp_remove_redundant_declare_simd_attrs): New prototype.
* gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS): New codes.
(GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
* omp-low.c (struct omp_context): Add cancel_label and cancellable
fields.
(target_nesting_level): New variable.
(extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
for collapse > 1 static schedule unless ordered.
(get_ws_args_for): Add par_stmt argument. Handle combined loops.
(determine_parallel_type): Adjust get_ws_args_for caller.
(install_var_field): Handle mask & 4 for double indirection.
(scan_sharing_clauses): Ignore shared clause on teams construct.
Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
(create_omp_child_function): If inside target or declare target
constructs, set "omp declare target" attribute on the child
function.
(find_combined_for): New function.
(scan_omp_parallel): Handle combined loops.
(scan_omp_target, scan_omp_teams): New functions.
(check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
restrictions and set ctx->cancellable for cancellable constructs.
(scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
(build_omp_barrier): Add lhs argument, return gimple rather than
tree.
(omp_clause_aligned_alignment): New function.
(lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
on decls.
(lower_rec_input_clauses): Add FD argument. Ignore shared clauses
on teams constructs. Handle user defined reductions and new
OpenMP 4.0 clauses.
(lower_reduction_clauses): Don't set placeholder to address of ref
if it has already the right type.
(lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
(expand_parallel_call): Use the new non-_start suffixed builtins,
handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
and GOMP_parallel_end after the call.
(expand_task_call): Handle OMP_CLAUSE_DEPEND.
(expand_omp_for_init_counts): Handle combined loops.
(expand_omp_for_init_vars): Add inner_stmt argument, handle combined
loops.
(expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
end of cancellable loops.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Likewise. Handle collapse > 1 loops.
(expand_omp_simd): Handle combined loops.
(expand_omp_for): Add inner_stmt argument, adjust callers of
expand_omp_for* functions, use expand_omp_for_static*chunk even
for collapse > 1 unless ordered.
(expand_omp_sections): Use GOMP_sections_end_cancel at the end
of cancellable sections.
(expand_omp_single): Remove need_barrier variable, just rely on
gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
(expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
(expand_omp_atomic_load, expand_omp_atomic_store,
expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
(expand_omp_target): New function.
(expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
(build_omp_regions_1): Immediately close region for
GF_OMP_TARGET_KIND_UPDATE.
(maybe_add_implicit_barrier_cancel): New function.
(lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
cancellation.
(lower_omp_single): Likewise. Add clobber after the barrier.
(lower_omp_taskgroup): New function.
(lower_omp_for): Handle combined loops. Adjust
lower_rec_input_clauses caller. Handle cancellation.
(lower_depend_clauses): New function.
(lower_omp_taskreg): Lower depend clauses. Adjust
lower_rec_input_clauses caller. Add clobber after the call. Handle
cancellation.
(lower_omp_target, lower_omp_teams): New functions.
(lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
and GOMP_cancellation_point calls.
(lower_omp): Fold stmts inside of target region.
(diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
* builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
(BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
(BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
BUILT_IN_GOMP_PARALLEL_END.
* gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle
GF_OMP_FOR_KIND_DISTRIBUTE.
(dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
(dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
(dump_gimple_omp_return): Print lhs if it has any.
(dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
gimple_omp_atomic_seq_cst_p.
(pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
and GIMPLE_OMP_TEAMS.
* langhooks.c (lhd_omp_mappable_type): New function.
* tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
* langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
hook.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
(enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
ORT_TARGET.
(struct gimplify_omp_ctx): Add combined_loop field.
(gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
on stmts inside of target region.
(is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
(omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
ORT_TARGET and ORT_TARGET_DATA.
(omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
Handle GOVD_MAP.
(omp_notice_threadprivate_variable): Complain about threadprivate
variables in target region.
(omp_notice_variable): Complain about vars with non-mappable type
in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
(omp_check_private): Ignore ORT_TARGET* regions.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
(find_combined_omp_for): New function.
(gimplify_omp_for): Handle gimplification of combined loops.
(gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
OMP_TEAMS.
(gimplify_omp_target_update): New function.
(gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
(gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
(gimplify_body): If fndecl has "omp declare target" attribute, add
implicit ORT_TARGET context around it.
* tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
* tree-nested.c (convert_nonlocal_reference_stmt,
convert_local_reference_stmt, convert_gimple_call): Handle
GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* omp-builtins.def (BUILT_IN_GOMP_TASK): Use
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
(BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
BUILT_IN_GOMP_LOOP_END_CANCEL,
BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
(BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
* tree-inline.c (remap_gimple_stmt, estimate_num_insns):
Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
gimple_build_omp_teams): New functions.
(walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
(walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
GF_OMP_ATOMIC_SEQ_CST): New.
(gimple_build_omp_taskgroup, gimple_build_omp_target,
gimple_build_omp_teams): New prototypes.
(gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
(gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
GIMPLE_OMP_SINGLE as end of range.
(gimple_omp_return_set_lhs, gimple_omp_return_lhs,
gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
gimple_omp_target_kind, gimple_omp_target_set_kind,
gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
gimple_omp_teams_set_clauses): New inlines.
(CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
and GIMPLE_OMP_TASKGROUP.
* tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause
codes.
(enum omp_clause_depend_kind, enum omp_clause_map_kind,
enum omp_clause_proc_bind_kind): New.
(union omp_clause_subcode): Add depend_kind, map_kind and
proc_bind_kind fields.
* tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* langhooks-def.h (lhd_omp_mappable_type): New prototype.
(LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
gcc/c-family/
* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
201307 instead of 201107.
* c-common.c (DEF_FUNCTION_TYPE_8): Define.
(c_common_attribute_table): Add "omp declare target" and
"omp declare simd" attributes.
(handle_omp_declare_target_attribute,
handle_omp_declare_simd_attribute): New functions.
* c-omp.c: Include c-pragma.h.
(c_finish_omp_taskgroup): New function.
(c_finish_omp_atomic): Add swapped argument, if true,
build the operation first with rhs, lhs arguments and use NOP_EXPR
build_modify_expr.
(c_finish_omp_for): Add code argument, pass it down to make_code.
(c_omp_split_clauses): New function.
(c_split_parallel_clauses): Removed.
(c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
c_omp_declare_simd_clauses_to_decls): New functions.
* c-common.h (omp_clause_mask): New type.
(OMP_CLAUSE_MASK_1): Define.
(omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
omp_clause_mask::operator |=, omp_clause_mask::operator ~,
omp_clause_mask::operator |, omp_clause_mask::operator &,
omp_clause_mask::operator <<, omp_clause_mask::operator >>,
omp_clause_mask::operator ==): New methods.
(enum c_omp_clause_split): New.
(c_finish_omp_taskgroup): New prototype.
(c_finish_omp_atomic): Add swapped argument.
(c_finish_omp_for): Add code argument.
(c_omp_split_clauses): New prototype.
(c_split_parallel_clauses): Removed.
(c_omp_declare_simd_clauses_to_numbers,
c_omp_declare_simd_clauses_to_decls): New prototypes.
* c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
PRAGMA_OMP_CLAUSE_UNIFORM.
gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_8): Define.
gcc/fortran/
* trans-openmp.c (gfc_omp_clause_default_ctor,
gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
* f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
* types.def (DEF_FUNCTION_TYPE_8): Document.
(BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
(BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
gcc/c/
* c-lang.h (current_omp_declare_target_attribute): New extern
decl.
* c-parser.c: Include c-lang.h.
(struct c_parser): Change tokens to c_token *.
Add tokens_buf field. Change tokens_avail type to unsigned int.
(c_parser_consume_token): If parser->tokens isn't
&parser->tokens_buf[0], increment parser->tokens.
(c_parser_consume_pragma): Likewise.
(enum pragma_context): Add pragma_struct and pragma_param.
(c_parser_external_declaration): Adjust
c_parser_declaration_or_fndef caller.
(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
Adjust recursive call.
(c_parser_struct_or_union_specifier): Use pragma_struct instead
of pragma_external.
(c_parser_parameter_declaration): Use pragma_param instead of
pragma_external.
(c_parser_compound_statement_nostart, c_parser_label,
c_parser_for_statement): Adjust
c_parser_declaration_or_fndef callers.
(c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
it through to c_parser_conditional_expression.
(c_parser_conditional_expression): Add omp_atomic_lhs argument,
pass it through to c_parser_binary_expression. Adjust recursive
call.
(c_parser_binary_expression): Remove prec argument, add
omp_atomic_lhs argument instead. Always start from PREC_NONE, if
omp_atomic_lhs is non-NULL and one of the arguments of toplevel
binop matches it, use build2 instead of parser_build_binary_op.
(c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
Handle pragma_struct and pragma_param the same as pragma_external.
(c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
(c_parser_omp_variable_list): Parse array sections for
OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
(c_parser_omp_clause_collapse): Fully fold collapse expression.
(c_parser_omp_clause_reduction): Handle user defined reductions.
(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
c_parser_omp_clause_depend, c_parser_omp_clause_map,
c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
(c_parser_omp_all_clauses): Add finish_p argument. Don't call
c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
(c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
(c_parser_omp_for_loop): Add CODE argument, pass it through
to c_finish_omp_for. Change last argument to cclauses,
and adjust uses to grab parallel clauses from the array of all
the split clauses. Adjust c_parser_binary_expression,
c_parser_declaration_or_fndef and c_finish_omp_for callers.
(omp_split_clauses): New function.
(c_parser_omp_simd): New function.
(c_parser_omp_for): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs,
and call c_parser_omp_simd when parsing for simd.
(c_parser_omp_sections_scope): If section-sequence doesn't start with
#pragma omp section, require exactly one structured-block instead of
sequence of statements.
(c_parser_omp_sections): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs.
(c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined
constructs.
(c_parser_omp_taskgroup, c_parser_omp_cancel,
c_parser_omp_cancellation_point, c_parser_omp_distribute,
c_parser_omp_teams, c_parser_omp_target_data,
c_parser_omp_target_update, c_parser_omp_target,
c_parser_omp_declare_simd, c_finish_omp_declare_simd,
c_parser_omp_declare_target, c_parser_omp_end_declare_target,
c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
(c_parser_omp_construct): Add p_name and mask vars. Handle
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
and c_parser_omp_sections callers.
(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
OMP_CLAUSE_DEPEND.
(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
* c-typeck.c: Include tree-inline.h.
(c_finish_omp_cancel, c_finish_omp_cancellation_point,
handle_omp_array_sections_1, handle_omp_array_sections,
c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
user defined reductions.
(c_tree_equal): New function.
* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
c_check_omp_declare_reduction_r): New prototypes.
* c-decl.c (current_omp_declare_target_attribute): New variable.
(c_decl_attributes): New function.
(start_decl, start_function): Use it instead of decl_attributes.
(temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
c_omp_reduction_decl, c_omp_reduction_lookup,
c_check_omp_declare_reduction_r): New functions.
gcc/cp/
* decl.c (duplicate_decls): Error out for redeclaration of UDRs.
(declare_simd_adjust_this): New function.
(grokfndecl): If "omp declare simd" attribute is present,
call declare_simd_adjust_this if needed and
c_omp_declare_simd_clauses_to_numbers.
* cp-array-notation.c (expand_array_notation_exprs): Handle
OMP_TASKGROUP.
* cp-gimplify.c (cp_gimplify_expr): Handle OMP_SIMD and
OMP_DISTRIBUTE. Handle is_invisiref_parm decls in
OMP_CLAUSE_REDUCTION.
(cp_genericize_r): Handle OMP_SIMD and OMP_DISTRIBUTE like
OMP_FOR.
(cxx_omp_privatize_by_reference): Return true for
is_invisiref_parm decls.
(cxx_omp_finish_clause): Adjust cxx_omp_create_clause_info
caller.
* pt.c (apply_late_template_attributes): For "omp declare simd"
attribute call tsubst_omp_clauses,
c_omp_declare_simd_clauses_to_decls, finish_omp_clauses
and c_omp_declare_simd_clauses_to_numbers.
(instantiate_class_template_1): Call cp_check_omp_declare_reduction
for UDRs.
(tsubst_decl): Handle UDRs.
(tsubst_omp_clauses): Add declare_simd argument, if true don't
call finish_omp_clauses. Handle new OpenMP 4.0 clauses.
Handle non-NULL OMP_CLAUSE_REDUCTION_PLACEHOLDER on
OMP_CLAUSE_REDUCTION.
(tsubst_expr): For UDRs call pushdecl and
cp_check_omp_declare_reduction. Adjust tsubst_omp_clauses
callers. Handle OMP_SIMD, OMP_DISTRIBUTE, OMP_TEAMS,
OMP_TARGET_DATA, OMP_TARGET_UPDATE, OMP_TARGET, OMP_TASKGROUP.
Adjust finish_omp_atomic caller.
(tsubst_omp_udr): New function.
(instantiate_decl): For UDRs at block scope, don't call
start_preparsed_function/finish_function. Call tsubst_omp_udr.
* semantics.c (cxx_omp_create_clause_info): Add need_dtor argument,
use it instead of need_default_ctor || need_copy_ctor.
(struct cp_check_omp_declare_reduction_data): New type.
(handle_omp_array_sections_1, handle_omp_array_sections,
omp_reduction_id, omp_reduction_lookup,
cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction_r,
cp_check_omp_declare_reduction, clone_omp_udr,
find_omp_placeholder_r, finish_omp_reduction_clause): New functions.
(finish_omp_clauses): Handle new OpenMP 4.0 clauses and user defined
reductions.
(finish_omp_for): Add CODE argument, use it instead of hardcoded
OMP_FOR. Adjust c_finish_omp_for caller.
(finish_omp_atomic): Add seq_cst argument, adjust
c_finish_omp_atomic callers, handle seq_cst and new OpenMP 4.0
atomic variants.
(finish_omp_cancel, finish_omp_cancellation_point): New functions.
* decl2.c (mark_used): Force immediate instantiation of
DECL_OMP_DECLARE_REDUCTION_P decls.
(is_late_template_attribute): Return true for "omp declare simd"
attribute.
(cp_omp_mappable_type): New function.
(cplus_decl_attributes): Add implicit "omp declare target" attribute
if requested.
* parser.c (cp_debug_parser): Print
parser->colon_doesnt_start_class_def_p.
(cp_ensure_no_omp_declare_simd, cp_finalize_omp_declare_simd): New
functions.
(enum pragma_context): Add pragma_member and pragma_objc_icode.
(cp_parser_binary_expression): Handle no_toplevel_fold_p
even for binary operations other than comparison.
(cp_parser_linkage_specification): Call
cp_ensure_no_omp_declare_simd if needed.
(cp_parser_namespace_definition): Likewise.
(cp_parser_init_declarator): Call cp_finalize_omp_declare_simd.
(cp_parser_direct_declarator): Pass declarator to
cp_parser_late_return_type_opt.
(cp_parser_late_return_type_opt): Add declarator argument,
call cp_parser_late_parsing_omp_declare_simd for declare simd.
(cp_parser_class_specifier_1): Call cp_ensure_no_omp_declare_simd.
Parse UDRs before all other methods.
(cp_parser_member_specification_opt): Use pragma_member instead of
pragma_external.
(cp_parser_member_declaration): Call cp_finalize_omp_declare_simd.
(cp_parser_function_definition_from_specifiers_and_declarator,
cp_parser_save_member_function_body): Likewise.
(cp_parser_late_parsing_for_member): Handle UDRs specially.
(cp_parser_next_token_starts_class_definition_p): Don't allow
CPP_COLON if colon_doesnt_start_class_def_p flag is true.
(cp_parser_objc_interstitial_code): Use pragma_objc_icode
instead of pragma_external.
(cp_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
(cp_parser_omp_var_list_no_open): Parse array sections for
OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses. Add COLON argument,
if non-NULL, allow parsing to end with a colon rather than close
paren.
(cp_parser_omp_var_list): Adjust cp_parser_omp_var_list_no_open
caller.
(cp_parser_omp_clause_reduction): Handle user defined reductions.
(cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind,
cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear,
cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen,
cp_parser_omp_clause_depend, cp_parser_omp_clause_map,
cp_parser_omp_clause_device, cp_parser_omp_clause_dist_schedule,
cp_parser_omp_clause_proc_bind, cp_parser_omp_clause_to,
cp_parser_omp_clause_from, cp_parser_omp_clause_uniform): New
functions.
(cp_parser_omp_all_clauses): Add finish_p argument. Don't call
finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
(cp_parser_omp_atomic): Parse seq_cst clause, pass
true if it is present to finish_omp_atomic. Handle new OpenMP 4.0
atomic forms.
(cp_parser_omp_for_loop): Add CODE argument, pass it through
to finish_omp_for. Change last argument to cclauses,
and adjust uses to grab parallel clauses from the array of all
the split clauses.
(cp_omp_split_clauses): New function.
(cp_parser_omp_simd): New function.
(cp_parser_omp_for): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs,
and call c_parser_omp_simd when parsing for simd.
(cp_parser_omp_sections_scope): If section-sequence doesn't start with
#pragma omp section, require exactly one structured-block instead of
sequence of statements.
(cp_parser_omp_sections): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs.
(cp_parser_omp_parallel): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined
constructs.
(cp_parser_omp_taskgroup, cp_parser_omp_cancel,
cp_parser_omp_cancellation_point, cp_parser_omp_distribute,
cp_parser_omp_teams, cp_parser_omp_target_data,
cp_parser_omp_target_update, cp_parser_omp_target,
cp_parser_omp_declare_simd, cp_parser_late_parsing_omp_declare_simd,
cp_parser_omp_declare_target, cp_parser_omp_end_declare_target,
cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction,
cp_parser_omp_declare): New functions.
(cp_parser_omp_construct): Add p_name and mask vars. Handle
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
PRAGMA_OMP_TEAMS. Adjust cp_parser_omp_for, cp_parser_omp_parallel
and cp_parser_omp_sections callers.
(cp_parser_pragma): Handle PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
PRAGMA_OMP_TEAMS, PRAGMA_OMP_TARGET, PRAGMA_OMP_END_DECLARE_TARGET.
Handle pragma_member and pragma_objc_icode like pragma_external.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
OMP_CLAUSE_DEPEND.
(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
* parser.h (struct cp_omp_declare_simd_data): New type.
(struct cp_parser): Add colon_doesnt_start_class_def_p and
omp_declare_simd fields.
* cp-objcp-common.h (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
* cp-tree.h (struct lang_decl_fn): Add omp_declare_reduction_p
bit.
(DECL_OMP_DECLARE_REDUCTION_P): Define.
(OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK macro.
(struct saved_scope): Add omp_declare_target_attribute field.
(cp_omp_mappable_type, omp_reduction_id,
cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction,
finish_omp_cancel, finish_omp_cancellation_point): New prototypes.
(finish_omp_for): Add CODE argument.
(finish_omp_atomic): Add seq_cst argument.
(cxx_omp_create_clause_info): Add need_dtor argument.
gcc/testsuite/
* c-c++-common/gomp/atomic-15.c: Adjust for C diagnostics.
Remove error test that is now valid in OpenMP 4.0.
* c-c++-common/gomp/atomic-16.c: New test.
* c-c++-common/gomp/cancel-1.c: New test.
* c-c++-common/gomp/depend-1.c: New test.
* c-c++-common/gomp/depend-2.c: New test.
* c-c++-common/gomp/map-1.c: New test.
* c-c++-common/gomp/pr58472.c: New test.
* c-c++-common/gomp/sections1.c: New test.
* c-c++-common/gomp/simd1.c: New test.
* c-c++-common/gomp/simd2.c: New test.
* c-c++-common/gomp/simd3.c: New test.
* c-c++-common/gomp/simd4.c: New test.
* c-c++-common/gomp/simd5.c: New test.
* c-c++-common/gomp/single1.c: New test.
* g++.dg/gomp/block-0.C: Adjust for stricter #pragma omp sections
parser.
* g++.dg/gomp/block-3.C: Likewise.
* g++.dg/gomp/clause-3.C: Adjust error messages.
* g++.dg/gomp/declare-simd-1.C: New test.
* g++.dg/gomp/declare-simd-2.C: New test.
* g++.dg/gomp/depend-1.C: New test.
* g++.dg/gomp/depend-2.C: New test.
* g++.dg/gomp/target-1.C: New test.
* g++.dg/gomp/target-2.C: New test.
* g++.dg/gomp/taskgroup-1.C: New test.
* g++.dg/gomp/teams-1.C: New test.
* g++.dg/gomp/udr-1.C: New test.
* g++.dg/gomp/udr-2.C: New test.
* g++.dg/gomp/udr-3.C: New test.
* g++.dg/gomp/udr-4.C: New test.
* g++.dg/gomp/udr-5.C: New test.
* g++.dg/gomp/udr-6.C: New test.
* gcc.dg/autopar/outer-1.c: Expect 4 instead of 5 loopfn matches.
* gcc.dg/autopar/outer-2.c: Likewise.
* gcc.dg/autopar/outer-3.c: Likewise.
* gcc.dg/autopar/outer-4.c: Likewise.
* gcc.dg/autopar/outer-5.c: Likewise.
* gcc.dg/autopar/outer-6.c: Likewise.
* gcc.dg/autopar/parallelization-1.c: Likewise.
* gcc.dg/gomp/block-3.c: Adjust for stricter #pragma omp sections
parser.
* gcc.dg/gomp/clause-1.c: Adjust error messages.
* gcc.dg/gomp/combined-1.c: Look for GOMP_parallel_loop_runtime
instead of GOMP_parallel_loop_runtime_start.
* gcc.dg/gomp/declare-simd-1.c: New test.
* gcc.dg/gomp/declare-simd-2.c: New test.
* gcc.dg/gomp/nesting-1.c: Adjust for stricter #pragma omp sections
parser. Add further #pragma omp sections nesting tests.
* gcc.dg/gomp/target-1.c: New test.
* gcc.dg/gomp/target-2.c: New test.
* gcc.dg/gomp/taskgroup-1.c: New test.
* gcc.dg/gomp/teams-1.c: New test.
* gcc.dg/gomp/udr-1.c: New test.
* gcc.dg/gomp/udr-2.c: New test.
* gcc.dg/gomp/udr-3.c: New test.
* gcc.dg/gomp/udr-4.c: New test.
* gfortran.dg/gomp/appendix-a/a.35.5.f90: Add dg-error.
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r203408
2013-10-11 11:26:50 +02:00
|
|
|
2013-10-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* target.c: New file.
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add target.c.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
* libgomp_g.h (GOMP_task): Add depend argument.
|
|
|
|
(GOMP_barrier_cancel, GOMP_loop_end_cancel,
|
|
|
|
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
|
|
|
|
GOMP_target_end_data, GOMP_target_update, GOMP_teams,
|
|
|
|
GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
|
|
|
|
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
|
|
|
|
GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
|
|
|
|
GOMP_taskgroup_start, GOMP_taskgroup_end,
|
|
|
|
GOMP_parallel_sections): New prototypes.
|
|
|
|
* fortran.c (omp_is_initial_device): Add ialias_redirect.
|
|
|
|
(omp_is_initial_device_): New function.
|
|
|
|
(ULP, STR1, STR2, ialias_redirect): Removed.
|
|
|
|
(omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
|
|
|
|
omp_set_default_device_8_, omp_get_default_device_,
|
|
|
|
omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
|
|
|
|
functions.
|
|
|
|
* libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
|
|
|
|
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
|
|
|
|
GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
|
|
|
|
@@GOMP_4.0.
|
|
|
|
(omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
|
|
|
|
omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
|
|
|
|
omp_set_default_device, omp_set_default_device_,
|
|
|
|
omp_set_default_device_8_, omp_get_default_device,
|
|
|
|
omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
|
|
|
|
omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
|
|
|
|
omp_get_team_num_): Export @@OMP_4.0.
|
|
|
|
* team.c (struct gomp_thread_start_data): Add place field.
|
|
|
|
(gomp_thread_start): Clear thr->thread_pool and
|
|
|
|
thr->task before returning. Use gomp_team_barrier_wait_final
|
|
|
|
instead of gomp_team_barrier_wait. Initialize thr->place.
|
|
|
|
(gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
|
|
|
|
team_cancelled and task_queued_count fields.
|
|
|
|
(gomp_free_pool_helper): Clear thr->thread_pool and thr->task
|
|
|
|
before calling pthread_exit.
|
|
|
|
(gomp_free_thread): No longer static. Use
|
|
|
|
gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
|
|
|
|
(gomp_team_start): Add flags argument. Set
|
|
|
|
thr->thread_pool->threads_busy to nthreads immediately after creating
|
|
|
|
new pool. Use gomp_managed_threads_lock instead of
|
|
|
|
gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
|
|
|
|
(gomp_team_end): Use gomp_managed_threads_lock instead of
|
|
|
|
gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
|
|
|
|
of gomp_team_barrier_wait. If team->team_cancelled, call
|
|
|
|
gomp_fini_worshare on ws chain starting at team->work_shares_to_free
|
|
|
|
rather than thr->ts.work_share.
|
|
|
|
(initialize_team): Don't call gomp_sem_init here.
|
|
|
|
* sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
|
|
|
|
caller.
|
|
|
|
(GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
|
|
|
|
* env.c (gomp_global_icv): Add default_device_var, target_data and
|
|
|
|
bind_var initializers.
|
|
|
|
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
|
|
|
|
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
|
|
|
|
gomp_places_list_len): New variables.
|
|
|
|
(parse_bind_var, parse_one_place, parse_places_var): New functions.
|
|
|
|
(parse_affinity): Rewritten to construct OMP_PLACES list with unit
|
|
|
|
sized places.
|
|
|
|
(gomp_cancel_var): New global variable.
|
|
|
|
(parse_int): New function.
|
|
|
|
(handle_omp_display_env): New function.
|
|
|
|
(initialize_env): Use it. Initialize default_device_var.
|
|
|
|
Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
|
|
|
|
OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
|
|
|
|
OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
|
|
|
|
been successfully parsed (and call gomp_init_affinity in that case).
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
omp_get_team_num, omp_is_initial_device): New functions.
|
|
|
|
* libgomp.h: Include stdlib.h.
|
|
|
|
(ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
|
|
|
|
Define.
|
|
|
|
(struct target_mem_desc): Forward declare.
|
|
|
|
(struct gomp_task_icv): Add default_device_var, target_data, bind_var
|
|
|
|
and thread_limit_var fields.
|
|
|
|
(gomp_get_num_devices): New prototype.
|
|
|
|
(gomp_cancel_var): New extern decl.
|
|
|
|
(struct gomp_team): Add work_shares_to_free, work_share_cancelled,
|
|
|
|
team_cancelled and task_queued_count fields. Add comments about
|
|
|
|
task_{,queued_,running_}count.
|
|
|
|
(gomp_cancel_kind): New enum.
|
|
|
|
(gomp_work_share_end_cancel): New prototype.
|
|
|
|
(struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
|
|
|
|
copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
|
|
|
|
and depend fields.
|
|
|
|
(struct gomp_taskgroup): New type.
|
|
|
|
(struct gomp_task_depend_entry,
|
|
|
|
struct gomp_dependers_vec): New types.
|
|
|
|
(gomp_finish_task): Free depend_hash if non-NULL.
|
|
|
|
(struct gomp_team_state): Add place_partition_off
|
|
|
|
and place_partition_len fields.
|
|
|
|
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
|
|
|
|
gomp_places_list_len): New extern decls.
|
|
|
|
(struct gomp_thread): Add place field.
|
|
|
|
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
|
|
|
|
(gomp_init_thread_affinity): Add place argument.
|
|
|
|
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
|
|
|
|
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
|
|
|
|
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
|
|
|
|
gomp_affinity_init_level, gomp_affinity_print_place): New
|
|
|
|
prototypes.
|
|
|
|
(gomp_team_start): Add flags argument.
|
|
|
|
(gomp_thread_limit_var, gomp_remaining_threads_count,
|
|
|
|
gomp_remaining_threads_lock): Remove.
|
|
|
|
(gomp_managed_threads_lock): New variable.
|
|
|
|
(struct gomp_thread_pool): Add threads_busy field.
|
|
|
|
(gomp_free_thread): New prototype.
|
|
|
|
* task.c: Include hashtab.h.
|
|
|
|
(hash_entry_type): New typedef.
|
|
|
|
(htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
|
|
|
|
(gomp_init_task): Clear dependers, depend_hash, depend_count,
|
|
|
|
copy_ctors_done and taskgroup fields.
|
|
|
|
(GOMP_task): Add depend argument, handle depend clauses. If
|
|
|
|
gomp_team_barrier_cancelled or if it's taskgroup has been
|
|
|
|
cancelled, don't queue or start new tasks. Set copy_ctors_done
|
|
|
|
field if needed. Initialize taskgroup field. If copy_ctors_done
|
|
|
|
and already cancelled, don't discard the task. If taskgroup is
|
|
|
|
non-NULL, enqueue the task into taskgroup queue. Increment
|
|
|
|
num_children field in taskgroup. Increment task_queued_count.
|
|
|
|
(gomp_task_run_pre, gomp_task_run_post_remove_parent,
|
|
|
|
gomp_task_run_post_remove_taskgroup): New inline functions.
|
|
|
|
(gomp_task_run_post_handle_depend_hash,
|
|
|
|
gomp_task_run_post_handle_dependers,
|
|
|
|
gomp_task_run_post_handle_depend): New functions.
|
|
|
|
(GOMP_taskwait): Use them. If more than one new tasks
|
|
|
|
have been queued, wake other threads if needed.
|
|
|
|
(gomp_barrier_handle_tasks): Likewise. If
|
|
|
|
gomp_team_barrier_cancelled, don't start any new tasks, just free
|
|
|
|
all tasks.
|
|
|
|
(GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
|
|
|
|
* omp_lib.f90.in
|
|
|
|
(omp_proc_bind_kind, omp_proc_bind_false,
|
|
|
|
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
|
|
|
|
omp_proc_bind_spread): New params.
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
omp_get_team_num, omp_is_initial_device): New interfaces.
|
|
|
|
(omp_get_dynamic, omp_get_nested, omp_in_parallel,
|
|
|
|
omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
|
|
|
|
omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
|
|
|
|
omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
|
|
|
|
omp_get_team_size, omp_get_active_level, omp_in_final): Remove
|
|
|
|
useless use omp_lib_kinds.
|
|
|
|
* omp.h.in (omp_proc_bind_t): New typedef.
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
omp_get_team_num, omp_is_initial_device): New prototypes.
|
|
|
|
* loop.c (gomp_parallel_loop_start): Add flags argument, pass it
|
|
|
|
through to gomp_team_start.
|
|
|
|
(GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
|
|
|
|
GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
|
|
|
|
Adjust gomp_parallel_loop_start callers.
|
|
|
|
(GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
|
|
|
|
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
|
|
|
|
GOMP_loop_end_cancel): New functions.
|
|
|
|
(GOMP_parallel_end): Add ialias_redirect.
|
|
|
|
* hashtab.h: New file.
|
|
|
|
* libgomp.texi (Environment Variables): Minor cleanup,
|
|
|
|
update section refs to OpenMP 4.0rc2.
|
|
|
|
(OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
|
|
|
|
environment variables.
|
|
|
|
* work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
|
|
|
|
team->work_shares_to_free to thr->ts.work_share before calling
|
|
|
|
free_work_share.
|
|
|
|
(gomp_work_share_end_cancel): New function.
|
|
|
|
* config/linux/proc.c: Include errno.h.
|
|
|
|
(gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
|
|
|
|
(gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
|
|
|
|
sizeof (cpu_set_t) to determine number of iterations. Fix up check
|
|
|
|
extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
|
|
|
|
gomp_cpuset_size is sizeof (cpu_set_t).
|
|
|
|
(gomp_init_num_threads): Initialize gomp_cpuset_size,
|
|
|
|
gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
|
|
|
|
of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
|
|
|
|
to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
|
|
|
|
contain any logical CPUs.
|
|
|
|
(get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
|
|
|
|
is NULL. Use gomp_cpusetp instead of &cpuset and pass
|
|
|
|
gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
|
|
|
|
pthread_getaffinity_np. Check gomp_places_list instead of
|
|
|
|
gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
|
|
|
|
* config/linux/bar.c (gomp_barrier_wait_end,
|
|
|
|
gomp_barrier_wait_last): Use BAR_* defines.
|
|
|
|
(gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
|
|
|
|
from state where needed. Set work_share_cancelled to 0 on last
|
|
|
|
thread.
|
|
|
|
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
|
|
|
|
gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
|
|
|
|
functions.
|
|
|
|
* config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
|
|
|
|
Add cpusetsize argument.
|
|
|
|
(gomp_cpuset_size, gomp_cpusetp): Declare.
|
|
|
|
* config/linux/affinity.c: Include errno.h, stdio.h and string.h.
|
|
|
|
(affinity_counter): Remove.
|
|
|
|
(CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
|
|
|
|
if CPU_ALLOC_SIZE isn't defined.
|
|
|
|
(gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
|
|
|
|
silently create OMP_PLACES=threads, if it is non-NULL afterwards,
|
|
|
|
bind current thread to the first place.
|
|
|
|
(gomp_init_thread_affinity): Rewritten. Add place argument, just
|
|
|
|
pthread_setaffinity_np to gomp_places_list[place].
|
|
|
|
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
|
|
|
|
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
|
|
|
|
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
|
|
|
|
gomp_affinity_init_level, gomp_affinity_print_place): New functions.
|
|
|
|
* config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
|
|
|
|
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
|
|
|
|
(gomp_barrier_t): Add awaited_final field.
|
|
|
|
(gomp_barrier_init): Initialize awaited_final field.
|
|
|
|
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
|
|
|
|
gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
|
|
|
|
prototypes.
|
|
|
|
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
|
|
|
|
defines.
|
|
|
|
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
|
|
|
|
gomp_team_barrier_cancelled): New inline functions.
|
|
|
|
(gomp_barrier_last_thread,
|
|
|
|
gomp_team_barrier_set_task_pending,
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_done): Use BAR_* defines.
|
|
|
|
* config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
|
|
|
|
(gomp_barrier_wait_end): Use BAR_* defines.
|
|
|
|
(gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
|
|
|
|
Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
|
|
|
|
Use BAR_* defines.
|
|
|
|
(gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
|
|
|
|
gomp_team_barrier_cancel): New functions.
|
|
|
|
* config/posix/affinity.c (gomp_init_thread_affinity): Add place
|
|
|
|
argument.
|
|
|
|
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
|
|
|
|
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
|
|
|
|
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
|
|
|
|
gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
|
|
|
|
* config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
|
|
|
|
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
|
|
|
|
(gomp_barrier_t): Add cancellable field.
|
|
|
|
(gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
|
|
|
|
gomp_team_barrier_cancel): New prototypes.
|
|
|
|
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
|
|
|
|
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
|
|
|
|
gomp_team_barrier_cancelled): New inline functions.
|
|
|
|
(gomp_barrier_wait_start, gomp_barrier_last_thread,
|
|
|
|
gomp_team_barrier_set_task_pending,
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_done): Use BAR_* defines.
|
|
|
|
* barrier.c (GOMP_barrier_cancel): New function.
|
|
|
|
* omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
|
|
|
|
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
|
|
|
|
omp_proc_bind_spread): New params.
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
omp_get_team_num, omp_is_initial_device): New externals.
|
|
|
|
* parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
|
|
|
|
New functions.
|
|
|
|
(gomp_resolve_num_threads): Adjust for thread_limit now being in
|
|
|
|
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
|
|
|
|
infinity. If not nested, just return minimum of max_num_threads
|
|
|
|
and icv->thread_limit_var and if thr->thread_pool, set threads_busy
|
|
|
|
to the returned value. Otherwise, don't update atomically
|
|
|
|
gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
|
|
|
|
(GOMP_parallel_end): Adjust for thread_limit now being in
|
|
|
|
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
|
|
|
|
infinity. Adjust threads_busy in the pool rather than
|
|
|
|
gomp_remaining_threads_count. Remember team->nthreads and call
|
|
|
|
gomp_team_end before adjusting threads_busy, if not nested
|
|
|
|
afterwards, just set it to 1 non-atomically. Add ialias.
|
|
|
|
(GOMP_parallel_start): Adjust gomp_team_start caller.
|
|
|
|
* testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-15.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-16.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-17.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-for-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-for-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-sections-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/depend-4.c: New test.
|
|
|
|
* testsuite/libgomp.c/for-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/for-1.h: New file.
|
|
|
|
* testsuite/libgomp.c/for-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/for-2.h: New file.
|
|
|
|
* testsuite/libgomp.c/for-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr58392.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-4.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/simd-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/target-4.c: New test.
|
|
|
|
* 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/taskgroup-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/thread-limit-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/thread-limit-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/thread-limit-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/udr-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/udr-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/udr-3.c: New test.
|
|
|
|
* testsuite/libgomp.c++/affinity-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-10.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-12.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-13.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-14.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-15.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-for-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-for-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-sections-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/cancel-test.h: New file.
|
|
|
|
* testsuite/libgomp.c++/for-9.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-10.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-4.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-6.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-7.C: New test.
|
|
|
|
* testsuite/libgomp.c++/simd-8.C: New test.
|
|
|
|
* testsuite/libgomp.c++/target-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/target-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/target-2-aux.cc: New file.
|
|
|
|
* testsuite/libgomp.c++/target-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/taskgroup-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-4.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-6.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-7.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-8.C: New test.
|
|
|
|
* testsuite/libgomp.c++/udr-9.C: New test.
|
|
|
|
|
2013-09-20 19:52:29 +02:00
|
|
|
2013-09-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR testsuite/57605
|
|
|
|
* testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
|
2013-09-20 11:47:52 +02:00
|
|
|
2013-09-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2013-09-19 13:52:52 +02:00
|
|
|
2013-09-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/sections-2.c: New test.
|
|
|
|
|
2013-06-28 14:45:57 +02:00
|
|
|
2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/strassen.f90:
|
|
|
|
Add dg-skip-if aarch64_tiny.
|
|
|
|
|
2013-06-20 18:48:26 +02:00
|
|
|
2013-06-20 Iain Sandoe <iain@codesourcery.com>
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
|
|
|
|
Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
|
|
|
|
* testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp: Likewise.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
|
|
|
|
Use dg-runtest rather than gfortran-dg-runtest.
|
|
|
|
|
2013-06-10 09:21:29 +02:00
|
|
|
2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/icv-2.c: Extend current handling of
|
|
|
|
Linux-based x86 systems to cover all GNU systems.
|
|
|
|
* testsuite/libgomp.c/lock-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Likewise.
|
|
|
|
|
2013-06-06 12:04:34 +02:00
|
|
|
2013-06-06 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
2013-06-06 12:04:49 +02:00
|
|
|
* configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
|
|
|
|
GNU/Hurd, as done for Linux-based systems.
|
|
|
|
|
2013-06-06 12:04:34 +02:00
|
|
|
* config/posix/ptrlock.h: Fix comment.
|
|
|
|
|
re PR fortran/57423 (Incorrect keyword argument names in Fortran OpenMP procedure interfaces in omp_lib)
2013-05-27 Tobias Burnus <burnus@net-b.de>
PR fortran/57423
* libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
omp_destroy_nest_lock): Correct arguments to match the one in
the OpenMP spec.
* omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
From-SVN: r199351
2013-05-27 11:28:48 +02:00
|
|
|
2013-05-27 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR fortran/57423
|
|
|
|
* libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
|
|
|
|
omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
|
|
|
|
omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
|
|
|
|
omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
|
|
|
|
omp_destroy_nest_lock): Correct arguments to match the one in
|
|
|
|
the OpenMP spec.
|
|
|
|
* omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
|
|
|
|
omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
|
|
|
|
omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
|
|
|
|
omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
|
|
|
|
|
2013-05-16 12:43:33 +02:00
|
|
|
2013-05-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/loop-13.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-14.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-15.c: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-13.C: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-14.C: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-15.C: New test.
|
|
|
|
|
2013-02-06 11:34:53 +01:00
|
|
|
2013-02-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/56217
|
|
|
|
* testsuite/libgomp.c++/pr56217.C: New test.
|
|
|
|
|
2013-02-01 13:52:41 +01:00
|
|
|
2013-02-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
* task.c (GOMP_task, GOMP_taskwait): Comment.
|
|
|
|
|
2013-01-31 17:57:09 +01:00
|
|
|
2013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org>
|
|
|
|
Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
|
|
|
|
|
|
|
|
PR libgomp/55561
|
|
|
|
* config/linux/wait.h (do_spin): Use atomic load for addr.
|
|
|
|
* config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
|
|
|
|
for intptr and ptrlock.
|
|
|
|
* config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
|
|
|
|
for ptrlock.
|
|
|
|
|
2013-01-22 12:41:53 +01:00
|
|
|
2013-01-22 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/51376
|
|
|
|
PR libgomp/56073
|
|
|
|
* task.c (GOMP_task): Revert 2011-12-09 change.
|
|
|
|
(GOMP_taskwait): Likewise. Instead use atomic load with acquire
|
|
|
|
barrier to read task->children..
|
|
|
|
(gomp_barrier_handle_tasks): ..and matching atomic store with
|
|
|
|
release barrier here when setting parent->children to NULL.
|
|
|
|
|
2013-01-16 17:19:32 +01:00
|
|
|
2013-01-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR driver/55884
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Use
|
|
|
|
-fintrinsic-modules-path= instead of
|
|
|
|
-fintrinsic-modules-path.
|
|
|
|
|
2013-01-14 19:18:49 +01:00
|
|
|
2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
Update copyright years.
|
|
|
|
|
2012-12-19 16:53:01 +01:00
|
|
|
2012-12-19 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Set
|
|
|
|
-fintrinsic-modules-path.
|
|
|
|
|
2012-12-19 16:02:50 +01:00
|
|
|
2012-12-19 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
|
|
|
|
from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
|
|
|
|
|
2012-11-21 21:29:14 +01:00
|
|
|
2012-11-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/55411
|
|
|
|
* team.c (gomp_free_thread): Decrease gomp_managed_threads
|
|
|
|
if pool had any threads_used.
|
|
|
|
|
2012-11-08 00:12:27 +01:00
|
|
|
2012-11-07 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: Use
|
|
|
|
-Wl,-undefined,dynamic_lookup on darwin.
|
|
|
|
|
2012-11-07 15:16:04 +01:00
|
|
|
2012-11-07 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
|
|
|
|
|
2012-10-24 11:46:06 +02:00
|
|
|
2012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
|
|
|
|
|
2012-10-23 19:29:35 +02:00
|
|
|
2012-10-23 Ian Bolton <ian.bolton@arm.com>
|
|
|
|
Jim MacArthur <jim.macarthur@arm.com>
|
|
|
|
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
Nigel Stephens <nigel.stephens@arm.com>
|
|
|
|
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
Sofiane Naci <sofiane.naci@arm.com>
|
|
|
|
Stephen Thomas <stephen.thomas@arm.com>
|
|
|
|
Tejas Belagod <tejas.belagod@arm.com>
|
|
|
|
Yufeng Zhang <yufeng.zhang@arm.com>
|
|
|
|
|
|
|
|
* configure.tgt: Add AArch64.
|
|
|
|
|
2012-10-08 16:45:37 +02:00
|
|
|
2012-10-04 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/tls-init1.C: New.
|
|
|
|
|
2012-09-15 01:33:57 +02:00
|
|
|
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2012-08-29 11:29:55 +02:00
|
|
|
2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
* config/linux/mips/futex.h (sys_futex0): Change to static
|
|
|
|
function with noinline, nomips16 attributes under MIPS16. Adjust
|
|
|
|
asm statement to place 'li v0,SYS_futex' immediately before
|
|
|
|
syscall insn.
|
|
|
|
|
2012-07-05 04:53:03 +02:00
|
|
|
2012-07-04 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
* libgomp.texi (Library Index): Renamed from "Index" to prevent
|
|
|
|
conflict with index.html on case-insensitive file systems.
|
|
|
|
|
2012-07-03 09:24:10 +02:00
|
|
|
2012-07-03 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
|
|
|
|
* testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
|
|
|
|
|
2012-07-02 13:43:46 +02:00
|
|
|
2012-07-02 Richard Guenther <rguenther@suse.de>
|
2012-07-03 09:24:10 +02:00
|
|
|
Michael Matz <matz@suse.de>
|
|
|
|
Tobias Grosser <tobias@grosser.es>
|
|
|
|
Sebastian Pop <sebpop@gmail.com>
|
2012-07-02 13:43:46 +02:00
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
|
2012-06-28 11:01:38 +02:00
|
|
|
2012-06-28 Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
|
|
|
|
* libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
|
|
|
|
|
2012-06-22 14:29:33 +02:00
|
|
|
2012-06-22 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
Merge from graphite branch
|
|
|
|
2012-01-13 Tobias Grosser <tobias@grosser.es>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
|
|
|
|
|
re PR c/53580 (Internal Segmentation fault in nested "omp parallel", "omp parallel for" and "omp parallel for reduction" Directives)
PR middle-end/53580
* omp-low.c (scan_omp): Change first argument to
gimple_seq *, call walk_gimple_seq_mod instead of
walk_gimple_seq.
(scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
scan_omp_for, scan_omp_sections, scan_omp_single,
execute_lower_omp): Adjust callers.
(scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
returns false, replace stmt with GIMPLE_NOP.
(check_omp_nesting_restrictions): Instead of issuing warnings,
issue errors and return false if any errors were reported.
* gcc.dg/gomp/nesting-1.c: Expect errors rather than warnings.
* gcc.dg/gomp/critical-4.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.1.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.3.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* c-c++-common/gomp/pr53580.c: New test.
* testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
use GOMP_barrier () call instead.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
* testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
call GOMP_barrier instead.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
From-SVN: r188298
2012-06-07 08:36:55 +02:00
|
|
|
2012-06-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/53580
|
|
|
|
* testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
|
|
|
|
use GOMP_barrier () call instead.
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
|
|
|
|
call GOMP_barrier instead.
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: Likewise.
|
|
|
|
|
2012-06-06 20:31:06 +02:00
|
|
|
2012-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/52993
|
|
|
|
* config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
|
|
|
|
argument to memset call.
|
|
|
|
|
2012-05-17 00:11:18 +02:00
|
|
|
2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2012-04-11 22:15:35 +02:00
|
|
|
2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
|
|
|
|
|
2012-03-31 23:08:22 +02:00
|
|
|
2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR bootstrap/52812
|
|
|
|
* configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
|
|
|
|
|
2012-03-22 20:25:36 +01:00
|
|
|
2012-03-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/52547
|
|
|
|
* testsuite/libgomp.c/pr52547.c: New test.
|
|
|
|
|
2012-03-16 10:51:06 +01:00
|
|
|
2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: load fortran-modules.exp
|
|
|
|
|
Remove obsolete IRIX 6.5 support
libstdc++-v3:
* configure.host (irix6.5*): Remove.
* config/os/irix: Remove.
* config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc())
[_GLIBCXX_FIONREAD_TAKES_OFF_T]: Remove.
* doc/xml/faq.xml: Remove IRIX reference.
* doc/xml/manual/using.xml (Finding Dynamic or Shared Libraries):
Remove IRIX example.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Remove mips-sgi-irix6* handling.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* testsuite/30_threads/async/49668.cc: Likewise.
* testsuite/30_threads/async/any.cc: Likewise.
* testsuite/30_threads/async/async.cc: Likewise.
* testsuite/30_threads/async/launch.cc: Likewise.
* testsuite/30_threads/async/sync.cc: Likewise.
* testsuite/30_threads/call_once/39909.cc: Likewise.
* testsuite/30_threads/call_once/49668.cc: Likewise.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
* testsuite/30_threads/future/cons/move.cc: Likewise.
* testsuite/30_threads/future/members/45133.cc: Likewise.
* testsuite/30_threads/future/members/get.cc: Likewise.
* testsuite/30_threads/future/members/get2.cc: Likewise.
* testsuite/30_threads/future/members/share.cc: Likewise.
* testsuite/30_threads/future/members/valid.cc: Likewise.
* testsuite/30_threads/future/members/wait.cc: Likewise.
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
* testsuite/30_threads/lock/1.cc: Likewise.
* testsuite/30_threads/lock/2.cc: Likewise.
* testsuite/30_threads/lock/3.cc: Likewise.
* testsuite/30_threads/lock/4.cc: Likewise.
* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/packaged_task/49668.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
* testsuite/30_threads/promise/cons/1.cc: Likewise.
* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* testsuite/30_threads/promise/cons/move.cc: Likewise.
* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
* testsuite/30_threads/promise/members/get_future.cc: Likewise.
* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value.cc: Likewise.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
* testsuite/30_threads/promise/members/swap.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
* testsuite/30_threads/shared_future/members/get.cc: Likewise.
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
* testsuite/30_threads/this_thread/1.cc: Likewise.
* testsuite/30_threads/this_thread/2.cc: Likewise.
* testsuite/30_threads/this_thread/3.cc: Likewise.
* testsuite/30_threads/this_thread/4.cc: Likewise.
* testsuite/30_threads/thread/cons/1.cc: Likewise.
* testsuite/30_threads/thread/cons/2.cc: Likewise.
* testsuite/30_threads/thread/cons/3.cc: Likewise.
* testsuite/30_threads/thread/cons/4.cc: Likewise.
* testsuite/30_threads/thread/cons/49668.cc: Likewise.
* testsuite/30_threads/thread/cons/5.cc: Likewise.
* testsuite/30_threads/thread/cons/6.cc: Likewise.
* testsuite/30_threads/thread/cons/7.cc: Likewise.
* testsuite/30_threads/thread/cons/8.cc: Likewise.
* testsuite/30_threads/thread/cons/9.cc: Likewise.
* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* testsuite/30_threads/thread/members/1.cc: Likewise.
* testsuite/30_threads/thread/members/2.cc: Likewise.
* testsuite/30_threads/thread/members/3.cc: Likewise.
* testsuite/30_threads/thread/members/4.cc: Likewise.
* testsuite/30_threads/thread/members/5.cc: Likewise.
* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
* testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/thread/swap/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/try_lock/1.cc: Likewise.
* testsuite/30_threads/try_lock/2.cc: Likewise.
* testsuite/30_threads/try_lock/3.cc: Likewise.
* testsuite/30_threads/try_lock/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
* testsuite/ext/rope/pthread7-rope.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
Likewise.
* testsuite/23_containers/vector/capacity/resize/1.cc: Remove
dg-options for mips*-*-irix6*.
* testsuite/27_io/ios_base/storage/1.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
* testsuite/27_io/ios_base/storage/3.cc: Likewise.
* testsuite/lib/libstdc++.exp (v3-build_support): Remove IRIX 6
workaround.
libjava:
* configure.ac (libgcj_cv_exidx): Remove IRIX 6 ld workaround.
(mips-sgi-irix6*): Remove.
(mips-sgi-irix*): Remove.
(AC_CHECK_HEADERS): Remove bstring.h.
* configure: Regenerate.
* include/config.h.in: Regenerate.
* configure.host (mips-sgi-irix6*): Remove.
* include/posix-signal.h [__sgi__]: Remove.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc
[HAVE_BSTRING_H]: Remove.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc: Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc: Likewise.
libitm:
* configure.tgt (*-*-irix6*): Remove.
libgomp:
* configure.tgt (mips-sgi-irix6*): Remove.
libgfortran:
* intrinsics/c99_functions.c [__sgi__ && !HAVE_COMPLEX_H]: Remove.
libgcc:
* config.host (mips-sgi-irix6.5*): Remove.
* config/mips/irix-crti.S: Remove.
* config/mips/irix-crtn.S: Remove.
* config/mips/irix6-unwind.h: Remove.
* config/mips/t-irix6: Remove.
* config/mips/t-slibgcc-irix: Remove.
gnattools:
* configure.ac (mips-sgi-irix*): Remove.
* configure: Regenerate.
gcc/testsuite:
* g++.dg/other/anon5.C: Don't skip on mips-sgi-irix*.
* g++.dg/tree-prof/partition1.C: Likewise.
* g++.dg/tree-prof/partition2.C: Likewise.
* g++.old-deja/g++.other/init19.C: Remove mips-sgi-irix*
handling.
* gcc.c-torture/compile/labels-3.c: Remove dg-options.
* gcc.c-torture/execute/20010724-1.c: Remove.
* gcc.c-torture/execute/20010724-1.x: Remove.
* gcc.c-torture/execute/20040208-2.c: Remove.
* gcc.c-torture/execute/20040208-2.x: Remove.
* gcc.c-torture/execute/ieee/20000320-1.c [__mips__ && __sgi__]:
Remove.
(main) [__mips__ && __sgi__]: Remove.
* gcc.c-torture/execute/ieee/copysign1.c: Remove IRIX reference.
* gcc.c-torture/execute/ieee/copysign2.c: Likewise.
* gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Remove
mips-sgi-irix6* handling.
* gcc.dg/cpp/assert4.c [__mips__]: Remove __sgi__, sgi.
* gcc.dg/torture/20090618-1.c: Don't skip on mips-sgi-irix*.
* gcc.dg/torture/builtin-frexp-1.c: Remove mips*-*-irix6*
handling.
* gcc.dg/torture/builtin-logb-1.c: Likewise.
* gcc.dg/torture/pr47917.c: Remove mips-sgi-irix6.5 handling.
* gcc.dg/tree-ssa/ssa-store-ccp-3.c: Don't skip on mips*-*-irix*.
* gcc.misc-tests/linkage.exp: Remove mips-sgi-irix6* handling.
* gcc.target/mips/args-1.c [!__sgi__]: Remove.
* gcc.target/mips/interrupt_handler-2.c: Don't skip on
mips-sgi-irix6*.
* gcc.target/mips/interrupt_handler-3.c: Likewise.
* gcc.target/mips/save-restore-1.c: Don't skip on mips-sgi-irix6*.
* gcc.target/mips/save-restore-3.c: Likewise.
* gcc.target/mips/save-restore-4.c: Likewise.
* gcc.target/mips/save-restore-5.c: Likewise.
* gfortran.dg/g77/cabs.f: Don't xfail on mips-sgi-irix6*.
* lib/prune.exp (prune_gcc_output): Remove pruning of IRIX 6 ld
messages.
* lib/target-libpath.exp (set_ld_library_path_env_vars): Remove
IRIX 6 handling.
(restore_ld_library_path_env_vars): Likewise.
* lib/target-supports.exp (check_profiling_available): Remove
mips*-*-irix* handling.
(check_ascii_locale_available): Remove mips-sgi-irix* handling.
(add_options_for_c99_runtime): Remove mips-sgi-irix6.5* handling.
* objc.dg/stabs-1.m: Don't xfail on mips-sgi-irix6.5.
gcc/ada:
* gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
* a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
s-osinte-irix.ads, s-proinf-irix-athread.adb,
s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
Remove.
* adaint.c [__mips && __sgi]: Remove.
(__gnat_number_of_cpus) [__mips && __sgi]: Remove.
[IS_CROSS && !(__mips && __sgi)]: Remove.
* adaint.h [sgi && _LFAPI]: Remove.
* cstreams.c (__gnat_full_name) [sgi]: Remove.
* env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
(__gnat_clearenv) [__mips && __sgi]: Remove.
* errno.c (_SGI_MP_SOURCE): Remove.
* gsocket.h [sgi]: Remove.
* init.c: Remove IRIX reference.
[sgi]: Remove.
* link.c [sgi]: Remove.
* s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
(main) [__mips && __sgi] (MAX_tv_sec): Don't define.
(CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
* sysdep.c [sgi]: Remove.
(getc_immediate_common) [sgi]: Remove.
(__gnat_localtime_tzoff) [sgi]: Remove.
* terminals.c [__mips && __sgi] (IRIX): Don't define.
[IRIX] (USE_GETPTY): Don't define.
(allocate_pty_desc) [USE_GETPTY]: Remove.
* g-traceb.ads: Remove IRIX reference.
* g-trasym.ads: Likewise.
* memtrack.adb: Likewise.
* s-interr-sigaction.adb: Likewise.
* gnat_rm.texi (Implementation Advice): Remove SGI info.
(Implementation Defined Characteristics): Likewise.
* gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
Remove.
(Irix-Specific Considerations): Remove.
gcc/cp:
* Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
gcc:
* config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
(mips-sgi-irix6.5*): Remove.
* config.host (mips-sgi-irix*): Remove.
* configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
(set_have_as_tls): Remove *-*-irix6*.
(gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
* configure: Regenerate.
* config/mips/iris6.h: Remove.
* config/mips/iris6.opt: Remove.
* config/mips/t-irix6: Remove.
* config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
(TARGET_IRIX6): Remove.
(TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
* config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
handling.
(mips_file_start): Likewise.
* config/mips/mips-protos.h (irix_asm_output_align): Remove.
* config/mips/driver-native.c [__sgi__]: Remove.
(host_detect_local_cpu) [__sgi__]: Remove.
* config/mips/gnu-user.h: Remove iris5.h reference.
* config/mips/mips-modes.def: Remove IRIX 6 reference.
* config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
* config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
Remove.
* gcc.c (main): Move asm_debug initialization ...
(asm_debug): ... here.
* ginclude/stddef.h (__STDDEF_H__): Don't define.
* defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
* system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
* collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
(main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
[LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
* doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
Remove.
* doc/tm.texi: Regenerate.
* doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
IRIX 6 reference.
(MIPS Options, -march): Remove IRIX reference.
* doc/install.texi (Binaries, SGI IRIX): Remove.
(Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
of section.
* doc/trouble.texi (Interoperation): Remove -lgl_s handling.
fixincludes:
* inclhack.def (broken_cabs): Remove IRIX and SunOS 4 support.
(irix___restrict): Remove.
(irix___generic1): Remove.
(irix___generic2): Remove.
(irix_asm_apostrophe): Remove.
(irix_complex): Remove.
(irix_pthread_init): Remove.
(irix_socklen_t): Remove.
(irix_stdint_c99_mode): Remove.
(irix_stdint_c99_types): Remove.
(irix_stdint_c99_macros): Remove.
(irix_stdio_va_list): Remove IRIX 6.5 support.
(irix_wcsftime): Remove.
(stdio_va_list): Remove IRIX 6.5 support.
(svr4_profil): Remove IRIX bypass.
* fixincl.x: Regenerate.
* tests/base/complex.h [IRIX_COMPLEX_CHECK]: Remove.
* tests/base/internal/math_core.h: Remove.
* tests/base/internal/sgimacros.h: Remove.
* tests/base/internal/wchar_core.h: Remove.
* tests/base/math.h [BROKEN_CABS_CHECK]: Remove IRIX and SunOS 4
support.
* tests/base/pthread.h [IRIX_PTHREAD_INIT_CHECK]: Remove.
* tests/base/stdint-irix65.h: Remove.
* tests/base/stdint.h [IRIX_STDINT_C99_MODE_CHECK]: Remove.
* tests/base/sys/asm.h: Remove.
* tests/base/sys/socket.h [IRIX_SOCKLEN_T_CHECK]: Remove.
contrib:
* config-list.mk (LIST): Remove mips-sgi-irix6.5.
toplevel:
* MAINTAINERS (OS Port Maintainers): Remove irix.
* configure.ac (enable_libgomp): Remove *-*-irix6*.
(unsupported_languages): Remove mips-sgi-irix6.*.
(noconfigdirs): Don't add ${libgcj} for mips*-*-irix6*.
(with_stabs): Remove.
* configure: Regenerate.
From-SVN: r185390
2012-03-14 17:33:37 +01:00
|
|
|
2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* configure.tgt (mips-sgi-irix6*): Remove.
|
|
|
|
|
Remove obsolete Tru64 UNIX V5.1B support
libstdc++-v3:
* configure.host: Remove osf* handling.
* config/os/osf: Remove.
* doc/xml/manual/using.xml: Remove OSF reference.
* testsuite/18_support/pthread_guard.cc: Remove alpha*-*-osf*
handling.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/any.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/async.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/launch.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/sync.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/39909.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/future/cons/move.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/45133.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/get.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/get2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/share.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/valid.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/move.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/swap.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/6.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/7.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/8.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/9.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/thread/swap/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc:
Likewise.
* libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc: Likewise.
* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
libobjc:
* configure.ac (enable_objc_gc): Remove alpha*-dec-osf* handling.
* configure: Regenerate.
* thr.c (_XOPEN_SOURCE): Define unconditionally.
libjava:
* configure.ac (alpha*-dec-osf*): Remove.
* configure: Regenerate.
* configure.host (alpha*-dec-osf*): Remove.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use
IPV6_MULTICAST_IF unconditionally.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc
(gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of
_Jv_accept.
* include/posix-signal.h [__alpha__ && __osf__]: Remove.
* include/posix.h (_POSIX_PII_SOCKET): Don't define.
(_Jv_accept): Remove.
* java/io/File.java (File._access): Rename to access.
Change callers.
(File._stat): Likewise.
* java/io/File.h: Regenerate.
* classpath/lib/java/io/File.class: Regenerate.
* java/io/natFilePosix.cc (java::io::File::_access): Rename to
access.
(java::io::File::_stat): Rename to stat.
* java/io/natFileWin32.cc: Likewise.
* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
Remove alpha*-dec-osf* handling.
* testsuite/libjava.jvmti/jvmti-interp.exp
(gcj_jni_compile_c_to_so): Likewise.
* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o):
Likewise.
libitm:
* configure.tgt (*-*-osf*): Remove.
* configure: Regenerate.
libgomp:
* configure.tgt (alpha*-dec-osf*): Remove.
* config/osf/sem.h: Remove.
* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
libgfortran:
* configure.ac: Remove Tru64 reference.
* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove alpha*-dec-osf*
handling.
* configure: Regenerate.
* intrinsics/c99_functions.c [__osf__]: Remove.
libgcc:
* config.host: Remove alpha*-dec-osf5.1* handling.
* config/alpha/gthr-posix.c: Remove.
* config/alpha/libgcc-osf5.ver: Remove.
* config/alpha/osf5-unwind.h: Remove.
* config/alpha/t-osf-pthread: Remove.
* config/alpha/t-slibgcc-osf: Remove.
* config/t-crtfm (crtfastmath.o): Remove -frandom-seed.
* gthr-posix.h [!_REENTRANT && __osf__] (_REENTRANT): Don't define.
[__osf__ && _PTHREAD_USE_MANGLED_NAMES_]: Remove.
* mkmap-flat.awk: Remove osf_export handling.
gnattools:
* configure.ac: Remove alpha*-dec-osf* handling.
* configure: Regenerate.
gcc/testsuite:
* g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling.
* g++.dg/abi/thunk4.C: Likewise.
* g++.dg/cdce3.C: Don't skip on*-dec-osf5*.
Adapt line numbers.
* g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
handling.
* g++.dg/cpp0x/constexpr-rom.C: Likewise.
* g++.dg/eh/spbp.C: Likewise.
* g++.dg/ext/label13.C: Likewise.
* g++.dg/guality/guality.exp: Likewise.
* g++.dg/other/anon5.C: Likewise.
* g++.dg/other/pragma-ep-1.C: Remove.
* g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling.
* g++.dg/warn/pr31246.C: Likewise.
* g++.dg/warn/weak1.C: Likewise.
* g++.old-deja/g++.eh/badalloc1.C: Likewise.
* g++.old-deja/g++.ext/attrib5.C: Likewise.
* gcc.c-torture/compile/limits-declparen.c: Likewise.
* gcc.c-torture/compile/limits-pointer.c: Likewise.
* gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling.
* gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling.
* gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling.
* gcc.dg/c99-tgmath-1.c: Likewise.
* gcc.dg/c99-tgmath-2.c: Likewise.
* gcc.dg/c99-tgmath-3.c: Likewise.
* gcc.dg/c99-tgmath-4.c: Likewise.
* gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
handling.
* gcc.dg/debug/pr49032.c: Likewise.
* gcc.dg/guality/guality.exp: Likewise.
* gcc.dg/intmax_t-1.c: Likewise.
* gcc.dg/pr48616.c: Likewise.
* gcc.dg/pragma-ep-1.c: Remove.
* gcc.dg/pragma-ep-2.c: Remove.
* gcc.dg/pragma-ep-3.c: Remove.
* gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling.
* gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling.
* gcc.misc-tests/gcov-14.c: Likewise.
* gfortran.dg/guality/guality.exp: Likewise.
* lib/target-supports.exp (check_weak_available): Likewise.
(add_options_for_tls): Likewise.
(check_ascii_locale_available): Likewise.
* obj-c++.dg/dwarf-2.mm: Likewise.
* objc.dg/dwarf-1.m: Likewise.
* objc.dg/dwarf-2.m: Likewise.
gcc/c-family:
* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
handling.
* c-pragma.c (handle_pragma_extern_prefix): Remove.
(init_pragma): Don't register extern_prefix.
gcc/po:
* EXCLUDES (mips-tdump.c, mips-tfile.c): Remove.
gcc:
* config.gcc (alpha*-dec-osf5.1*): Remove.
* config.host (alpha*-dec-osf*): Remove.
* configure.ac (*-*-osf*): Remove.
(alpha*-dec-osf*): Remove.
* configure: Regenerate.
* config/alpha/host-osf.c, config/alpha/osf5.h,
config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf:
Remove.
* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
* config/alpha/alpha.c (struct machine_function): Update comment.
(alpha_start_function): Remove Tru64 UNIX as handling for
max_frame_size.
* config/alpha/alpha.md ("exception_receiver"): Remove
TARGET_LD_BUGGY_LDGP.
("*exception_receiver_2"): Likewise.
* except.c (finish_eh_generation): Remove Tru64 reference.
* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
* target.def (handle_pragma_extern_prefix): Remove.
* Makefile.in (mips-tfile.o-warn): Remove.
(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
* mips-tdump.c, mips-tfile.c: Remove.
* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
extern_prefix.
* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
(Specific, alpha*-dec-osf5.1): Note removal.
* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
Remove.
* doc/tm.texi: Regenerate.
* doc/trouble.texi (Cross-Compiler Problems): Remove.
gcc/ada:
* gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
* a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
system-tru64.ads: Remove.
* adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
Remove.
[IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
* env.c [__alpha__ && __osf__]: Remove.
* gsocket.h (_OSF_SOURCE): Remove.
(HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
* init.c [__alpha__ && __osf__]: Remove.
* link.c [__osf__]: Remove.
* s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
[__osf__ && !_SS_MAXSIZE]: Remove.
* sysdep.c [__osf__]: Remove.
* terminals.c [__alpha__ && __osf__]: Remove.
[OSF1]: Remove.
* g-traceb.ads: Remove Tru64 reference.
* g-trasym.ads: Likewise.
* gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
(Summary of Run-Time Configurations): Likewise.
* memtrack.adb: Likewise.
fixincludes:
* inclhack.def (alpha___extern_prefix): Remove.
(alpha___extern_prefix_standards): Remove.
(alpha___extern_prefix_sys_stat): Remove.
(alpha_bad_lval): Remove.
(alpha_pthread): Remove.
(alpha_pthread_gcc): Remove.
(alpha_pthread_init): Remove.
* fixincl.x: Regenerate.
* tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove.
[ALPHA_PTHREAD_GCC_CHECK]: Remove.
[ALPHA_PTHREAD_INIT_CHECK]: Remove.
* tests/base/standards.h: Remove.
* tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]:
Remove.
* tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove.
[ALPHA_BAD_LVAL_CHECK]: Remove.
contrib:
* config-list.mk (LIST): Remove alpha-dec-osf5.1.
config:
* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
alpha*-dec-osf*.
toplevel:
* MAINTAINERS (OS Port Maintainers): Remove osf.
* configure.ac (enable_libgomp): Remove *-*-osf*.
(with_stabs): Remove alpha*-*-osf*.
* configure: Regenerate.
From-SVN: r185240
2012-03-12 16:35:56 +01:00
|
|
|
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* configure.tgt (alpha*-dec-osf*): Remove.
|
|
|
|
|
|
|
|
* config/osf/sem.h: Remove.
|
|
|
|
* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
|
|
|
|
|
2012-02-29 21:49:30 +01:00
|
|
|
2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
* config/linux/sparc/futex.h (cpu_relax): Read from CC register.
|
|
|
|
|
2012-02-27 14:51:50 +01:00
|
|
|
2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR libstdc++/52188
|
|
|
|
* acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
|
|
|
|
Remove ENABLE_SYMVERS_SOL2.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
|
|
|
|
(PREPROCESS): New variable.
|
|
|
|
(libgomp.ver): New target.
|
|
|
|
[LIBGOMP_BUILD_VERSIONED_SHLIB &&
|
|
|
|
LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
|
|
|
|
LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
|
|
|
|
Use libgomp.ver.
|
|
|
|
[LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2012-02-14 11:02:21 +01:00
|
|
|
2012-02-14 Walter Lee <walt@tilera.com>
|
|
|
|
|
|
|
|
* configure.tgt: Handle tilegx and tilepro.
|
|
|
|
* config/linux/tile/futex.h: New file.
|
|
|
|
|
2012-02-08 16:28:01 +01:00
|
|
|
2012-02-08 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
PR tree-optimization/46886
|
|
|
|
* testsuite/libgomp.c/pr46886.c: New testcase.
|
|
|
|
|
2012-01-25 13:13:12 +01:00
|
|
|
2012-01-25 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
* config/linux/arm: Remove empty directory.
|
|
|
|
* configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
|
|
|
|
|
2011-12-09 03:21:43 +01:00
|
|
|
2011-12-09 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/51376
|
|
|
|
* task.c (GOMP_taskwait): Don't access task->children outside of
|
|
|
|
task_lock mutex region.
|
|
|
|
(GOMP_task): Likewise.
|
|
|
|
|
2011-12-06 15:32:54 +01:00
|
|
|
2011-12-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/51132
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
|
|
|
|
to file scope.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
|
|
|
|
|
2011-12-02 11:54:02 +01:00
|
|
|
2011-12-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
* config/linux/affinity.c: Use atomic rather than sync builtin.
|
|
|
|
* config/linux/lock.c: Likewise.
|
|
|
|
* config/linux/ptrlock.h: Likewise.
|
|
|
|
* config/linux/ptrlock.c: Likewise.
|
|
|
|
* config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
|
|
|
|
* config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
|
|
|
|
* config/linux/futex.h (atomic_write_barrier): Delete unused function.
|
|
|
|
* config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
* config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
* config/linux/mips/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
* config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
* config/linux/s390/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
* config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
* config/linux/x86/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
2011-11-30 05:44:13 +01:00
|
|
|
2011-11-30 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/51298
|
|
|
|
* config/linux/bar.h: Use atomic rather than sync builtins.
|
|
|
|
* config/linux/bar.c: Likewise. Add missing acquire
|
|
|
|
synchronisation on generation field.
|
|
|
|
* task.c (gomp_barrier_handle_tasks): Regain lock so as to not
|
|
|
|
double unlock.
|
|
|
|
|
2011-11-30 05:02:53 +01:00
|
|
|
2011-11-30 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
* ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
|
|
|
|
* critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
|
|
|
|
* config/linux/mutex.h: Use atomic rather than sync builtins.
|
|
|
|
* config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state.
|
|
|
|
* config/linux/omp-lock.h: Comment fix.
|
|
|
|
* config/linux/arm/mutex.h: Delete.
|
|
|
|
* config/linux/powerpc/mutex.h: Delete.
|
|
|
|
* config/linux/ia64/mutex.h: Delete.
|
|
|
|
* config/linux/mips/mutex.h: Delete.
|
|
|
|
|
2011-11-30 04:43:57 +01:00
|
|
|
2011-11-30 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/51249
|
|
|
|
* config/linux/sem.h: Rewrite.
|
|
|
|
* config/linux/sem.c: Rewrite.
|
|
|
|
|
2011-11-29 03:19:05 +01:00
|
|
|
2011-11-28 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.h (enum memmodel): New.
|
|
|
|
|
2011-11-21 20:22:35 +01:00
|
|
|
2011-11-21 Andreas Tobler <andreast@fgznet.ch>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2011-10-10 21:27:31 +02:00
|
|
|
2011-10-10 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
* config/posix95: Remove empty directory.
|
|
|
|
|
2011-08-26 16:55:05 +02:00
|
|
|
2011-08-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate4.f90: New test.
|
|
|
|
|
2011-08-19 15:25:22 +02:00
|
|
|
2011-08-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/49792
|
|
|
|
* testsuite/libgomp.fortran/pr49792-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr49792-2.f90: New test.
|
|
|
|
|
2011-08-08 17:39:35 +02:00
|
|
|
2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* config/posix95/lock.c, posix95/omp-lock.h: Remove.
|
|
|
|
|
2011-08-05 14:22:10 +02:00
|
|
|
2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR libgomp/49965
|
|
|
|
* testsuite/libgomp.c++/task-8.C: Replaced err by errval.
|
|
|
|
|
2011-08-03 12:46:04 +02:00
|
|
|
2011-08-03 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* config/linux/proc.h: New.
|
|
|
|
* config/linux/proc.c: Include "proc.h". Do not include <sched.h>.
|
|
|
|
(gomp_cpuset_popcount): Rename from cpuset_popcount. No more static.
|
|
|
|
(gomp_init_num_threads): Update call to cpuset_popcount.
|
|
|
|
(get_num_procs): Ditto.
|
|
|
|
* config/linux/affinity.c (gomp_init_affinity): Call
|
|
|
|
gomp_cpuset_popcount.
|
|
|
|
|
backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array in firstprivate clause)
Merge from gomp-3_1-branch branch:
2011-08-02 Jakub Jelinek <jakub@redhat.com>
gcc/
* c-parser.c (enum c_parser_prec): New enum, moved from within
c_parser_binary_expression.
(c_parser_binary_expression): Add PREC argument. Stop parsing
if operator has lower or equal precedence than PREC.
(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
callers.
(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
Adjust c_finish_omp_atomic caller.
(c_parser_omp_taskyield): New function.
(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
(c_parser_omp_clause_name): Handle final and mergeable clauses.
(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
functions.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
and PRAGMA_OMP_CLAUSE_MERGEABLE.
(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
(c_parser_omp_clause_reduction): Handle min and max.
* c-typeck.c (c_finish_omp_clauses): Don't complain about
const qualified predetermined vars in firstprivate clause.
andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
Handle MIN_EXPR and MAX_EXPR.
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
and OMP_CLAUSE_MERGEABLE.
(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
and OMP_ATOMIC_CAPTURE_NEW.
* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
(omp_clause_code_name): Likewise.
(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
and OMP_CLAUSE_MERGEABLE.
(OMP_CLAUSE_FINAL_EXPR): Define.
* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
(expand_task_call): Likewise.
(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
(expand_omp_atomic_fetch_op): Handle cases where old or new
value is needed afterwards.
(expand_omp_atomic): Call expand_omp_atomic_load resp.
expand_omp_atomic_store.
* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Likewise.
* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
OMP_ATOMIC_CAPTURE_NEW): New.
* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
New inlines.
* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
gcc/c-family/
* c-common.h (c_finish_omp_atomic): Adjust prototype.
(c_finish_omp_taskyield): New prototype.
* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC. If LHS1
or RHS1 have side-effects, evaluate those too in the right spot,
if it is a decl and LHS is also a decl, error out if they
aren't the same.
(c_finish_omp_taskyield): New function.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
* c-pragma.c (omp_pragmas): Add taskyield.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
PRAGMA_OMP_CLAUSE_MERGEABLE.
gcc/cp/
* cp-tree.h (finish_omp_atomic): Adjust prototype.
(cxx_omp_const_qual_no_mutable): New prototype.
(finish_omp_taskyield): New prototype.
* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
parsing OpenMP 3.1 atomics. Adjust finish_omp_atomic caller.
(cp_parser_omp_clause_name): Handle final and mergeable clauses.
(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
functions.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
and PRAGMA_OMP_CLAUSE_MERGEABLE.
(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
(cp_parser_omp_taskyield): New function.
(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
(cp_parser_omp_clause_reduction): Handle min and max.
* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
arguments. Handle OpenMP 3.1 atomics. Adjust c_finish_omp_atomic
caller.
(finish_omp_clauses): Don't complain about const qualified
predetermined vars and static data members in firstprivate clause.
Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
and MAX_EXPR.
(finish_omp_taskyield): New function.
* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
(cxx_omp_predetermined_sharing): Use it.
gcc/fortran/
PR fortran/46752
* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
* openmp.c (gfc_free_omp_clauses): Free also final_expr.
(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
(gfc_match_omp_clauses): Handle parsing final and mergeable
clauses.
(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
(gfc_match_omp_taskyield): New function.
(resolve_omp_clauses): Resolve final clause. Allow POINTERs and
Cray pointers in clauses other than REDUCTION.
(gfc_match_omp_atomic): Match optional
read/write/update/capture keywords after !$omp atomic.
(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
print final and mergeable clauses.
(show_code_node): Handle EXEC_OMP_TASKYIELD.
* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
mergeable clauses.
(gfc_trans_omp_taskyield): New function.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
(gfc_omp_predetermined_sharing): Adjust comment.
* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
ST_OMP_END_ATOMIC.
(gfc_omp_clauses): Add final_expr and mergeable fields.
(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
(gfc_omp_atomic_op): New enum typedef.
(struct gfc_code): Add ext.omp_atomic.
* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
* frontend-passes.c (gfc_code_walker): Also walk final_expr.
* resolve.c (gfc_resolve_blocks, resolve_code): Handle
EXEC_OMP_TASKYIELD.
* st.c (gfc_free_statement): Likewise.
* match.h (gfc_match_omp_taskyield): New prototype.
* parse.c (decode_omp_directive): Handle taskyield directive.
Handle !$omp end atomic.
(case_executable): Add ST_OMP_TASKYIELD case.
(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
(parse_omp_atomic): Return gfc_statement instead of void.
For !$omp atomic capture parse two assignments instead of
just one and require !$omp end atomic afterwards, for
other !$omp atomic forms just allow !$omp end atomic at the
end.
(parse_omp_structured_block, parse_executable): Adjust
parse_omp_atomic callers.
2011-08-02 Tobias Burnus <burnus@net-b.de>
* intrinsic.c (OMP_LIB): Updated openmp_version's
value to 201107.
* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
remove deleted omp_integer_kind and omp_logical_kind constants.
gcc/testsuite/
PR fortran/46752
* gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics.
* gcc.dg/gomp/atomic-15.c: New test.
* g++.dg/gomp/atomic-5.C: Adjust expected diagnostics.
* g++.dg/gomp/atomic-15.C: New test.
* g++.dg/gomp/private-1.C: New test.
* g++.dg/gomp/sharing-2.C: New test.
* gfortran.dg/gomp/crayptr1.f90: Don't expect error
about Cray pointer in FIRSTPRIVATE/LASTPRIVATE.
* gfortran.dg/gomp/omp_atomic2.f90: New test.
libgomp/
PR fortran/42041
PR fortran/46752
* omp.h.in (omp_in_final): New prototype.
* omp_lib.f90.in (omp_in_final): New interface.
(omp_integer_kind, omp_logical_kind): Remove
and replace all its uses in the module with 4.
(openmp_version): Change to 201107.
* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): Use omp_sched_kind
kind for the parameters.
(omp_in_final): New external.
(openmp_version): Change to 201107.
* task.c (omp_in_final): New function.
(gomp_init_task): Initialize final_task.
(GOMP_task): Remove unused attribute from flags. Handle final
tasks.
(GOMP_taskyield): New function.
(omp_in_final): Return true if if (false) or final (true) task
or descendant of final (true).
* fortran.c (omp_in_final_): New function.
* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
(GOMP_3.0): Export GOMP_taskyield.
* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
variables.
(parse_unsigned_long_list): New function.
(initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
even if parse_affinity returned false.
* config/linux/affinity.c (gomp_init_affinity): Handle
gomp_cpu_affinity_len == 0.
* libgomp_g.h (GOMP_taskyield): New prototype.
* libgomp.h (struct gomp_task): Add final_task field.
(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
* team.c (gomp_team_start): Override new task's nthreads_var icv
if list form OMP_NUM_THREADS has been used and it has value for
the new nesting level.
* testsuite/libgomp.c/atomic-11.c: New test.
* testsuite/libgomp.c/atomic-12.c: New test.
* testsuite/libgomp.c/atomic-13.c: New test.
* testsuite/libgomp.c/atomic-14.c: New test.
* testsuite/libgomp.c/reduction-6.c: New test.
* testsuite/libgomp.c/task-5.c: New test.
* testsuite/libgomp.c++/atomic-2.C: New test.
* testsuite/libgomp.c++/atomic-3.C: New test.
* testsuite/libgomp.c++/atomic-4.C: New test.
* testsuite/libgomp.c++/atomic-5.C: New test.
* testsuite/libgomp.c++/atomic-6.C: New test.
* testsuite/libgomp.c++/atomic-7.C: New test.
* testsuite/libgomp.c++/atomic-8.C: New test.
* testsuite/libgomp.c++/atomic-9.C: New test.
* testsuite/libgomp.c++/task-8.C: New test.
* testsuite/libgomp.c++/reduction-4.C: New test.
* testsuite/libgomp.fortran/allocatable7.f90: New test.
* testsuite/libgomp.fortran/allocatable8.f90: New test.
* testsuite/libgomp.fortran/crayptr3.f90: New test.
* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
* testsuite/libgomp.fortran/pointer1.f90: New test.
* testsuite/libgomp.fortran/pointer2.f90: New test.
* testsuite/libgomp.fortran/task4.f90: New test.
2011-08-02 Tobias Burnus <burnus@net-b.de>
* libgomp.texi: Update OpenMP spec references to 3.1.
(omp_in_final,OMP_PROC_BIND): New sections.
(OMP_NUM_THREADS): Document that the value can be now a list.
(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
From-SVN: r177194
2011-08-02 18:13:29 +02:00
|
|
|
2011-08-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/42041
|
|
|
|
PR fortran/46752
|
|
|
|
* omp.h.in (omp_in_final): New prototype.
|
|
|
|
* omp_lib.f90.in (omp_in_final): New interface.
|
|
|
|
(omp_integer_kind, omp_logical_kind): Remove
|
|
|
|
and replace all its uses in the module with 4.
|
|
|
|
(openmp_version): Change to 201107.
|
|
|
|
* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
|
|
|
|
omp_sched_guided, omp_sched_auto): Use omp_sched_kind
|
|
|
|
kind for the parameters.
|
|
|
|
(omp_in_final): New external.
|
|
|
|
(openmp_version): Change to 201107.
|
|
|
|
* task.c (omp_in_final): New function.
|
|
|
|
(gomp_init_task): Initialize final_task.
|
|
|
|
(GOMP_task): Remove unused attribute from flags. Handle final
|
|
|
|
tasks.
|
|
|
|
(GOMP_taskyield): New function.
|
|
|
|
(omp_in_final): Return true if if (false) or final (true) task
|
|
|
|
or descendant of final (true).
|
|
|
|
* fortran.c (omp_in_final_): New function.
|
|
|
|
* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
|
|
|
|
(GOMP_3.0): Export GOMP_taskyield.
|
|
|
|
* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
|
|
|
|
variables.
|
|
|
|
(parse_unsigned_long_list): New function.
|
|
|
|
(initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
|
|
|
|
with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
|
|
|
|
even if parse_affinity returned false.
|
|
|
|
* config/linux/affinity.c (gomp_init_affinity): Handle
|
|
|
|
gomp_cpu_affinity_len == 0.
|
|
|
|
* libgomp_g.h (GOMP_taskyield): New prototype.
|
|
|
|
* libgomp.h (struct gomp_task): Add final_task field.
|
|
|
|
(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
|
|
|
|
* team.c (gomp_team_start): Override new task's nthreads_var icv
|
|
|
|
if list form OMP_NUM_THREADS has been used and it has value for
|
|
|
|
the new nesting level.
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-11.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-12.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-13.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-14.c: New test.
|
|
|
|
* testsuite/libgomp.c/reduction-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/task-5.c: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-4.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-6.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-7.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-8.C: New test.
|
|
|
|
* testsuite/libgomp.c++/atomic-9.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-8.C: New test.
|
|
|
|
* testsuite/libgomp.c++/reduction-4.C: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable7.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable8.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/crayptr3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pointer1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pointer2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/task4.f90: New test.
|
|
|
|
|
|
|
|
2011-08-02 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* libgomp.texi: Update OpenMP spec references to 3.1.
|
|
|
|
(omp_in_final,OMP_PROC_BIND): New sections.
|
|
|
|
(OMP_NUM_THREADS): Document that the value can be now a list.
|
|
|
|
(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
|
|
|
|
|
2011-08-02 16:44:06 +02:00
|
|
|
2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
* config/linux/x86/futex.h: Check __x86_64__ instead of
|
|
|
|
__LP64__.
|
|
|
|
|
2011-07-29 19:45:42 +02:00
|
|
|
2011-07-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/49897
|
|
|
|
PR middle-end/49898
|
|
|
|
* testsuite/libgomp.c/pr49897-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr49897-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr49898-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr49898-2.c: New test.
|
|
|
|
|
2011-07-28 22:35:32 +02:00
|
|
|
2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
|
|
|
|
for ia32 instead of ilp32.
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Likewise.
|
|
|
|
|
2011-07-27 18:53:09 +02:00
|
|
|
2011-07-23 Sebastian Pop <sebastian.pop@amd.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
|
|
|
|
|
2011-07-25 17:39:52 +02:00
|
|
|
2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR libgomp/45351
|
|
|
|
* config/osf/sem.h: New file.
|
|
|
|
* configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
|
|
|
|
|
2011-07-18 14:09:18 +02:00
|
|
|
2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR target/49541
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
|
|
|
|
ldflags.
|
|
|
|
|
2011-07-15 21:46:11 +02:00
|
|
|
2011-07-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/wait.h (do_spin): New inline, largely copied
|
|
|
|
from do_wait, just don't do futex_wait here, instead return true if
|
|
|
|
it should be done.
|
|
|
|
(do_wait): Implement using do_spin.
|
|
|
|
* config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
|
|
|
|
to prototype.
|
|
|
|
(gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
|
|
|
|
__sync_bool_compare_and_swap, pass the oldval to
|
|
|
|
gomp_mutex_lock_slow.
|
|
|
|
* config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
|
|
|
|
If all mutex contenders are just spinning and not sleeping, don't
|
|
|
|
change state to 2 unnecessarily. Optimize the loop when state has
|
|
|
|
already become 2 to use just one atomic operation per loop instead
|
|
|
|
of two.
|
|
|
|
* config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
|
|
|
|
to prototype.
|
|
|
|
(gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
|
|
|
|
__sync_bool_compare_and_swap, pass the oldval to
|
|
|
|
gomp_mutex_lock_slow.
|
|
|
|
|
2011-06-22 22:39:25 +02:00
|
|
|
2011-06-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/49490
|
|
|
|
* iter.c (gomp_iter_static_next): For chunk size 0
|
|
|
|
only use n ceil/ nthreads size for the first
|
|
|
|
n % nthreads threads in the team instead of
|
|
|
|
all threads except for the last few ones which
|
|
|
|
get less work or none at all.
|
|
|
|
* iter_ull.c (gomp_iter_ull_static_next): Likewise.
|
|
|
|
* env.c (parse_schedule): If OMP_SCHEDULE doesn't have
|
|
|
|
chunk argument, set run_sched_modifier to 0 for static
|
|
|
|
resp. 1 for other kinds. If chunk argument is 0
|
|
|
|
and not static, set value to 1.
|
|
|
|
|
2011-05-19 09:44:31 +02:00
|
|
|
2011-05-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2011-05-19 15:11:56 +02:00
|
|
|
PR c++/49043
|
|
|
|
* testsuite/libgomp.c++/pr49043.C: New test.
|
|
|
|
|
2011-05-19 09:44:31 +02:00
|
|
|
PR c++/48869
|
|
|
|
* testsuite/libgomp.c++/pr48869.C: New test.
|
|
|
|
|
2011-05-06 12:11:07 +02:00
|
|
|
2011-05-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/48894
|
|
|
|
* fortran.c: Include limits.h.
|
|
|
|
(TO_INT): Define.
|
|
|
|
(omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
|
|
|
|
*set.
|
|
|
|
(omp_set_num_threads_8_, omp_set_schedule_8_,
|
|
|
|
omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
|
|
|
|
omp_get_team_size_8_): Use TO_INT macro.
|
|
|
|
* testsuite/libgomp.fortran/pr48894.f90: New test.
|
|
|
|
|
2011-04-13 17:50:02 +02:00
|
|
|
2011-04-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/48591
|
|
|
|
* testsuite/libgomp.c/pr48591.c: New test.
|
|
|
|
|
2011-03-21 13:24:17 +01:00
|
|
|
2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR bootstrap/48135
|
|
|
|
* acinclude.m4 (enable_symvers): Handle --disable-symvers.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2011-02-27 13:05:36 +01:00
|
|
|
2011-02-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/47886
|
|
|
|
* testsuite/libgomp.fortran/task3.f90: New test.
|
|
|
|
|
2011-02-24 22:58:06 +01:00
|
|
|
2011-02-24 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
|
|
|
|
|
2011-02-23 09:58:16 +01:00
|
|
|
2011-02-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/47854
|
|
|
|
* libgomp.texi (omp_get_wtime): Don't say time in the past
|
|
|
|
must be Unix Epoch.
|
|
|
|
|
2011-02-18 21:44:44 +01:00
|
|
|
2011-02-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/47804
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Check for both
|
|
|
|
libquadmath.a and libquadmath.${shlib_ext}. If neither exists,
|
|
|
|
but $blddir != "", still append ${blddir}/${lang_library_path}
|
|
|
|
to ld_library_path.
|
|
|
|
|
2011-02-16 18:44:45 +01:00
|
|
|
2011-02-16 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR libgomp/47758
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Check for the existence
|
|
|
|
of libquadmath.a before adding its libpath to ldflags.
|
|
|
|
|
2011-02-14 16:08:23 +01:00
|
|
|
2011-02-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/47731
|
|
|
|
* config/linux/futex.h (futex_wait): Pass NULL as timeout argument
|
|
|
|
to FUTEX_WAIT futex syscall.
|
|
|
|
* config/linux/wait.h: Include <futex.h> instead of "futex.h".
|
|
|
|
|
2011-02-13 12:45:53 +01:00
|
|
|
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2011-01-21 00:41:24 +01:00
|
|
|
2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
|
|
|
|
|
|
|
|
PR libstdc++/36104
|
|
|
|
* acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
|
|
|
|
|
2011-01-16 20:38:04 +01:00
|
|
|
2011-01-16 Gerald Pfeifer
|
|
|
|
|
|
|
|
* configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
|
|
|
|
|
2010-12-14 14:59:20 +01:00
|
|
|
2010-12-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/46874
|
|
|
|
* libgomp.fortran/allocatable6.f90: New test.
|
|
|
|
|
2010-12-06 18:10:09 +01:00
|
|
|
2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-12-06 01:50:04 +01:00
|
|
|
2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
PR target/40125
|
|
|
|
PR lto/46695
|
|
|
|
* configure.ac: Invoke ACX_LT_HOST_FLAGS.
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2010-12-02 15:30:37 +01:00
|
|
|
2010-12-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2010-12-02 15:37:20 +01:00
|
|
|
PR fortran/46753
|
|
|
|
* libgomp.fortran/pr46753.f90: New test.
|
|
|
|
|
2010-12-02 15:31:27 +01:00
|
|
|
PR libgomp/43706
|
|
|
|
* env.c (initialize_env): Default to spin count 300000
|
|
|
|
instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
|
|
|
|
is specified.
|
|
|
|
|
2010-12-02 15:30:37 +01:00
|
|
|
PR libgomp/45240
|
|
|
|
* parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
|
|
|
|
at the end if sync builtins aren't supported.
|
|
|
|
|
2010-12-01 15:01:48 +01:00
|
|
|
2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
|
|
|
|
|
2010-12-01 14:41:59 +01:00
|
|
|
2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
|
|
|
|
|
2010-11-24 20:26:27 +01:00
|
|
|
2010-11-24 Iain Sandoe <iains@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
|
|
|
|
|
2010-11-16 22:23:19 +01:00
|
|
|
2010-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR fortran/32049
|
2011-11-30 04:43:57 +01:00
|
|
|
* configure.ac:
|
2010-11-16 22:23:19 +01:00
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-10-06 18:42:50 +02:00
|
|
|
2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
|
|
|
* config/linux/futex.h: New.
|
|
|
|
* config/linux/arm/mutex.h: New.
|
|
|
|
* configure.tgt (arm*-*-linux*): Add config path.
|
|
|
|
|
2010-09-30 23:22:16 +02:00
|
|
|
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
|
|
|
|
|
2010-09-23 11:01:32 +02:00
|
|
|
2010-09-23 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
|
|
|
|
Change Fortran datatype to LOGICAL.
|
|
|
|
(omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
|
|
|
|
omp_unset_nested_lock): Use intent(inout) instead of intent(out).
|
|
|
|
|
2010-08-21 14:18:02 +02:00
|
|
|
2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-07-26 18:22:18 +02:00
|
|
|
2010-07-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.texi: Add function keyword to a couple of Fortran
|
|
|
|
interfaces, use integer instead of int for Fortran.
|
|
|
|
|
2010-07-26 17:26:17 +02:00
|
|
|
2010-07-26 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.texi: Fix spelling and pasto problems throughout.
|
|
|
|
Adjust prototypes to match code.
|
|
|
|
|
2010-07-24 00:15:51 +02:00
|
|
|
2010-07-24 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
|
|
|
|
silence -fwhole-file warning.
|
|
|
|
|
2010-07-23 19:58:57 +02:00
|
|
|
2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* configure.tgt (*-*-solaris2.[56]*): Removed.
|
|
|
|
|
2010-07-05 19:19:33 +02:00
|
|
|
2010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
|
|
|
|
Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
|
|
|
|
LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
|
|
|
|
(HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
|
|
|
|
targetting solaris2*.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
|
|
* Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
|
|
|
|
libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
|
|
|
|
Add libgomp_version_dep.
|
|
|
|
[LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
|
|
|
|
versioning.
|
|
|
|
[!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
|
|
|
|
(libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
|
|
* libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
|
|
|
|
HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
|
|
|
|
* libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
|
|
|
|
to common block, protected by
|
|
|
|
HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
|
|
|
|
|
2010-06-10 01:46:33 +02:00
|
|
|
2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
* libgomp.texi: Move to GFDL version 1.3. Update copyright years.
|
|
|
|
|
2010-06-09 11:27:04 +02:00
|
|
|
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR bootstrap/43170
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-05-04 20:58:11 +02:00
|
|
|
2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
PR other/43620
|
|
|
|
* configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2010-04-26 22:07:10 +02:00
|
|
|
2010-04-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c/43893
|
|
|
|
* testsuite/libgomp.c/pr43893.c: New test.
|
|
|
|
* testsuite/libgomp.c++/pr43893.C: New test.
|
|
|
|
|
2010-04-21 13:57:42 +02:00
|
|
|
2010-04-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/43570
|
|
|
|
* testsuite/libgomp.fortran/vla8.f90: New test.
|
|
|
|
|
2010-04-20 17:36:45 +02:00
|
|
|
2010-04-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2010-04-20 17:37:51 +02:00
|
|
|
PR libgomp/43706
|
|
|
|
* config/linux/affinity.c (gomp_init_affinity): Decrease
|
|
|
|
gomp_available_cpus if affinity mask confines the process to fewer
|
|
|
|
CPUs.
|
|
|
|
* config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
|
|
|
|
non-NULL, just return gomp_available_cpus.
|
|
|
|
|
2010-04-20 17:36:45 +02:00
|
|
|
PR libgomp/43569
|
|
|
|
* sections.c (gomp_sections_init): Initialize ws->mode.
|
|
|
|
|
2010-04-14 14:57:43 +02:00
|
|
|
2010-04-14 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
|
|
|
|
not unused bar variable.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-04-02 20:18:06 +02:00
|
|
|
2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2010-03-22 16:16:52 +01:00
|
|
|
2010-03-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/42942
|
|
|
|
* env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
|
|
|
|
(initialize_env): Adjust callers.
|
|
|
|
(omp_set_max_active_levels): Set gomp_max_active_levels_var even
|
|
|
|
when the argument is 0.
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr42942.c: New test.
|
|
|
|
|
2010-03-08 18:50:17 +01:00
|
|
|
2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
|
|
|
|
|
|
|
|
PR middle-end/42644
|
|
|
|
PR middle-end/42130
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
|
|
|
|
|
2010-01-29 16:34:07 +01:00
|
|
|
2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/task-1.C: Renamed err to e.
|
|
|
|
* testsuite/libgomp.c++/task-6.C: Likewise.
|
|
|
|
|
2010-01-28 22:47:59 +01:00
|
|
|
2010-01-28 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
* configure.tgt (*-*-hpux*): Add -frandom-seed flag.
|
|
|
|
|
2010-01-26 22:32:28 +01:00
|
|
|
2010-01-26 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
* configure.ac: Test for executability of _the first word_ of GFORTRAN.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-01-26 10:47:45 +01:00
|
|
|
2010-01-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/42866
|
|
|
|
* testsuite/libgomp.fortran/allocatable5.f90: New test.
|
|
|
|
|
2010-01-26 08:57:21 +01:00
|
|
|
2010-01-20 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
* configure.ac: Test for executability of GFORTRAN.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-01-05 15:02:37 +01:00
|
|
|
2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2010-01-04 15:28:30 +01:00
|
|
|
2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR libgomp/42602
|
|
|
|
* libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
|
|
|
|
|
2010-01-03 23:44:56 +01:00
|
|
|
2010-01-03 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/recursion1.f90: New testcase.
|
|
|
|
|
2009-12-23 08:51:19 +01:00
|
|
|
2009-12-23 Sebastian Pop <sebpop@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/pr4118.c: New.
|
|
|
|
|
2009-12-22 23:16:02 +01:00
|
|
|
2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
|
|
|
|
for darwin, protect the test with require-effective-target tls_runtime.
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: Ditto.
|
|
|
|
|
2009-12-22 23:11:27 +01:00
|
|
|
2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
|
|
|
|
|
|
|
|
PR target/41605
|
|
|
|
* testsuite/lib/libgomp.exp: Provide -B options to allow for
|
|
|
|
link spec %s substitutions for static libraries.
|
|
|
|
|
2009-12-18 08:38:06 +01:00
|
|
|
2009-12-18 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
PR testsuite/42135
|
|
|
|
* libgomp.graphite/force-parallel-2.c: Reduce array size.
|
|
|
|
|
2009-12-05 18:18:53 +01:00
|
|
|
2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2009-12-01 00:30:57 +01:00
|
|
|
2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
|
|
|
|
settings for LC_ALL and LANG.
|
|
|
|
|
2009-11-25 21:28:56 +01:00
|
|
|
2009-11-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/42162
|
|
|
|
* testsuite/libgomp.fortran/pr42162.f90: New test.
|
|
|
|
|
2009-11-13 19:38:36 +01:00
|
|
|
2009-11-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/42029
|
2009-11-25 21:28:56 +01:00
|
|
|
* testsuite/libgomp.c/pr42029.c: New test.
|
2009-11-13 19:38:36 +01:00
|
|
|
|
2009-10-26 21:28:24 +01:00
|
|
|
2009-10-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
|
|
|
|
*s. Accept ld version without text in ()s.
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2009-10-27 11:09:04 +01:00
|
|
|
2009-10-22 Razya Ladelsky <razya@il.ibm.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
|
|
|
|
|
2009-10-17 09:34:47 +02:00
|
|
|
2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
PR libgomp/41418
|
|
|
|
* configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
|
|
|
|
or a hyphen (happens with fortran language disabled).
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2009-09-30 02:43:28 +02:00
|
|
|
2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
|
|
|
|
use sed script portable to Solaris /bin/sed for extracting ld
|
|
|
|
version.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2009-09-17 15:33:37 +02:00
|
|
|
2009-09-17 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/bounds.c: New test.
|
|
|
|
|
2009-09-11 07:02:20 +02:00
|
|
|
2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_LINK): New.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2009-08-24 21:08:51 +02:00
|
|
|
2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure.ac (AC_PREREQ): Bump to 2.64.
|
|
|
|
|
2009-08-22 15:22:20 +02:00
|
|
|
2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
Cleanups after the update to Autoconf 2.64, Automake 1.11.
/:
* configure.ac: Remove --with-datarootdir, --with-docdir,
--with-pdfdir, --with-htmldir switches.
* configure: Regenerate.
gcc/:
* configure.ac: Remove --with-datarootdir, --with-docdir,
--with-htmldir switches. No need to call AC_SUBST for
datarootdir, docdir, htmldir any more.
* configure: Regenerate.
* doc/install.texi (Configuration): Document --datarootdir,
--docdir, --htmldir, --pdfdir; update documentation for
--infodir, --mandir.
(Prerequisites): Bump Autoconf version to 2.64, Automake to
1.11, M4 to 1.4.6.
libgfortran/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libjava/classpath/:
* doc/cp-hacking.texinfo (Needed Tools and Libraries): Bump
Autoconf version to 2.64, Automake to 1.11, M4 to 1.4.6.
libjava/:
* HACKING: Use aclocal-1.11 and autoconf-2.64 in example.
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libstdc++-v3/:
* doc/xml/manual/build_hacking.xml: Use tools from Autoconf
2.64 and Automake 1.11 in examples; update link to Autoconf
manual page about quadrigraphs.
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libssp/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
boehm-gc/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libmudflap/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
zlib/:
* Makefile.am (install-html, install-pdf, html): Remove.
* Makefile.in: Regenerate.
libffi/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libgomp/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
From-SVN: r151015
2009-08-22 15:41:50 +02:00
|
|
|
* Makefile.am (install-html, install-pdf): Remove.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2009-08-22 15:22:20 +02:00
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11
boehm-gc/:
* Makefile.am (LTCOMPILE, LTLINK): Add $(AM_LIBTOOLFLAGS)
and $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.
libgfortran/:
* Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
* Makefile.in: Regenerate.
libjava/:
* Makefile.am (libgcj_la_LINK, libgcj_tools_la_LINK)
(lib_gnu_awt_xlib_la_LINK, libgcj_bc_la_LINK, jv_convert_LINK)
(gcj_dbtool_LINK, gc_analyze_LINK, gij_LINK, ecjx_LINK)
(gappletviewer_LINK, gjarsigner_LINK, gkeytool_LINK)
(gjar_LINK, gjavah_LINK, gcjh_LINK, gnative2ascii_LINK)
(gorbd_LINK, grmid_LINK, gserialver_LINK, gtnameserv_LINK)
(grmic_LINK, grmiregistry_LINK, gjdoc_LINK): Add $(gjdoc_LDFLAGS).
(GCJLINK, LIBLINK, CXXLINK): Add $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.
libstdc++-v3/:
* libsupc++/Makefile.am (LTCOMPILE, LTCXXCOMPILE, CXXLINK): Add
$(LIBTOOLFLAGS).
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (LTCXXCOMPILE, CXXLINK): Add $(AM_LIBTOOLFLAGS)
and $(LIBTOOLFLAGS).
* src/Makefile.in: Regenerate.
libgomp/:
* Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.
libobjc/:
* Makefile.in (LIBTOOL): Add $(LIBTOOLFLAGS).
From-SVN: r151013
2009-08-22 14:43:24 +02:00
|
|
|
2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2009-08-20 13:11:34 +02:00
|
|
|
2009-08-20 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2009-08-19 08:38:29 +02:00
|
|
|
2009-08-19 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR fortran/41102
|
|
|
|
omp_lib.h.in: Fix -std=f95 errors.
|
|
|
|
|
|
|
|
|
2009-08-14 16:02:43 +02:00
|
|
|
2009-08-14 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite: Move from gcc.dg/graphite.
|
|
|
|
* testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp: New.
|
|
|
|
|
2009-08-05 18:11:54 +02:00
|
|
|
2009-08-05 Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
|
|
|
|
only build.
|
|
|
|
|
2009-08-04 19:25:42 +02:00
|
|
|
2009-08-04 David Daney <ddaney@caviumnetworks.com>
|
|
|
|
|
|
|
|
* config/linux/mutex.h (gomp_mutex_unlock): Add comment about
|
|
|
|
needed memory barrier semantics.
|
|
|
|
* config/linux/mips/mutex.h: New file.
|
|
|
|
|
2009-07-30 21:41:13 +02:00
|
|
|
2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
|
|
|
|
|
2009-07-17 01:18:08 +02:00
|
|
|
2009-07-16 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
re PR testsuite/40699 (All sparcv9 libjava execution tests fail on Solaris 11/SPARC)
gcc/testsuite/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* lib/gcc-defs.exp, lib/target-libpath.exp, lib/objc.exp,
lib/gfortran.exp, lib/g++.exp, lib/obj-c++.exp, lib/c-torture.exp,
lib/gcc-dg.exp, lib/gnat.exp, g++.dg/compat/compat.exp,
g++.dg/compat/struct-layout-1.exp: Revert 2009-06-30 commit.
libstdc++-v3/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libstdc++.exp: Revert 2009-06-30 commit.
libjava/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libjava.exp: Revert 2009-06-30 commit.
libgomp/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
* testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
libffi/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
2009-06-30 commits.
libmudflap/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit.
From-SVN: r149508
2009-07-11 08:10:49 +02:00
|
|
|
2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
PR testsuite/40699
|
|
|
|
PR testsuite/40707
|
|
|
|
PR testsuite/40709
|
|
|
|
* testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
|
|
|
|
* testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
|
|
|
|
testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
|
|
|
|
|
2009-07-02 22:55:23 +02:00
|
|
|
2009-07-02 Richard Sandiford <r.sandiford@uk.ibm.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
|
|
|
|
options when choosing a multilib.
|
|
|
|
|
2009-06-30 20:37:57 +02:00
|
|
|
2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
|
|
|
|
ld_library_path. Use add_path. Add just find_libgcc_s to
|
|
|
|
ld_library_path, not every libgcc multilib directory.
|
|
|
|
* testsuite/libgomp.c/c.exp (ld_library_path): Don't call
|
|
|
|
gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
|
|
|
|
* testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
|
|
|
|
Use add_path.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
|
|
|
|
|
2009-06-09 16:37:31 +02:00
|
|
|
2009-06-09 Nathan Froyd <froydnj@codesourcery.com>
|
|
|
|
|
|
|
|
* Makefile.am (LTLDFLAGS): Define.
|
|
|
|
(LINK): Define.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2009-05-27 22:02:02 +02:00
|
|
|
2009-05-27 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR fortran/39718
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Don't link with
|
|
|
|
libgfortranbegin, check existence of libgfortran.a instead of
|
|
|
|
libgfortranbegin.a.
|
|
|
|
|
2009-05-20 22:54:45 +02:00
|
|
|
2009-05-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/40174
|
|
|
|
* team.c (gomp_thread_start): Destroy thr->release semaphore.
|
|
|
|
(gomp_free_pool_helper): Likewise.
|
|
|
|
|
2009-04-20 12:59:59 +02:00
|
|
|
2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/35423
|
|
|
|
* testsuite/libgomp.fortran/workshare2.f90: New test.
|
|
|
|
|
2009-04-09 17:00:19 +02:00
|
|
|
2009-04-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
* iter.c: Change copyright header to refer to version 3 of the
|
|
|
|
GNU General Public License with version 3.1 of the GCC Runtime
|
|
|
|
Library Exception and to point readers at the COPYING3 and
|
|
|
|
COPYING3.RUNTIME files and the FSF's license web page.
|
|
|
|
* alloc.c: Likewise.
|
|
|
|
* barrier.c: Likewise.
|
|
|
|
* config/bsd/proc.c: Likewise.
|
|
|
|
* config/linux/affinity.c: Likewise.
|
|
|
|
* config/linux/alpha/futex.h: Likewise.
|
|
|
|
* config/linux/bar.c: Likewise.
|
|
|
|
* config/linux/bar.h: Likewise.
|
|
|
|
* config/linux/ia64/futex.h: Likewise.
|
|
|
|
* config/linux/ia64/mutex.h: Likewise.
|
|
|
|
* config/linux/lock.c: Likewise.
|
|
|
|
* config/linux/mips/futex.h: Likewise.
|
|
|
|
* config/linux/mutex.c: Likewise.
|
|
|
|
* config/linux/mutex.h: Likewise.
|
|
|
|
* config/linux/powerpc/futex.h: Likewise.
|
|
|
|
* config/linux/proc.c: Likewise.
|
|
|
|
* config/linux/ptrlock.c: Likewise.
|
|
|
|
* config/linux/ptrlock.h: Likewise.
|
|
|
|
* config/linux/s390/futex.h: Likewise.
|
|
|
|
* config/linux/sem.c: Likewise.
|
|
|
|
* config/linux/sem.h: Likewise.
|
|
|
|
* config/linux/sparc/futex.h: Likewise.
|
|
|
|
* config/linux/wait.h: Likewise.
|
|
|
|
* config/linux/x86/futex.h: Likewise.
|
|
|
|
* config/mingw32/proc.c: Likewise.
|
|
|
|
* config/mingw32/time.c: Likewise.
|
|
|
|
* config/posix/affinity.c: Likewise.
|
|
|
|
* config/posix/bar.c: Likewise.
|
|
|
|
* config/posix/bar.h: Likewise.
|
|
|
|
* config/posix/lock.c: Likewise.
|
|
|
|
* config/posix/mutex.h: Likewise.
|
|
|
|
* config/posix/proc.c: Likewise.
|
|
|
|
* config/posix/ptrlock.h: Likewise.
|
|
|
|
* config/posix/sem.c: Likewise.
|
|
|
|
* config/posix/sem.h: Likewise.
|
|
|
|
* config/posix/time.c: Likewise.
|
|
|
|
* config/posix95/lock.c: Likewise.
|
|
|
|
* critical.c: Likewise.
|
|
|
|
* env.c: Likewise.
|
|
|
|
* error.c: Likewise.
|
|
|
|
* fortran.c: Likewise.
|
|
|
|
* iter_ull.c: Likewise.
|
|
|
|
* libgomp.h: Likewise.
|
|
|
|
* libgomp_f.h.in: Likewise.
|
|
|
|
* libgomp_g.h: Likewise.
|
|
|
|
* loop.c: Likewise.
|
|
|
|
* loop_ull.c: Likewise.
|
|
|
|
* omp.h.in: Likewise.
|
|
|
|
* omp_lib.f90.in: Likewise.
|
|
|
|
* omp_lib.h.in: Likewise.
|
|
|
|
* ordered.c: Likewise.
|
|
|
|
* parallel.c: Likewise.
|
|
|
|
* sections.c: Likewise.
|
|
|
|
* single.c: Likewise.
|
|
|
|
* task.c: Likewise.
|
|
|
|
* team.c: Likewise.
|
|
|
|
* work.c: Likewise.
|
|
|
|
|
|
|
|
2009-04-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/config/default.exp: Change copyright header to refer to
|
|
|
|
version 3 of the GNU General Public License and to point readers
|
|
|
|
at the COPYING3 file and the FSF's license web page.
|
|
|
|
|
2009-04-08 22:04:45 +02:00
|
|
|
2009-04-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/39573
|
|
|
|
* libgomp.c++/pr39573.C: New test.
|
|
|
|
|
2009-04-01 08:54:52 +02:00
|
|
|
2009-04-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR other/39591
|
|
|
|
* testsuite/libgomp.c/pr39591-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr39591-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr39591-3.c: New test.
|
|
|
|
|
2009-03-25 14:36:02 +01:00
|
|
|
2009-03-25 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Ditto.
|
|
|
|
|
2009-03-23 22:05:30 +01:00
|
|
|
2009-03-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c/39495
|
|
|
|
* testsuite/libgomp.c/loop-12.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-11.c: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-12.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-8.C: New test.
|
|
|
|
|
2009-03-01 18:49:31 +01:00
|
|
|
2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2009-02-11 22:57:52 +01:00
|
|
|
2009-02-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/39154
|
|
|
|
* testsuite/libgomp.c/pr39154.c: New test.
|
|
|
|
|
2009-01-31 18:09:24 +01:00
|
|
|
2009-01-30 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
|
|
|
|
libgomp_ld_is_gold. Get gold version number.
|
|
|
|
(LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
|
|
|
|
* configure: Rebuild.
|
|
|
|
|
2009-01-20 01:59:24 +01:00
|
|
|
2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
|
|
|
|
|
2009-03-25 14:36:02 +01:00
|
|
|
* testsuite/lib/libgomp.exp: Add -B option for targets that
|
2009-01-20 01:59:24 +01:00
|
|
|
use libgfortran.a%s in their specs.
|
|
|
|
|
2009-01-07 23:48:03 +01:00
|
|
|
2009-01-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/38086
|
|
|
|
* acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
|
|
|
|
* libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
|
|
|
|
HAVE_AS_SYMVER_DIRECTIVE is not defined.
|
|
|
|
* configure: Regenerated.
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
2008-12-28 21:06:00 +01:00
|
|
|
2008-12-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/38650
|
|
|
|
* testsuite/libgomp.c/pr38650.c: New test.
|
|
|
|
* testsuite/libgomp.c++/pr38650.C: New test.
|
|
|
|
|
2008-12-27 16:20:28 +01:00
|
|
|
2008-12-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
|
|
|
|
|
2008-12-26 17:35:22 +01:00
|
|
|
2008-12-26 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
|
|
|
|
|
2008-12-18 21:04:55 +01:00
|
|
|
2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2008-12-08 11:36:01 +01:00
|
|
|
2008-12-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/36802
|
|
|
|
* testsuite/libgomp.c/pr36802-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr36802-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr36802-3.c: New test.
|
|
|
|
|
2008-12-02 01:18:56 +01:00
|
|
|
2008-12-01 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
PR libgomp/38270
|
|
|
|
* config/linux/powerpc/mutex.h: New.
|
|
|
|
|
2008-12-01 16:10:25 +01:00
|
|
|
2008-12-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2008-12-01 16:27:12 +01:00
|
|
|
PR c++/38257
|
|
|
|
* testsuite/libgomp.c++/for-7.C: New test.
|
|
|
|
|
2008-12-01 16:10:25 +01:00
|
|
|
PR c++/38348
|
|
|
|
* testsuite/libgomp.c++/for-6.C: New test.
|
|
|
|
|
2008-11-26 19:51:07 +01:00
|
|
|
2008-11-26 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
PR testsuite/28870
|
|
|
|
* testsuite/lib/libgomp.exp: Include new timeout library files.
|
|
|
|
(libgomp_target_compile): Set timeout value from new proc.
|
|
|
|
|
2008-11-13 22:06:38 +01:00
|
|
|
2008-11-13 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
PR libgomp/37938
|
|
|
|
* config/linux/ia64/mutex.h: New.
|
|
|
|
|
2008-11-04 19:16:17 +01:00
|
|
|
2008-11-04 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR libgomp/37935
|
|
|
|
* libgomp.texi (Runtime library routines, environment variables):
|
|
|
|
Update for OpenMP version 3.0.
|
|
|
|
|
2008-09-26 18:24:34 +02:00
|
|
|
2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
|
|
|
|
Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
* configure: Regenerate for new libtool.
|
|
|
|
* Makefile.in: Ditto.
|
|
|
|
* testsuite/Makefile.in: Ditto.
|
|
|
|
|
2008-09-19 22:27:11 +02:00
|
|
|
2008-09-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
* config/bsd/proc.c: New file.
|
2008-09-19 22:28:53 +02:00
|
|
|
* configure.tgt (*-*-darwin*): Use config_path "bsd posix".
|
2008-09-19 22:27:11 +02:00
|
|
|
* configure.ac: Check for header <sys/sysctl.h>
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
2008-09-05 21:29:26 +02:00
|
|
|
2008-09-05 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
* testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
|
|
|
|
|
2008-08-31 20:16:09 +02:00
|
|
|
2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
2008-08-21 17:45:37 +02:00
|
|
|
2008-08-21 Nathan Froyd <froydnj@codesourcery.com>
|
2008-08-21 17:37:05 +02:00
|
|
|
|
2009-02-25 21:14:34 +01:00
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Only set things that
|
2008-08-21 17:37:05 +02:00
|
|
|
depend on blddir if blddir exists.
|
|
|
|
(libgomp_target_compile): Likewise.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise.
|
|
|
|
|
2008-07-30 07:28:53 +02:00
|
|
|
2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* libgomp.texi: Update to GFDL 1.2. Update copyright years.
|
|
|
|
Do not list GPL as Invariant Section.
|
|
|
|
|
2008-07-28 20:47:44 +02:00
|
|
|
2008-07-28 Ilie Garbacea <ilie@mips.com>
|
|
|
|
Chao-ying Fu <fu@mips.com>
|
|
|
|
|
|
|
|
* configure.tgt: Enable futex for MIPS.
|
|
|
|
* config/linux/mips/futex.h: New file.
|
|
|
|
|
2008-07-16 17:35:26 +02:00
|
|
|
2008-07-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* team.c (gomp_team_end): Free team immediately if it has
|
|
|
|
just one thread.
|
|
|
|
|
2008-07-08 21:13:29 +02:00
|
|
|
2008-07-08 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Append multilib library path.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Same.
|
|
|
|
* testsuite/libgomp.c/c.exp: Same.
|
|
|
|
* testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
|
|
|
|
directory to library path first.
|
|
|
|
|
2008-06-29 23:41:03 +02:00
|
|
|
2008-06-29 Krister Walfridsson <krister.walfridsson@gmail.com>
|
|
|
|
|
|
|
|
* env.c (parse_stacksize): Add cast to avoid warning.
|
|
|
|
(parse_spincount): Likewise.
|
|
|
|
|
2008-06-27 21:42:32 +02:00
|
|
|
2008-06-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2008-06-27 21:45:14 +02:00
|
|
|
* testsuite/libgomp.c/loop-10.c: New test.
|
|
|
|
* libgomp.c/loop-3.c (main): Add lastprivate clause.
|
|
|
|
* libgomp.c++/loop-6.C (main): Likewise.
|
|
|
|
|
2008-06-27 21:42:32 +02:00
|
|
|
PR debug/36617
|
|
|
|
* testsuite/libgomp.c/debug-1.c: New test.
|
|
|
|
|
2008-06-19 12:51:30 +02:00
|
|
|
2008-06-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: New test.
|
|
|
|
|
2008-06-20 04:18:07 +02:00
|
|
|
PR c++/36523
|
|
|
|
* testsuite/libgomp.c++/task-7.C: New function.
|
|
|
|
|
2008-06-18 01:13:35 +02:00
|
|
|
2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2008-06-15 23:41:26 +02:00
|
|
|
2008-06-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
* env.c (initialize_env): Always initialize gomp_remaining_threads_lock
|
|
|
|
mutex when HAVE_SYNC_BUILTINS isn't defined.
|
|
|
|
|
2008-06-15 11:42:13 +02:00
|
|
|
2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* libgomp.texi (omp_test_lock): Fix typo.
|
|
|
|
|
2008-06-12 14:15:29 +02:00
|
|
|
2008-06-12 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* omp_lib.f90.in: Add "implicit none".
|
|
|
|
|
2008-06-12 13:03:50 +02:00
|
|
|
2008-06-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/36506
|
|
|
|
* testsuite/libgomp.c/reduction-5.c: New test.
|
|
|
|
|
2008-06-11 08:27:04 +02:00
|
|
|
2008-06-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2008-06-11 23:43:45 +02:00
|
|
|
* libgomp.h (struct gomp_task): Add in_tied_task field.
|
|
|
|
* task.c (gomp_init_task): Initialize it.
|
|
|
|
(GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending
|
|
|
|
unconditionally. Don't call gomp_team_barrier_wake if
|
|
|
|
current task is implicit or if(0) from implicit and number of
|
|
|
|
running tasks is equal to nthreads - 1.
|
|
|
|
|
2008-06-11 09:06:14 +02:00
|
|
|
PR libgomp/36471
|
|
|
|
* omp_lib.f90.in (omp_get_ancestor_thread_num_8,
|
|
|
|
omp_get_team_size_8): Fix pastos.
|
|
|
|
|
2008-06-11 08:27:04 +02:00
|
|
|
PR libgomp/36469
|
|
|
|
* configure.ac: Add AC_CHECK_FUNCS (strtoull).
|
|
|
|
* configure: Regenerated.
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
* env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
|
|
|
|
defined.
|
|
|
|
|
2008-06-06 22:30:31 +02:00
|
|
|
2008-06-06 Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
PR bootstrap/36452
|
|
|
|
* loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
|
|
|
|
(GOMP_loop_ull_dynamic_start): Likewise.
|
|
|
|
(GOMP_loop_ull_guided_start): Likewise.
|
|
|
|
(GOMP_loop_ull_ordered_static_start): Likewise.
|
|
|
|
(GOMP_loop_ull_ordered_dynamic_start): Likewise.
|
|
|
|
(GOMP_loop_ull_ordered_guided_start): Likewise.
|
|
|
|
|
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
2008-06-06 15:01:54 +02:00
|
|
|
2008-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
Richard Henderson <rth@redhat.com>
|
|
|
|
Ulrich Drepper <drepper@redhat.com>
|
|
|
|
Jakob Blomer <jakob.blomer@ira.uka.de>
|
|
|
|
|
|
|
|
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
|
|
|
|
Substitute also OMP_*LOCK_25*.
|
|
|
|
* configure: Regenerated.
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
|
|
|
|
ptrlock.c and task.c.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
* task.c: New file.
|
|
|
|
* loop_ull.c: New file.
|
|
|
|
* iter_ull.c: New file.
|
|
|
|
* libgomp.h: Include ptrlock.h.
|
|
|
|
(enum gomp_task_kind): New type.
|
|
|
|
(struct gomp_team): Add task_lock, task_queue, task_count,
|
|
|
|
task_running_count, single_count fields. Add
|
|
|
|
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
|
|
|
|
Remove work_share_lock, generation_mask,
|
|
|
|
oldest_live_gen, num_live_gen and init_work_shares fields, add
|
|
|
|
work work_share_list_alloc, work_share_list_free and work_share_chunk
|
|
|
|
fields. Change work_shares from pointer to pointers into an array.
|
|
|
|
Change ordered_release field into gomp_sem_t ** from flexible array
|
|
|
|
member. Add implicit_task and initial_work_shares fields.
|
|
|
|
Move close to the end of the struct.
|
|
|
|
(struct gomp_team_state): Add single_count, last_work_share,
|
|
|
|
active_level and level fields, remove work_share_generation.
|
|
|
|
(gomp_barrier_handle_tasks): New prototype.
|
|
|
|
(gomp_finish_task): New inline function.
|
|
|
|
(struct gomp_work_share): Move chunk_size, end, incr into
|
|
|
|
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
|
|
|
|
next_ll fields. Reshuffle fields. Add next_alloc,
|
|
|
|
next_ws, next_free and inline_ordered_team_ids fields, change
|
|
|
|
ordered_team_ids into pointer from flexible array member.
|
|
|
|
Add mode field. Put lock and next into a different cache line
|
|
|
|
from most of the write-once fields.
|
|
|
|
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
|
|
|
|
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
|
|
|
|
gomp_iter_ull_guided_next): New prototypes.
|
|
|
|
(gomp_new_icv): New prototype.
|
|
|
|
(struct gomp_thread): Add thread_pool and task fields.
|
|
|
|
(struct gomp_thread_pool): New type.
|
|
|
|
(gomp_new_team): New prototype.
|
|
|
|
(gomp_team_start): Change type of last argument.
|
|
|
|
(gomp_new_work_share): Removed.
|
|
|
|
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
|
|
|
|
(gomp_work_share_init_done): New static inline.
|
|
|
|
(gomp_throttled_spin_count_var, gomp_available_cpus,
|
|
|
|
gomp_managed_threads): New extern decls.
|
|
|
|
(gomp_init_task): New prototype.
|
|
|
|
(gomp_spin_count_var): New extern var decl.
|
|
|
|
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
|
|
|
|
or no alias support, or if not PIC.
|
|
|
|
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
|
|
|
|
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
|
|
|
|
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
|
|
|
|
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
|
|
|
|
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
|
|
|
|
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
|
|
|
|
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
|
|
|
|
gomp_test_nest_lock_25): New prototypes.
|
|
|
|
(omp_lock_symver, strong_alias): Define.
|
|
|
|
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
|
|
|
|
decls.
|
|
|
|
(gomp_end_task): New.
|
|
|
|
(struct gomp_task_icv, gomp_global_icv): New.
|
|
|
|
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
|
|
|
|
(struct gomp_task): New.
|
|
|
|
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
|
|
|
|
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
|
|
|
|
(gomp_icv): New.
|
|
|
|
(gomp_schedule_type): Reorder enum to match
|
|
|
|
omp_sched_t.
|
|
|
|
* team.c (struct gomp_thread_start_data): Add thread_pool and task
|
|
|
|
fields.
|
|
|
|
(gomp_thread_start): Add gomp_team_barrier_wait call.
|
|
|
|
For non-nested case remove clearing of docked thread thr fields.
|
|
|
|
Use pool fields instead of global gomp_* variables. Use
|
|
|
|
gomp_barrier_wait_last when needed. Initialize ts.active_level.
|
|
|
|
Create tasks for each member thread.
|
|
|
|
(free_team): Only destroy team barrier, task_lock here and free it.
|
|
|
|
(gomp_free_thread): Free last_team if non-NULL.
|
|
|
|
(gomp_team_end): Call gomp_team_barrier_wait instead of
|
|
|
|
gomp_barrier_wait. For nested case call one extra
|
|
|
|
gomp_barrier_wait. Move here some destruction from free_team.
|
|
|
|
Call free_team on pool->last_team if any, rather than freeing
|
|
|
|
current team. Destroy work_share_list_free_lock ifndef
|
|
|
|
HAVE_SYNC_BUILTINS.
|
|
|
|
(gomp_new_icv): New function.
|
|
|
|
(gomp_threads, gomp_threads_size, gomp_threads_used,
|
|
|
|
gomp_threads_dock): Removed.
|
|
|
|
(gomp_thread_destructor): New variable.
|
|
|
|
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
|
|
|
|
functions.
|
|
|
|
(gomp_team_start): Create new pool if current thread doesn't have
|
2011-11-30 04:43:57 +01:00
|
|
|
one. Use pool fields instead of global gomp_* variables.
|
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
2008-06-06 15:01:54 +02:00
|
|
|
Initialize thread_pool field for new threads. Clear single_count.
|
|
|
|
Change last argument from ws to team, don't create
|
|
|
|
new team, set ts.work_share to &team->work_shares[0] and clear
|
|
|
|
ts.last_work_share. Don't clear ts.work_share_generation.
|
|
|
|
If number of threads changed, adjust atomically gomp_managed_threads.
|
|
|
|
Use gomp_init_task instead of gomp_new_task,
|
|
|
|
set thr->task to the corresponding implicit_task array entry.
|
|
|
|
Create tasks for each member thread. Initialize ts.level.
|
|
|
|
(initialize_team): Call pthread_key_create on
|
|
|
|
gomp_thread_destructor.
|
|
|
|
(team_destructor): New function.
|
|
|
|
(new_team): Removed.
|
|
|
|
(gomp_new_team): New function.
|
|
|
|
(free_team): Free gomp_work_share blocks chained through next_alloc,
|
|
|
|
instead of freeing work_shares and destroying work_share_lock.
|
|
|
|
(gomp_team_end): Call gomp_fini_work_share. If number of threads
|
|
|
|
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
|
|
|
|
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
|
|
|
|
of gomp_barrier_wait.
|
|
|
|
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
|
|
|
|
instead of gomp_barrier_wait. Call gomp_work_share_init_done
|
|
|
|
if gomp_work_share_start returned true. Don't unlock ws->lock.
|
|
|
|
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
|
|
|
|
of gomp_barrier_wait.
|
|
|
|
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
|
|
|
|
gomp_work_share_init_done if gomp_work_share_start returned true.
|
|
|
|
Don't unlock ws->lock.
|
|
|
|
* work.c: Include stddef.h.
|
|
|
|
(free_work_share): Use work_share_list_free_lock instead
|
|
|
|
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
|
|
|
|
Call gomp_fini_work_share and then either free ws if orphaned, or
|
|
|
|
put it into work_share_list_free list of the current team.
|
|
|
|
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
|
|
|
|
functions.
|
|
|
|
(gomp_work_share_start, gomp_work_share_end,
|
|
|
|
gomp_work_share_end_nowait): Rewritten.
|
|
|
|
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
|
|
|
|
(openmp_version): Set to 200805.
|
|
|
|
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
|
|
|
|
omp_sched_guided, omp_sched_auto): New parameters.
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels,
|
|
|
|
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
omp_get_active_level): New interfaces.
|
|
|
|
* omp_lib.h.in (openmp_version): Set to 200805.
|
|
|
|
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
|
|
|
|
omp_sched_guided, omp_sched_auto): New parameters.
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels,
|
|
|
|
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
omp_get_active_level): New externals.
|
|
|
|
* loop.c: Include limits.h.
|
|
|
|
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
|
|
|
|
GFS_AUTO.
|
|
|
|
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
|
|
|
|
Likewise. Use gomp_icv.
|
|
|
|
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
|
|
|
|
ts.static_trip here.
|
|
|
|
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
|
|
|
|
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
|
|
|
|
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
|
|
|
|
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
|
|
|
|
don't unlock ws->lock, otherwise lock it.
|
|
|
|
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
|
|
|
|
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
|
|
|
|
(gomp_parallel_loop_start): Call gomp_new_team instead of
|
|
|
|
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
|
|
|
|
Adjust gomp_team_start caller. Pass 0 as second argument to
|
|
|
|
gomp_resolve_num_threads.
|
|
|
|
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
|
|
|
|
If adding ws->chunk_size nthreads + 1 times after end won't
|
|
|
|
overflow, set ws->mode to 1.
|
|
|
|
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
|
|
|
|
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
|
|
|
|
GOMP_loop_ull_ordered_static_start,
|
|
|
|
GOMP_loop_ull_ordered_dynamic_start,
|
|
|
|
GOMP_loop_ull_ordered_guided_start,
|
|
|
|
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
|
|
|
|
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
|
|
|
|
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
|
|
|
|
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
|
|
|
|
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
|
|
|
|
prototypes.
|
|
|
|
* libgomp.map: Export lock routines also @@OMP_2.0.
|
|
|
|
(GOMP_loop_ordered_dynamic_first,
|
|
|
|
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
|
|
|
|
GOMP_loop_ordered_static_first): Remove.
|
|
|
|
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
|
|
|
|
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
|
|
|
|
GOMP_loop_ull_ordered_dynamic_next,
|
|
|
|
GOMP_loop_ull_ordered_dynamic_start,
|
|
|
|
GOMP_loop_ull_ordered_guided_next,
|
|
|
|
GOMP_loop_ull_ordered_guided_start,
|
|
|
|
GOMP_loop_ull_ordered_runtime_next,
|
|
|
|
GOMP_loop_ull_ordered_runtime_start,
|
|
|
|
GOMP_loop_ull_ordered_static_next,
|
|
|
|
GOMP_loop_ull_ordered_static_start,
|
|
|
|
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
|
|
|
|
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
|
|
|
|
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
|
|
|
|
(omp_set_schedule, omp_get_schedule,
|
|
|
|
omp_get_thread_limit, omp_set_max_active_levels,
|
|
|
|
omp_get_max_active_levels, omp_get_level,
|
|
|
|
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
|
|
|
|
omp_set_schedule_, omp_set_schedule_8_,
|
|
|
|
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
|
|
|
|
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
|
|
|
|
omp_get_max_active_levels_, omp_get_level_,
|
|
|
|
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
|
|
|
|
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
|
|
|
|
New exports @@OMP_3.0.
|
|
|
|
* omp.h.in (omp_sched_t): New type.
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels,
|
|
|
|
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
omp_get_active_level): New prototypes.
|
|
|
|
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
|
|
|
|
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
|
|
|
|
gomp_thread_limit_var, gomp_remaining_threads_count,
|
|
|
|
gomp_remaining_threads_lock): New variables.
|
|
|
|
(parse_spincount): New function.
|
|
|
|
(initialize_env): Call gomp_init_num_threads unconditionally.
|
|
|
|
Initialize gomp_available_cpus. Call parse_spincount,
|
|
|
|
initialize gomp_{,throttled_}spin_count_var
|
|
|
|
depending on presence and value of OMP_WAIT_POLICY and
|
|
|
|
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
|
|
|
|
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
|
|
|
|
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
|
|
|
|
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
|
|
|
|
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
|
|
|
|
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
|
|
|
|
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
|
|
|
|
(gomp_global_icv): New.
|
|
|
|
(parse_schedule): Use it. Parse "auto".
|
|
|
|
(omp_set_num_threads): Use gomp_icv.
|
|
|
|
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
|
|
|
|
Likewise.
|
|
|
|
(omp_get_max_threads): Move from parallel.c.
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
|
|
|
|
add ialias.
|
|
|
|
(parse_stacksize, parse_wait_policy): New functions.
|
|
|
|
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
|
|
|
|
both wrappers for compatibility and new locks.
|
|
|
|
(omp_set_schedule, omp_get_schedule,
|
|
|
|
omp_get_thread_limit, omp_set_max_active_levels,
|
|
|
|
omp_get_max_active_levels, omp_get_level,
|
|
|
|
omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
omp_get_active_level): New ialias_redirect.
|
|
|
|
(omp_set_schedule_, omp_set_schedule_8_,
|
|
|
|
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
|
|
|
|
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
|
|
|
|
omp_get_max_active_levels_, omp_get_level_,
|
|
|
|
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
|
|
|
|
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
|
|
|
|
New functions.
|
|
|
|
* parallel.c: Include limits.h.
|
|
|
|
(gomp_resolve_num_threads): Add count argument. Rewritten.
|
|
|
|
(GOMP_parallel_start): Call gomp_new_team and pass that as last
|
|
|
|
argument to gomp_team_start. Pass 0 as second argument to
|
|
|
|
gomp_resolve_num_threads.
|
|
|
|
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
|
|
|
|
if gomp_thread_limit_var != ULONG_MAX.
|
|
|
|
(omp_in_parallel): Implement using ts.active_level.
|
|
|
|
(omp_get_max_threads): Move to env.c.
|
|
|
|
(omp_get_level, omp_get_ancestor_thread_num,
|
|
|
|
omp_get_team_size, omp_get_active_level): New functions,
|
|
|
|
add ialias.
|
|
|
|
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
|
|
|
|
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
|
|
|
|
gomp_iter_dynamic_next instead of the _locked variant and don't take
|
|
|
|
lock around it, otherwise acquire it before calling
|
|
|
|
gomp_iter_dynamic_next_locked.
|
|
|
|
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
|
|
|
|
gomp_iter_dynamic_next instead of the _locked variant and don't take
|
|
|
|
lock around it.
|
|
|
|
(GOMP_parallel_sections_start): Call gomp_new_team instead of
|
|
|
|
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
|
|
|
|
Adjust gomp_team_start caller. Pass count as second argument to
|
|
|
|
gomp_resolve_num_threads, don't adjust num_threads after the call.
|
|
|
|
Use gomp_icv.
|
|
|
|
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
|
|
|
|
ws->chunk_size by incr.
|
|
|
|
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
|
|
|
|
code.
|
|
|
|
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
|
|
|
|
types.
|
|
|
|
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
|
|
|
|
(omp_check_defines): Check even the compat defines.
|
|
|
|
* config/linux/ptrlock.c: New file.
|
|
|
|
* config/linux/ptrlock.h: New file.
|
|
|
|
* config/linux/wait.h: New file.
|
|
|
|
* config/posix/ptrlock.c: New file.
|
|
|
|
* config/posix/ptrlock.h: New file.
|
|
|
|
* config/linux/bar.h (gomp_team_barrier_wait,
|
|
|
|
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
|
|
|
|
(gomp_team_barrier_set_task_pending,
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_done): New inlines.
|
|
|
|
(gomp_barrier_t): Rewritten.
|
|
|
|
(gomp_barrier_state_t): New typedef.
|
|
|
|
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
|
|
|
|
gomp_barrier_wait_start): Rewritten.
|
|
|
|
(gomp_barrier_wait_end): Change second argument to
|
|
|
|
gomp_barrier_state_t.
|
|
|
|
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
|
|
|
|
inlines.
|
|
|
|
* config/linux/bar.c: Include wait.h instead of libgomp.h and
|
|
|
|
futex.h.
|
|
|
|
(gomp_barrier_wait_end): Rewritten.
|
|
|
|
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
|
|
|
|
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
|
|
|
|
* config/posix/bar.h (gomp_barrier_t): Add generation field.
|
|
|
|
(gomp_barrier_state_t): New typedef.
|
|
|
|
(gomp_team_barrier_wait,
|
|
|
|
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
|
|
|
|
(gomp_barrier_wait_start): Or all but low 2 bits from generation
|
|
|
|
into the return value. Return gomp_barrier_state_t.
|
|
|
|
(gomp_team_barrier_set_task_pending,
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
gomp_team_barrier_done): New inlines.
|
|
|
|
(gomp_barrier_wait_end): Change second argument to
|
|
|
|
gomp_barrier_state_t.
|
|
|
|
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
|
|
|
|
inlines.
|
|
|
|
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
|
|
|
|
(gomp_barrier_wait_end): Change second argument to
|
2011-11-30 04:43:57 +01:00
|
|
|
gomp_barrier_state_t.
|
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
2008-06-06 15:01:54 +02:00
|
|
|
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
|
|
|
|
gomp_team_barrier_wake): New functions.
|
|
|
|
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
|
|
|
|
futex.h.
|
|
|
|
(gomp_futex_wake, gomp_futex_wait): New variables.
|
|
|
|
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
|
|
|
|
* config/linux/lock.c: Rewrite to make locks task owned,
|
|
|
|
for backwards compatibility provide the old entrypoints
|
|
|
|
if symbol versioning. Include wait.h instead of libgomp.h and
|
|
|
|
futex.h.
|
|
|
|
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
|
|
|
|
* config/posix95/lock.c: Rewrite to make locks task owned,
|
|
|
|
for backwards compatibility provide the old entrypoints
|
|
|
|
if symbol versioning.
|
|
|
|
* config/posix/lock.c: Rewrite to make locks task owned,
|
|
|
|
for backwards compatibility provide the old entrypoints
|
|
|
|
if symbol versioning.
|
|
|
|
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
|
|
|
|
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
|
|
|
|
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
|
|
|
|
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
* config/linux/sem.c: Include wait.h instead of libgomp.h and
|
|
|
|
futex.h.
|
|
|
|
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
|
|
|
|
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
|
|
|
|
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
|
|
|
|
types.
|
|
|
|
(omp_nest_lock_t): Change owner into void *, add lock field.
|
|
|
|
* config/posix95/omp-lock.h: Include semaphore.h.
|
|
|
|
(omp_lock_25_t, omp_nest_lock_25_t): New types.
|
|
|
|
(omp_lock_t): Use sem_t instead of mutex if semaphores
|
|
|
|
aren't broken.
|
|
|
|
(omp_nest_lock_t): Likewise. Change owner to void *.
|
|
|
|
* config/posix/omp-lock.h: Include semaphore.h.
|
|
|
|
(omp_lock_25_t, omp_nest_lock_25_t): New types.
|
|
|
|
(omp_lock_t): Use sem_t instead of mutex if semaphores
|
|
|
|
aren't broken.
|
|
|
|
(omp_nest_lock_t): Likewise. Add owner field.
|
|
|
|
|
|
|
|
2008-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/collapse-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/collapse-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/collapse-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/icv-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/icv-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/lib-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/lock-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/lock-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/lock-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-4.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-7.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-8.c: New test.
|
|
|
|
* testsuite/libgomp.c/loop-9.c: New test.
|
|
|
|
* testsuite/libgomp.c/nested-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/nestedfn-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/sort-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/task-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/task-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/task-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/task-4.c: New test.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
|
|
|
|
to C++ testsuite default compiler options.
|
|
|
|
* testsuite/libgomp.c++/collapse-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/collapse-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/ctor-10.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-4.C: New test.
|
|
|
|
* testsuite/libgomp.c++/for-5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-8.C: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-9.C: New test.
|
|
|
|
* testsuite/libgomp.c++/loop-10.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-2.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-3.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-4.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-5.C: New test.
|
|
|
|
* testsuite/libgomp.c++/task-6.C: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/allocatable4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/collapse1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/collapse2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/collapse3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/collapse4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/lib4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/lock-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/lock-2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/nested1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/strassen.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/tabs1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/tabs2.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/task1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/task2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr26943-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: Likewise.
|
|
|
|
|
2008-05-23 13:52:44 +02:00
|
|
|
2008-05-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/36308
|
|
|
|
* testsuite/libgomp.c++/ctor-11.C: New test.
|
|
|
|
* testsuite/libgomp.c++/ctor-12.C: New test.
|
|
|
|
|
2008-05-15 18:59:21 +02:00
|
|
|
2008-05-15 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
|
|
|
|
|
2008-05-07 09:28:14 +02:00
|
|
|
2008-05-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/36106
|
|
|
|
* testsuite/libgomp.c/atomic-5.c: New test.
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: New test.
|
|
|
|
* testsuite/libgomp.c/autopar-1.c: New test.
|
|
|
|
|
2008-04-21 22:55:19 +02:00
|
|
|
2008-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
|
|
|
|
(LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
|
|
|
|
(LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
|
|
|
|
(LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* Makefile.in, testsuite/Makefile.in: Likewise.
|
|
|
|
|
2008-04-18 12:28:53 +02:00
|
|
|
2008-04-18 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
PR bootstrap/35457
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2008-03-18 10:54:21 +01:00
|
|
|
2008-03-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2008-03-18 13:21:02 +01:00
|
|
|
PR middle-end/35611
|
|
|
|
* testsuite/libgomp.c/atomic-4.c: New test.
|
|
|
|
|
2008-03-18 10:54:21 +01:00
|
|
|
PR libgomp/35625
|
|
|
|
* iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
|
|
|
|
(gomp_iter_guided_next): Likewise.
|
|
|
|
* testsuite/libgomp.c/pr35625.c: New test.
|
|
|
|
|
2008-03-16 09:19:08 +01:00
|
|
|
2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* configure: Likewise.
|
|
|
|
* Makefile.in: Likewise.
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
2008-03-13 10:26:25 +01:00
|
|
|
2008-03-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/35185
|
|
|
|
* testsuite/libgomp.c++/pr35185.C: New test.
|
|
|
|
|
2008-03-12 10:55:48 +01:00
|
|
|
2008-03-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/35549
|
|
|
|
* testsuite/libgomp.c/pr35549.c: New test.
|
|
|
|
|
2008-03-06 18:28:54 +01:00
|
|
|
2008-03-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-3.c: New test.
|
|
|
|
|
re PR fortran/33197 (Fortran 2008: math functions)
PR fortran/33197
gcc/fortran/
* intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
ERFC_SCALED, LOG_GAMMA and HYPOT.
* intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
gfc_resolve_hypot): New prototypes.
* mathbuiltins.def: Add HYPOT builtin. Make complex versions of
ACOSH, ASINH and ATANH available.
* gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
* lang.opt: Add -std=f2008 option.
* libgfortran.h: Define GFC_STD_F2008.
* lang-specs.h: Add .f08 and .F08 file suffixes.
* iresolve.c (gfc_resolve_hypot): New function.
* parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
* check.c (gfc_check_hypot): New function.
* trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
* options.c (set_default_std_flags): Allow Fortran 2008 by default.
(form_from_filename): Add .f08 suffix.
(gfc_handle_option): Handle -std=f2008 option.
* simplify.c (gfc_simplify_hypot): New function.
* gfortran.texi: Document Fortran 2008 status and file extensions.
* intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
* invoke.texi: Document the new -std=f2008 option.
libgomp/
* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
.F08 file suffixes.
gcc/testsuite/
* gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes.
* gfortran.dg/dg.exp: Likewise.
* gfortran.dg/vect/vect.exp: Likewise.
* gfortran.fortran-torture/execute/execute.exp: Likewise.
* gfortran.fortran-torture/compile/compile.exp: Likewise.
* gfortran.dg/gamma_1.f90: Also check log_gamma.
* gfortran.dg/invalid_contains_1.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_2.f90: Add a few error messages.
* gfortran.dg/invalid_contains_2.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_3.f90: Adjust error message.
* gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma.
* gfortran.dg/bind_c_usage_9.f03: Adjust error messages.
* gfortran.dg/bessel_1.f90: New test.
* gfortran.dg/recursive_check_3.f90: Remove warnings.
* gfortran.dg/besxy.f90: Also check for new F2008 intrinsics.
* gfortran.dg/derived_function_interface_1.f90: Remove warning.
* gfortran.dg/contains_empty_1.f03: New test.
* gfortran.dg/erfc_scaled_1.f90: New test.
* gfortran.dg/hypot_1.f90: New test.
* gfortran.dg/contains_empty_2.f03: New test.
libgfortran/
* intrinsics/erfc_scaled_inc.c: New file.
* intrinsics/erfc_scaled.c: New file.
* gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
* Makefile.am: Add intrinsics/erfc_scaled.c.
* config.h.in: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
From-SVN: r132846
2008-03-04 00:46:20 +01:00
|
|
|
2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR fortran/33197
|
2008-03-06 18:28:54 +01:00
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
|
re PR fortran/33197 (Fortran 2008: math functions)
PR fortran/33197
gcc/fortran/
* intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
ERFC_SCALED, LOG_GAMMA and HYPOT.
* intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
gfc_resolve_hypot): New prototypes.
* mathbuiltins.def: Add HYPOT builtin. Make complex versions of
ACOSH, ASINH and ATANH available.
* gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
* lang.opt: Add -std=f2008 option.
* libgfortran.h: Define GFC_STD_F2008.
* lang-specs.h: Add .f08 and .F08 file suffixes.
* iresolve.c (gfc_resolve_hypot): New function.
* parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
* check.c (gfc_check_hypot): New function.
* trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
* options.c (set_default_std_flags): Allow Fortran 2008 by default.
(form_from_filename): Add .f08 suffix.
(gfc_handle_option): Handle -std=f2008 option.
* simplify.c (gfc_simplify_hypot): New function.
* gfortran.texi: Document Fortran 2008 status and file extensions.
* intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
* invoke.texi: Document the new -std=f2008 option.
libgomp/
* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
.F08 file suffixes.
gcc/testsuite/
* gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes.
* gfortran.dg/dg.exp: Likewise.
* gfortran.dg/vect/vect.exp: Likewise.
* gfortran.fortran-torture/execute/execute.exp: Likewise.
* gfortran.fortran-torture/compile/compile.exp: Likewise.
* gfortran.dg/gamma_1.f90: Also check log_gamma.
* gfortran.dg/invalid_contains_1.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_2.f90: Add a few error messages.
* gfortran.dg/invalid_contains_2.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_3.f90: Adjust error message.
* gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma.
* gfortran.dg/bind_c_usage_9.f03: Adjust error messages.
* gfortran.dg/bessel_1.f90: New test.
* gfortran.dg/recursive_check_3.f90: Remove warnings.
* gfortran.dg/besxy.f90: Also check for new F2008 intrinsics.
* gfortran.dg/derived_function_interface_1.f90: Remove warning.
* gfortran.dg/contains_empty_1.f03: New test.
* gfortran.dg/erfc_scaled_1.f90: New test.
* gfortran.dg/hypot_1.f90: New test.
* gfortran.dg/contains_empty_2.f03: New test.
libgfortran/
* intrinsics/erfc_scaled_inc.c: New file.
* intrinsics/erfc_scaled.c: New file.
* gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
* Makefile.am: Add intrinsics/erfc_scaled.c.
* config.h.in: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
From-SVN: r132846
2008-03-04 00:46:20 +01:00
|
|
|
.F08 file suffixes.
|
|
|
|
|
2008-03-03 23:35:13 +01:00
|
|
|
2008-03-03 Peter O'Gorman <pogma@thewrittenword.com>
|
|
|
|
|
|
|
|
PR libgomp/33131
|
|
|
|
* configure.ac: Add ACX_HEADER_STRING.
|
|
|
|
* env.c: Include strings.h.
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2008-02-15 18:36:43 +01:00
|
|
|
2008-02-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2008-02-15 18:42:25 +01:00
|
|
|
PR middle-end/35196
|
|
|
|
* testsuite/libgomp.c/pr35196.c: New test.
|
|
|
|
|
2008-02-15 18:36:43 +01:00
|
|
|
PR middle-end/35130
|
|
|
|
* testsuite/libgomp.fortran/pr35130.f90: New test.
|
|
|
|
* testsuite/libgomp.c/pr35130.c: New test.
|
|
|
|
|
2008-01-25 13:54:42 +01:00
|
|
|
2008-01-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/33880
|
|
|
|
* testsuite/libgomp.c/pr33880.c: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr33880.f90: New test.
|
|
|
|
|
2008-01-24 17:25:43 +01:00
|
|
|
2008-01-24 David Edelsohn <edelsohn@gnu.org>
|
2008-01-24 17:23:13 +01:00
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2008-01-08 17:14:49 +01:00
|
|
|
2008-01-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* configure.ac: Move futex checking into ../config/futex.m4.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
* aclocal.m4: Rebuilt.
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
|
|
|
* configure.tgt: Rename have_tls to gcc_cv_have_tls to match
|
|
|
|
2007-10-15 ../config/tls.m4 change.
|
|
|
|
|
2007-12-19 13:58:32 +01:00
|
|
|
2007-12-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/34513
|
|
|
|
* testsuite/libgomp.c/pr34513.c: New test.
|
|
|
|
* testsuite/libgomp.c++/pr34513.C: New test.
|
|
|
|
|
2007-12-17 20:30:08 +01:00
|
|
|
2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
PR target/32765
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
|
|
|
|
|
2007-12-04 23:01:04 +01:00
|
|
|
2007-12-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes.
|
|
|
|
|
2007-12-04 00:06:55 +01:00
|
|
|
2007-12-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/private-1.c: New test.
|
|
|
|
|
2007-11-29 16:34:21 +01:00
|
|
|
2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
|
|
|
|
Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
* Makefile.am: Use space as vpath separator. Use 'vpath %'
|
|
|
|
instead of 'VPATH ='.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2007-11-23 10:29:44 +01:00
|
|
|
2007-11-23 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
* configure.ac: Adjust makeinfo version check.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2007-11-10 08:51:55 +01:00
|
|
|
2007-11-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/34020
|
|
|
|
* testsuite/libgomp.fortran/pr34020.f90: New test.
|
|
|
|
|
2007-11-06 09:26:50 +01:00
|
|
|
2007-11-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/33894
|
|
|
|
* testsuite/libgomp.c++/atomic-1.C: New test.
|
|
|
|
|
2007-10-25 22:25:12 +02:00
|
|
|
2007-10-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/33275
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
|
|
|
|
Make x and y integers rather than (implicit) reals. Add private (j)
|
|
|
|
clause to the last omp parallel.
|
|
|
|
|
2007-10-15 20:09:32 +02:00
|
|
|
2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
|
|
|
|
|
|
|
|
* configure: Regenerate following changes to ../config/tls.m4.
|
|
|
|
|
2007-09-28 15:22:18 +02:00
|
|
|
2007-09-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/stack.f90: New test.
|
|
|
|
|
2007-09-10 04:27:29 +02:00
|
|
|
2007-09-10 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
* config/mingw32/proc.c: New file.
|
|
|
|
|
2007-09-05 19:43:01 +02:00
|
|
|
2007-09-05 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
|
|
|
|
(main): Use __get_cpuid to get i386 target fetaures.
|
|
|
|
* testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
|
|
|
|
(main): Use __get_cpuid to get x86_64 target fetaures.
|
|
|
|
|
2007-08-15 15:11:40 +02:00
|
|
|
2007-08-15 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
PR target/32765
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Likwise.
|
|
|
|
|
2007-07-12 14:16:54 +02:00
|
|
|
2007-07-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/32550
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: New test.
|
|
|
|
|
2007-07-05 19:54:10 +02:00
|
|
|
2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
* aclocal.m4: Regenerated.
|
|
|
|
|
2007-07-05 14:51:51 +02:00
|
|
|
2007-07-05 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
PR fortran/32359
|
|
|
|
* testsuite/libgomp.fortran/pr32359.f90: New.
|
|
|
|
|
2007-07-02 21:19:28 +02:00
|
|
|
2007-07-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/32468
|
|
|
|
* sections.c (GOMP_parallel_sections_start): Only decrease
|
|
|
|
number of threads to COUNT if dyn_var is true.
|
|
|
|
* testsuite/libgomp.c/pr32468.c: New test.
|
|
|
|
|
2007-07-02 16:38:13 +02:00
|
|
|
2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
PR libgomp/26308
|
|
|
|
* config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
|
|
|
|
|
2007-06-21 14:11:00 +02:00
|
|
|
2007-06-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/32362
|
|
|
|
* testsuite/libgomp.c/pr32362-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr32362-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr32362-3.c: New test.
|
|
|
|
|
2007-06-07 22:16:53 +02:00
|
|
|
2007-06-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* team.c (gomp_team_start): Fix setting up thread_attr
|
|
|
|
stack size.
|
|
|
|
|
2007-06-02 10:18:15 +02:00
|
|
|
2007-06-02 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2007-05-24 18:37:27 +02:00
|
|
|
2007-05-23 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2007-05-04 21:19:10 +02:00
|
|
|
2007-05-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/proc.c: New file.
|
|
|
|
|
2007-05-04 21:21:18 +02:00
|
|
|
PR libgomp/28482
|
|
|
|
* configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
|
|
|
|
|
2007-04-19 21:36:34 +02:00
|
|
|
2007-04-19 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
* libgomp.texi (GOMP_CPU_AFFINITY): Updated.
|
|
|
|
|
2007-04-16 22:09:40 +02:00
|
|
|
2007-04-16 Matthias Klose <doko@debian.org>
|
|
|
|
|
|
|
|
* configure.tgt (i[456]86-*-linux*): Only add ia32 specific
|
|
|
|
flags if not building with -m64.
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
|
|
|
|
flag for i?86-*-* targets, if current target matches -m64.
|
|
|
|
|
2007-04-14 21:49:42 +02:00
|
|
|
2007-04-14 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
* Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2007-04-07 17:10:06 +02:00
|
|
|
2007-04-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
PR testsuite/31369
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Don't use concat when setting
|
|
|
|
ld_library_path.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise.
|
|
|
|
|
2007-04-04 17:44:20 +02:00
|
|
|
2007-04-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
|
|
|
|
decls.
|
|
|
|
(gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
|
|
|
|
* env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
|
|
|
|
(parse_affinity): New function.
|
|
|
|
(initialize_env): Call it and gomp_init_affinity.
|
|
|
|
* team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
|
|
|
|
create new pthread_attr_t and call gomp_init_thread_affinity
|
|
|
|
on it for each thread before passing the attribute to pthread_create.
|
|
|
|
* config/linux/affinity.c: New file.
|
|
|
|
* config/posix/affinity.c: New file.
|
|
|
|
* configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
* config.h.in: Rebuilt.
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add affinity.c.
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
2007-03-23 20:25:19 +01:00
|
|
|
2007-03-23 Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
|
|
|
|
*-*-darwin*.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
|
|
|
|
and use it if found.
|
|
|
|
|
2007-03-22 08:00:08 +01:00
|
|
|
2007-03-18 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* testsuite/config/default.exp: New file.
|
|
|
|
* testsuite/lib/libgomp.exp: New file.
|
|
|
|
* testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
|
|
|
|
libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
|
|
|
|
load_lib *, load_gcc_lib *): Move to libgomp.exp.
|
|
|
|
(libgomp_load): Remove.
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Compute
|
|
|
|
always_ld_library_path, not ld_library_path. Set additional_flags
|
|
|
|
to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
|
|
|
|
(target_compile): Do not call libgomp_init. Append lang_library_path
|
|
|
|
and lang_link_flags to options.
|
|
|
|
* testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set
|
|
|
|
ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH
|
|
|
|
here.
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Set ld_library_path from
|
|
|
|
always_ld_library_path. Set LD_LIBRARY_PATH here.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Ditto.
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Set dg-options to
|
|
|
|
"-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
|
|
|
|
CX8 flag.
|
|
|
|
* testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
|
|
|
|
lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
|
|
|
|
* testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
|
|
|
|
* testsuite/libgomp.c/pr29947-1.c: Ditto.
|
|
|
|
* testsuite/libgomp.c/atomic-10.c: Ditto.
|
|
|
|
|
2007-03-21 20:43:14 +01:00
|
|
|
2007-03-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
|
|
|
|
dg-final cleanup-modules line.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/reduction5.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
|
|
|
|
|
2007-03-18 12:17:44 +01:00
|
|
|
2007-03-18 Andreas Schwab <schwab@suse.de>
|
|
|
|
|
|
|
|
* acinclude.m4: Adjust regular expression for ld version
|
|
|
|
extraction.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2007-03-02 01:03:11 +01:00
|
|
|
2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
|
|
|
|
|
|
|
|
* Makefile.am: Add install-pdf target as copied from
|
|
|
|
automake v1.10 rules.
|
|
|
|
* Makefile.in: Regenerate
|
|
|
|
|
2007-02-07 13:16:22 +01:00
|
|
|
2007-02-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2007-02-07 14:35:17 +01:00
|
|
|
PR libgomp/28486
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2007-02-07 13:16:22 +01:00
|
|
|
PR c++/30703
|
|
|
|
* testsuite/libgomp.c++/pr30703.C: New test.
|
|
|
|
|
2007-02-02 13:27:43 +01:00
|
|
|
2007-02-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
2006-07-05 Eric Christopher <echristo@apple.com>
|
|
|
|
* configure.ac: Depend addition of -pthread on host OS.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2007-02-01 06:37:21 +01:00
|
|
|
2007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
* libgomp.texi: Fix spacing after abbreviations.
|
|
|
|
|
2007-01-31 22:30:16 +01:00
|
|
|
2007-01-31 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/30546
|
|
|
|
* configure.ac: Add check for makeinfo
|
|
|
|
* Makefile.am: Redefined target libgomp.info, build libgomp.info only
|
|
|
|
if an appropiate version of makeinfo is found.
|
|
|
|
* aclocal.m4: Regenerated.
|
|
|
|
* configure: Regenerated.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
2007-01-30 22:16:30 +01:00
|
|
|
2007-01-29 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/30540
|
|
|
|
* libgomp.texi: More about implementation-dependent settings.
|
|
|
|
|
2007-01-26 09:35:19 +01:00
|
|
|
2007-01-26 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
|
|
|
|
|
2007-01-24 21:56:45 +01:00
|
|
|
2007-01-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/30494
|
|
|
|
* testsuite/libgomp.c/pr30494.c: New test.
|
|
|
|
|
2007-01-16 03:57:41 +01:00
|
|
|
2007-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
* configure.ac: Fixed comment.
|
|
|
|
|
2007-01-14 21:16:57 +01:00
|
|
|
2007-01-14 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
* libgomp.texi: Document implementation specific default values of
|
|
|
|
environment variables.
|
|
|
|
|
2006-12-21 23:29:08 +01:00
|
|
|
2006-12-21 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/28209
|
|
|
|
* libgomp.texi: New file.
|
|
|
|
* configure.ac: Add --enable-generated-files-in-srcdir option.
|
|
|
|
* Makefile.am: Add info, dvi, pdf, html targets. On request, copy
|
|
|
|
files to srcdir.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
* NOTES: Removed.
|
|
|
|
|
2006-12-04 22:35:19 +01:00
|
|
|
2006-12-04 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
PR libgomp/29949
|
|
|
|
* env.c (omp_set_num_threads): Set illegal thread count to 1.
|
|
|
|
|
2006-12-04 12:10:38 +01:00
|
|
|
2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2006-12-04 11:26:00 +01:00
|
|
|
2006-12-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/29947
|
|
|
|
* loop.c (gomp_loop_init): Make parameters signed. Set ws->end to
|
|
|
|
start if there shouldn't be any loop iterations.
|
|
|
|
(gomp_loop_ordered_static_start): Remove start == end test.
|
|
|
|
* testsuite/libgomp.c/pr29947-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr29947-2.c: New test.
|
|
|
|
|
2006-12-02 21:01:34 +01:00
|
|
|
2006-12-02 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
* configure.tgt: Force initial-exec TLS model on Linux only.
|
|
|
|
|
2006-11-13 21:35:20 +01:00
|
|
|
2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2006-11-09 20:41:36 +01:00
|
|
|
2006-11-09 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
* env.c (parse_schedule): Reject out of range values.
|
|
|
|
(parse_unsigned_long): Reject out of range, negative or zero values.
|
|
|
|
|
2006-10-29 11:27:39 +01:00
|
|
|
2006-10-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/29629
|
|
|
|
* testsuite/libgomp.fortran/pr29629.f90: New test.
|
|
|
|
|
2006-10-24 15:59:06 +02:00
|
|
|
2006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
PR libgomp/29494
|
|
|
|
* configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
|
|
|
|
* config/posix95: New directory.
|
|
|
|
* config/posix95/omp-lock.h: New file.
|
|
|
|
* config/posix95/lock.c: Likewise.
|
|
|
|
|
2006-10-15 09:42:57 +02:00
|
|
|
2006-10-14 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2006-10-06 10:32:33 +02:00
|
|
|
2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
|
|
|
|
'<' to '<='.
|
|
|
|
|
2006-10-06 10:25:32 +02:00
|
|
|
2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
* acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
|
|
|
|
test.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
|
|
|
|
|
2006-09-26 20:06:55 +02:00
|
|
|
2006-09-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
2006-09-26 20:10:58 +02:00
|
|
|
PR middle-end/25261
|
|
|
|
PR middle-end/28790
|
|
|
|
* testsuite/libgomp.c/nestedfn-4.c: New test.
|
|
|
|
* testsuite/libgomp.c/nestedfn-5.c: New test.
|
|
|
|
* testsuite/libgomp.fortran/nestedfn3.f90: New test.
|
|
|
|
|
2006-09-26 20:06:55 +02:00
|
|
|
PR fortran/29097
|
|
|
|
* testsuite/libgomp.fortran/condinc1.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/condinc2.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/condinc3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/condinc4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/condinc1.inc: New file.
|
|
|
|
|
2006-09-19 03:48:06 +02:00
|
|
|
2006-09-18 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
2006-09-13 03:04:18 +02:00
|
|
|
2006-09-13 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
PR c/28768
|
|
|
|
PR preprocessor/14634
|
|
|
|
* configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
|
|
|
|
to AC_DEFINE.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2006-09-08 22:57:55 +02:00
|
|
|
2006-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction3.f90: Change
|
|
|
|
-2147483648 to -huge(i)-1 to avoid overflow.
|
|
|
|
* testsuite/libgomp.fortran/reduction4.f90: Change
|
|
|
|
Z'ffffffff' to not(0) to avoid overflow.
|
|
|
|
|
2006-08-26 20:30:44 +02:00
|
|
|
2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
PR libgomp/25938
|
|
|
|
* Makefile.am (libsubincludedir): New.
|
|
|
|
(nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2006-08-17 09:58:02 +02:00
|
|
|
2006-08-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/28725
|
|
|
|
* env.c: Include ctype.h.
|
|
|
|
(parse_schedule, parse_unsigned_long, parse_boolean): Allow
|
|
|
|
leading and/or trailing whitespace and compare strings case
|
|
|
|
insensitively.
|
|
|
|
|
2006-07-16 22:19:27 +02:00
|
|
|
2006-07-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/28390
|
|
|
|
* testsuite/libgomp.fortran/pr28390.f: New test.
|
|
|
|
|
2006-07-05 19:32:41 +02:00
|
|
|
2006-07-05 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
* configure.ac: Depend addition of -pthread on host OS.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2006-06-21 10:59:44 +02:00
|
|
|
2006-06-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* critical.c (GOMP_critical_name_start): Fix *pptr initialization
|
|
|
|
when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
|
|
|
|
defined.
|
|
|
|
|
2006-06-20 11:55:42 +02:00
|
|
|
2006-06-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/26175
|
|
|
|
PR libgomp/26477
|
|
|
|
* configure.ac: If neither --enable-linux-futex nor
|
|
|
|
--disable-linux-futex is passed, determine the default by checking
|
|
|
|
for compiling and/or running against NPTL. With --enable-linux-futex,
|
|
|
|
check if SYS_gettid and SYS_futex are defined.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
2006-06-14 17:20:01 +02:00
|
|
|
2006-06-14 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/28008
|
|
|
|
* env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
|
|
|
|
undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
|
|
|
|
|
2006-06-10 00:08:55 +02:00
|
|
|
2006-06-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* env.c (gomp_nthreads_var): Change to unsigned long.
|
|
|
|
(gomp_run_sched_chunk): Likewise.
|
|
|
|
(parse_unsigned_long): Rename from parse_num_threads and generalize.
|
|
|
|
(initialize_env): Initialize gomp_thread_attr.
|
|
|
|
* libgomp.h (gomp_nthreads_var): Update decl.
|
|
|
|
(gomp_run_sched_chunk): Likewise.
|
|
|
|
(gomp_thread_attr): Declare.
|
|
|
|
* team.c (gomp_thread_attr): Export.
|
|
|
|
(initialize_team): Don't initialize it.
|
|
|
|
|
2006-06-09 23:18:42 +02:00
|
|
|
2006-06-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/27916
|
|
|
|
* testsuite/libgomp.fortran/pr27916-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr27916-2.f90: New test.
|
|
|
|
|
2006-06-06 19:54:02 +02:00
|
|
|
2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|
|
|
|
|
|
|
* config/mingw32/time.c: New file.
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
2006-05-24 03:28:16 +02:00
|
|
|
2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
* Makefile.am: Add install-html target. Add install-html to .PHONY
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
2006-05-22 21:10:45 +02:00
|
|
|
2006-05-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
PR libgomp/27612
|
|
|
|
* testsuite/libgomp.c/sections-1.c: Require sync_int_long.
|
|
|
|
* testsuite/libgomp.c/critical-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/loop-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/loop-2.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/single-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/ordered-1.c: Likewise.
|
|
|
|
* testsuite/libgomp.c/ordered-2.c: Likewise.
|
|
|
|
|
2006-05-15 11:59:30 +02:00
|
|
|
2006-05-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/27416
|
|
|
|
* libgomp.fortran/pr27416-1.f90: New test.
|
|
|
|
|
2006-05-03 14:51:33 +02:00
|
|
|
2006-05-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/27395
|
|
|
|
* testsuite/libgomp.fortran/pr27395-1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/pr27395-2.f90: New test.
|
|
|
|
|
2006-05-02 22:03:38 +02:00
|
|
|
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/26943
|
|
|
|
* testsuite/libgomp.c/pr26943-1.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr26943-2.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: New test.
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: New test.
|
|
|
|
* testsuite/libgomp.c++/pr27337.C: Remove barrier.
|
|
|
|
* testsuite/libgomp.c++/pr26943.C: New test.
|
|
|
|
|
2006-05-02 12:44:55 +02:00
|
|
|
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR middle-end/27337
|
|
|
|
* testsuite/libgomp.c++/pr27337.C: New test.
|
|
|
|
|
2006-04-26 10:26:06 +02:00
|
|
|
2006-04-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c/26171
|
|
|
|
* testsuite/libgomp.c/pr26171.c: New test.
|
|
|
|
|
2006-04-25 22:58:25 +02:00
|
|
|
2006-04-25 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/25865
|
|
|
|
* configure.ac: Use GCC_CHECK_TLS.
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
|
|
|
|
* Makefile.in, aclocal.m4, configure: Regenerate.
|
|
|
|
|
2006-04-10 23:34:19 +02:00
|
|
|
2006-04-10 Matthias Klose <doko@debian.org>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
|
|
|
|
directory names containing underscores.
|
|
|
|
|
2006-03-21 17:21:24 +01:00
|
|
|
2006-03-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/26691
|
|
|
|
* testsuite/libgomp.c++/pr26691.C: New test.
|
|
|
|
|
2006-03-13 22:44:04 +01:00
|
|
|
2006-03-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/retval2.f90: New test.
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
2006-03-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++: New directory.
|
|
|
|
|
2006-02-25 22:23:09 +01:00
|
|
|
2006-02-25 Shantonu Sen <ssen@opendarwin.org>
|
|
|
|
|
|
|
|
* config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
|
|
|
|
* config/posix/sem.c: Implement the above.
|
|
|
|
|
|
|
|
2006-02-25 Andreas Tobler <a.tobler@schweiz.ch>
|
|
|
|
|
|
|
|
* configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
|
|
|
|
define HAVE_BROKEN_POSIX_SEMAPHORES.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
* config.h.in: Rebuilt.
|
|
|
|
|
2006-02-17 20:01:04 +01:00
|
|
|
2006-02-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|
|
|
|
|
|
|
PR bootstrap/26161
|
|
|
|
* configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
|
|
|
|
for the other pthread check.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
2006-02-15 08:46:39 +01:00
|
|
|
2006-02-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/25938
|
|
|
|
PR libgomp/25984
|
|
|
|
* Makefile.am (fincludedir): New variable.
|
|
|
|
(nodist_include_HEADERS): Remove Fortran files.
|
|
|
|
(nodist_finclude_HEADERS): New variable.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
re PR fortran/25162 (Issue with OpenMP COPYIN and gfortran)
gcc/fortran/
2006-02-14 Jakub Jelinek <jakub@redhat.com>
Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* invoke.texi: Document -fopenmp.
* gfortran.texi (Extensions): Document OpenMP.
Backport from gomp-20050608-branch
* trans-openmp.c: Call build_omp_clause instead of
make_node when creating OMP_CLAUSE_* trees.
(gfc_trans_omp_reduction_list): Remove argument 'code'.
Adjust all callers.
* trans.h (build4_v): Define.
* trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes.
Call build3_v to create OMP_SECTIONS nodes.
PR fortran/25162
* openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced
on all symbols added to the variable list.
* openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC
procedure symbol in REDUCTION.
* trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add
for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE.
* trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument. If PBLOCK
is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in
that statement block.
(gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do
for non-ordered non-static combined loops.
(gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do.
* openmp.c: Include target.h and toplev.h.
(gfc_match_omp_threadprivate): Emit diagnostic if target does
not support TLS.
* Make-lang.in (fortran/openmp.o): Add dependencies on
target.h and toplev.h.
* trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT.
* trans-openmp.c (gfc_omp_privatize_by_reference): Make
DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT.
(gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT.
(gfc_trans_omp_variable): New function.
(gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it.
* trans.h (GFC_DECL_RESULT): Define.
* trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function.
* f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
* trans.h (gfc_omp_firstprivatize_type_sizes): New prototype.
* trans-openmp.c (gfc_omp_privatize_by_reference): Return
true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set.
(gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New
functions.
(gfc_trans_omp_clauses): Add WHERE argument. Call
gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list
for reductions.
(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
gfc_trans_omp_sections, gfc_trans_omp_single): Adjust
gfc_trans_omp_clauses callers.
* openmp.c (omp_current_do_code): New var.
(gfc_resolve_omp_do_blocks): New function.
(gfc_resolve_omp_parallel_blocks): Call it.
(gfc_resolve_do_iterator): Add CODE argument. Don't propagate
predetermination if argument is !$omp do or !$omp parallel do
iteration variable.
* resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks
for EXEC_OMP_DO. Adjust gfc_resolve_do_iterator caller.
* fortran.h (gfc_resolve_omp_do_blocks): New prototype.
(gfc_resolve_do_iterator): Add CODE argument.
* trans.h (gfc_omp_predetermined_sharing,
gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
prototypes.
(GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define.
* trans-openmp.c (gfc_omp_predetermined_sharing,
gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
functions.
* trans-common.c (build_equiv_decl, build_common_decl,
create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls.
* trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE
on the decl.
* f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define.
* openmp.c (resolve_omp_clauses): Remove extraneous comma.
* symbol.c (check_conflict): Add conflict between cray_pointee and
threadprivate.
* openmp.c (gfc_match_omp_threadprivate): Fail if
gfc_add_threadprivate returned FAILURE.
(resolve_omp_clauses): Diagnose Cray pointees in SHARED,
{,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in
{FIRST,LAST}PRIVATE and REDUCTION clauses.
* resolve.c (omp_workshare_flag): New variable.
(resolve_function): Diagnose use of non-ELEMENTAL user defined
function in WORKSHARE construct.
(resolve_code): Cleanup forall_save use. Make sure omp_workshare_flag
is set to correct value in different contexts.
* openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing
variable name.
(resolve_omp_atomic): Likewise.
PR fortran/24493
* scanner.c (skip_free_comments): Set at_bol at the beginning of the
loop, not before it.
(skip_fixed_comments): Handle ! comments in the middle of line here
as well.
(gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if
not at BOL.
(gfc_next_char_literal): Fix expected canonicalized *$omp string.
* trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit
initialization to build OMP_FOR instead of build.
* trans-decl.c (gfc_gimplify_function): Invoke
diagnose_omp_structured_block_errors.
* trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER.
(gfc_trans_omp_ordered): Use OMP_ORDERED.
* gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks,
gfc_resolve_omp_parallel_blocks): New prototypes.
* resolve.c (resolve_blocks): Renamed to...
(gfc_resolve_blocks): ... this. Remove static.
(gfc_resolve_forall): Adjust caller.
(resolve_code): Only call gfc_resolve_blocks if code->block != 0
and not for EXEC_OMP_PARALLEL* directives. Call
gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives.
Call gfc_resolve_do_iterator if resolved successfully EXEC_DO
iterator.
* openmp.c: Include pointer-set.h.
(omp_current_ctx): New variable.
(gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New
functions.
* Make-lang.in (fortran/openmp.o): Depend on pointer-set.h.
* openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor,
look up symbol if it exists, use its name instead and, if it is not
INTRINSIC, issue diagnostics.
* parse.c (parse_omp_do): Handle implied end do properly.
(parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO,
return it instead of continuing.
* trans-openmp.c (gfc_trans_omp_critical): Update for changed
operand numbering.
(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
gfc_trans_omp_sections, gfc_trans_omp_single): Likewise.
* trans.h (gfc_omp_privatize_by_reference): New prototype.
* f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine
to gfc_omp_privatize_by_reference.
* trans-openmp.c (gfc_omp_privatize_by_reference): New function.
* trans-stmt.h (gfc_trans_omp_directive): Add comment.
* openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument.
Disallow COMMON matching if it is set.
(gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers.
(resolve_omp_clauses): Show locus in error messages. Check that
variable types in reduction clauses are appropriate for reduction
operators.
* resolve.c (resolve_symbol): Don't error if a threadprivate module
variable isn't SAVEd.
* trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY.
Fix typo in condition. Fix DOVAR initialization.
* openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor
rather than .min. etc.
* trans-openmpc.c (omp_not_yet): Remove.
(gfc_trans_omp_parallel_do): Keep listprivate clause on parallel.
Force creation of BIND_EXPR around the workshare construct.
(gfc_trans_omp_parallel_sections): Likewise.
(gfc_trans_omp_parallel_workshare): Likewise.
* types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT.
(gfc_trans_omp_code): New function.
(gfc_trans_omp_do): Use it, remove omp_not_yet uses.
(gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise.
(gfc_trans_omp_sections): Likewise. Only treat empty last section
specially if lastprivate clause is present.
* f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP
builtin.
* trans-openmp.c (gfc_trans_omp_variable_list): Update for
OMP_CLAUSE_DECL name change.
(gfc_trans_omp_do): Likewise.
* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION
clauses.
(gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding
sync builtins directly.
(gfc_trans_omp_single): Build OMP_SINGLE statement.
* trans-openmp.c (gfc_trans_add_clause): New.
(gfc_trans_omp_variable_list): Take a tree code and build the clause
node here. Link it to the head of a list.
(gfc_trans_omp_clauses): Update to match.
(gfc_trans_omp_do): Use gfc_trans_add_clause.
* trans-openmp.c (gfc_trans_omp_clauses): Change second argument to
gfc_omp_clauses *. Use gfc_evaluate_now instead of creating
temporaries by hand.
(gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros.
(gfc_trans_omp_do): New function.
(gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL.
(gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller.
Use buildN_v macros.
(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections,
gfc_trans_omp_single, gfc_trans_omp_workshare): New functions.
(gfc_trans_omp_directive): Use them.
* parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP.
* openmp.c (resolve_omp_clauses): Check for list items present
in multiple clauses.
(resolve_omp_do): Check that iteration variable is not THREADPRIVATE
and is not present in any clause variable lists other than PRIVATE
or LASTPRIVATE.
* gfortran.h (symbol_attribute): Add threadprivate bit.
(gfc_common_head): Add threadprivate member, change use_assoc
and saved into char to save space.
(gfc_add_threadprivate): New prototype.
* symbol.c (check_conflict): Handle threadprivate.
(gfc_add_threadprivate): New function.
(gfc_copy_attr): Copy threadprivate.
* trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary
if IF or NUM_THREADS is constant. Create OMP_CLAUSE_SCHEDULE and
OMP_CLAUSE_ORDERED.
* resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol
outside a module and not in COMMON has is not SAVEd.
(resolve_equivalence): Ensure THREADPRIVATE objects don't get
EQUIVALENCEd.
* trans-common.c: Include target.h and rtl.h.
(build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
* trans-decl.c: Include rtl.h.
(gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
* dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE.
* Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H).
(fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H).
* openmp.c (gfc_match_omp_variable_list): Ensure COMMON block
is from current namespace.
(gfc_match_omp_threadprivate): Rewrite.
(resolve_omp_clauses): Check some clause restrictions.
* module.c (ab_attribute): Add AB_THREADPRIVATE.
(attr_bits): Add THREADPRIVATE.
(mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate.
(load_commons, write_common, write_blank_common): Adjust for type
change of saved, store/load threadprivate bit from the integer
as well.
* types.def (BT_FN_UINT_UINT): New.
(BT_FN_VOID_UINT_UINT): Remove.
* trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier,
gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master,
gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions.
(gfc_trans_omp_directive): Use them.
* openmp.c (expr_references_sym): Add SE argument, don't look
into SE tree.
(is_conversion): New function.
(resolve_omp_atomic): Adjust expr_references_sym callers. Handle
promoted expressions.
* trans-openmp.c (gfc_trans_omp_atomic): New function.
(gfc_trans_omp_directive): Call it.
* f95-lang.c (builtin_type_for_size): New function.
(gfc_init_builtin_functions): Initialize synchronization and
OpenMP builtins.
* types.def: New file.
* Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and
fortran/types.def.
* trans-openmp.c: Rename GOMP_* tree codes into OMP_*.
* dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name
is NULL.
* dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New
functions.
(gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes.
* parse.c (parse_omp_do): Call pop_state before next_statement.
* openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do):
New functions.
(gfc_resolve_omp_directive): Call them.
* match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement
leaves an OpenMP structured block or if EXIT terminates !$omp do
loop.
* Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o.
(F95_OBJS): Add fortran/trans-openmp.o.
(fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS).
* lang.opt: Add -fopenmp option.
* options.c (gfc_init_options): Initialize it.
(gfc_handle_option): Handle it.
* gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL,
ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER,
ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO,
ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE,
ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE,
ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED,
ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS,
ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION,
ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New
statement codes.
(OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE,
OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN,
OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM):
New OpenMP variable list types.
(gfc_omp_clauses): New typedef.
(gfc_get_omp_clauses): Define.
(EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT,
EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes.
(struct gfc_code): Add omp_clauses, omp_name, omp_namelist
and omp_bool fields to ext union.
(flag_openmp): Declare.
(gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes.
* scanner.c (openmp_flag, openmp_locus): New variables.
(skip_free_comments, skip_fixed_comments, gfc_next_char_literal):
Handle OpenMP directive lines and conditional compilation magic
comments.
* parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state.
* parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic,
parse_omp_structured_block): New functions.
(next_free, next_fixed): Parse OpenMP directives.
(case_executable, case_exec_markers, case_decl): Add ST_OMP_*
codes.
(gfc_ascii_statement): Handle ST_OMP_* codes.
(parse_executable): Rearrange the loop slightly, so that
parse_omp_do can return next_statement.
* match.h (gfc_match_omp_eos, gfc_match_omp_atomic,
gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do,
gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered,
gfc_match_omp_parallel, gfc_match_omp_parallel_do,
gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
gfc_match_omp_sections, gfc_match_omp_single,
gfc_match_omp_threadprivate, gfc_match_omp_workshare,
gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes.
* resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives.
(resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_*
directives.
* trans.c (gfc_trans_code): Call gfc_trans_omp_directive for
EXEC_OMP_* directives.
* st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing.
* trans-stmt.h (gfc_trans_omp_directive): New prototype.
* openmp.c: New file.
* trans-openmp.c: New file.
gcc/testsuite/
2006-02-14 Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* gfortran.dg/gomp: New directory.
libgomp/
2006-02-14 Jakub Jelinek <jakub@redhat.com>
* testsuite/libgomp.fortran/vla7.f90: Add -w to options.
Remove tests for returning assumed character length arrays.
Co-Authored-By: Diego Novillo <dnovillo@redhat.com>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Uros Bizjak <uros@kss-loka.si>
From-SVN: r110984
2006-02-14 17:38:03 +01:00
|
|
|
2006-02-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla7.f90: Add -w to options.
|
|
|
|
Remove tests for returning assumed character length arrays.
|
|
|
|
|
2006-02-13 03:33:37 +01:00
|
|
|
2006-02-12 Roger Sayle <roger@eyesopen.com>
|
|
|
|
John David Anglin <dave@hiauly1.hia.nrc.ca>
|
|
|
|
|
|
|
|
PR libgomp/25936
|
|
|
|
* configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
|
2006-07-05 19:32:41 +02:00
|
|
|
|
2006-02-08 23:36:39 +01:00
|
|
|
2006-02-08 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
|
|
|
|
|
2006-02-07 22:57:38 +01:00
|
|
|
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
|
|
|
|
part of LD_LIBRARY_PATH manually.
|
|
|
|
|
2006-02-03 19:37:11 +01:00
|
|
|
2006-02-03 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR libgomp/25852
|
|
|
|
* testsuite/lib/libgomp-dg.exp (blddir): Set it in
|
|
|
|
libgomp_init.
|
|
|
|
|
re PR libgomp/25884 (libgomp should not require perl to compile)
PR libgomp/25884
* Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
* configure.ac (PERL): Don't set.
(gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
(OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
* omp.h.in: Wrap the new configure substitutions with @ characters.
* omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
* aclocal.m4, configure, Makefile.in: Regenerate.
* mkomp_h.pl: Delete.
From-SVN: r110220
2006-01-25 20:17:57 +01:00
|
|
|
2005-01-25 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
PR libgomp/25884
|
2006-02-03 19:37:11 +01:00
|
|
|
* Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
|
|
|
|
* configure.ac (PERL): Don't set.
|
|
|
|
(gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
|
|
|
|
(OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
|
|
|
|
OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
|
|
|
|
* omp.h.in: Wrap the new configure substitutions with @ characters.
|
|
|
|
* omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
|
|
|
|
* aclocal.m4, configure, Makefile.in: Regenerate.
|
|
|
|
* mkomp_h.pl: Delete.
|
re PR libgomp/25884 (libgomp should not require perl to compile)
PR libgomp/25884
* Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
* configure.ac (PERL): Don't set.
(gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
(OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
* omp.h.in: Wrap the new configure substitutions with @ characters.
* omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
* aclocal.m4, configure, Makefile.in: Regenerate.
* mkomp_h.pl: Delete.
From-SVN: r110220
2006-01-25 20:17:57 +01:00
|
|
|
|
2006-01-24 22:06:07 +01:00
|
|
|
2005-01-24 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
PR libgomp/25259
|
|
|
|
* configure.ac: Use GCC_HEADER_STDINT.
|
|
|
|
* libgomp.h: Include gstdint.h.
|
|
|
|
* libgomp_f.h.in: Don't include stdint.h or inttypes.h.
|
|
|
|
* configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
|
|
|
|
|
2006-01-24 17:52:09 +01:00
|
|
|
2006-01-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/25942
|
|
|
|
* configure.ac: Add AM_MAINTAINER_MODE.
|
|
|
|
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
|
|
|
|
|
2006-01-24 16:31:32 +01:00
|
|
|
2006-01-24 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
2006-01-23 19:28:51 +01:00
|
|
|
2006-01-23 Andreas Tobler <a.tobler@schweiz.ch>
|
|
|
|
|
|
|
|
* config/posix/proc.c: Conditional include of sys/loadavg.h for
|
|
|
|
Solaris.
|
|
|
|
* configure.ac: Add check for loadavg.h.
|
|
|
|
(link_gomp): Adjust comment.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
2006-01-21 18:57:01 +01:00
|
|
|
2006-01-21 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
PR libgomp/25877
|
|
|
|
* configure.ac: Remove check for alloca.h.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
* libgomp.h: define gomp_alloca to be __builtin_alloca.
|
|
|
|
* team.c: Remove use of alloca.h.
|
|
|
|
Call gomp_alloca instead of alloca.
|
|
|
|
|
2006-01-20 19:17:28 +01:00
|
|
|
2006-01-20 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
PR libgomp/25877
|
|
|
|
* team.c: Add include of alloca.h.
|
|
|
|
* configure.ac: Add check for alloca.h.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
2006-01-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/25219
|
|
|
|
* testsuite/libgomp.fortran/pr25219.f90: New test.
|
|
|
|
|
|
|
|
2005-12-05 Uros Bizjak <uros@kss-loka.si>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
|
|
|
|
testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
|
|
|
|
testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
|
|
|
|
testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
|
|
|
|
testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
|
|
|
|
testsuite/libgomp.fortran/threadprivate1.f90,
|
|
|
|
testsuite/libgomp.fortran/threadprivate2.f90,
|
|
|
|
testsuite/libgomp.fortran/threadprivate3.f90,
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
|
|
|
|
testsuite/libgomp.fortran/omp_parse3.f90: Change required
|
|
|
|
effective-target to TLS runtime.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/pr25162.f: Require
|
|
|
|
effective-target TLS runtime.
|
|
|
|
|
|
|
|
2005-12-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn2.f90: New test.
|
|
|
|
* testsuite/libgomp.c/nestedfn-3.c: New test.
|
|
|
|
|
|
|
|
2005-11-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR fortran/25162
|
|
|
|
* testsuite/libgomp.fortran/pr25162.f: New test.
|
|
|
|
|
|
|
|
2005-11-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
|
|
|
|
CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
|
|
|
|
|
|
|
|
2005-11-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
|
|
|
|
libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
|
|
|
|
omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
|
|
|
|
single.c, team.c, work.c, config/linux/alpha/futex.h,
|
|
|
|
config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
|
|
|
|
config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
|
|
|
|
config/linux/powerpc/futex.h, config/linux/s390/futex.h,
|
|
|
|
config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
|
|
|
|
config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
|
|
|
|
config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
|
|
|
|
config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
|
|
|
|
FSF address.
|
|
|
|
|
|
|
|
2005-11-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
|
|
|
|
to nodist_noinst_HEADERS.
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
|
|
|
* config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
|
|
|
|
add integer count field.
|
|
|
|
* config/posix/lock.c (omp_destroy_nest_lock): Adjust for
|
|
|
|
omp_nest_lock_t type change.
|
|
|
|
(omp_init_nest_lock): Likewise. Initialize count to 0.
|
|
|
|
(omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
|
|
|
|
Increment count.
|
|
|
|
(omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
|
|
|
|
Decrement count.
|
|
|
|
(omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
|
|
|
|
Increment count if successful and return the new nesting level.
|
|
|
|
* config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
|
|
|
|
* omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
|
|
|
|
* testsuite/libgomp.c/lib-1.c: New test.
|
|
|
|
* testsuite/libgomp.fortran/lib1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/lib2.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/lib3.f: New test.
|
|
|
|
|
|
|
|
2005-11-17 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
PR 24845
|
|
|
|
* Makefile.am (nodist_toolexeclib_HEADERS): New.
|
|
|
|
* configure.ac (link_gomp): New. Substitute it.
|
|
|
|
(AC_CONFIG_FILES): Add libgomp.spec.
|
|
|
|
* libgomp.spec.in: New file.
|
|
|
|
* Makefile.in, testsuite/Makefile.in, configure: Rebuild.
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
|
|
|
|
|
|
|
|
2005-11-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction1.f90: Adjust for
|
|
|
|
reduction(-:var) behaving the same as reduction(+:var).
|
|
|
|
* testsuite/libgomp.c/reduction-4.c: New test.
|
|
|
|
|
|
|
|
2005-11-15 Uros Bizjak <uros@kss-loka.si>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
|
|
|
|
testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
|
|
|
|
testsuite/libgomp.c/copyin-3.c,
|
|
|
|
testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
|
|
|
|
testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
|
|
|
|
testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
|
|
|
|
testsuite/libgomp.c++/pr24455.C,
|
|
|
|
testsuite/libgomp.fortran/threadprivate1.f90,
|
|
|
|
testsuite/libgomp.fortran/threadprivate2.f90,
|
|
|
|
testsuite/libgomp.fortran/threadprivate3.f90,
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
|
|
|
|
testsuite/libgomp.fortran/omp_parse3.f90: Require
|
|
|
|
effective-target TLS.
|
|
|
|
|
|
|
|
2005-11-14 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* HEADER: Remove.
|
|
|
|
|
|
|
|
2005-11-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR libgomp/24797
|
|
|
|
* team.c (initialize_team): Pass NULL rather than free as
|
|
|
|
pthread_key_create destructor. Initialize thread specific data
|
|
|
|
pointer in initial thread to a static local variable rather than
|
|
|
|
malloced memory.
|
|
|
|
|
|
|
|
2005-11-11 Uros Bizjak <uros@kss-loka.si>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
|
|
|
|
its location to ld_library_path.
|
|
|
|
|
|
|
|
2005-11-10 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/c.exp: Rename from dg.exp.
|
|
|
|
|
|
|
|
2005-11-10 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c: Rename from libgomp.dg.
|
|
|
|
|
|
|
|
2005-11-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: Add copyin clause for
|
|
|
|
threadprivate variable 'i'.
|
|
|
|
|
|
|
|
2005-11-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/s390/futex.h: New file.
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
|
|
|
|
before the parallel.
|
|
|
|
|
|
|
|
2005-11-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/24734
|
|
|
|
* testsuite/libgomp.c++/master-1.C: New test.
|
|
|
|
|
|
|
|
2005-11-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/copyin-3.c: New test.
|
|
|
|
|
|
|
|
2005-11-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/retval1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/vla7.f90: New test.
|
|
|
|
|
|
|
|
2005-11-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/vla3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/vla6.f90: New test.
|
|
|
|
|
|
|
|
2005-11-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/sparc/futex.h: New file.
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
|
|
|
|
|
|
|
|
* critical.c: Include stdlib.h.
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
|
|
|
|
ignoring return value.
|
|
|
|
* configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
|
|
|
|
LIBGOMP_CHECK_SYNC_BUILTINS check.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
|
|
|
2005-10-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla1.f90: New test.
|
|
|
|
|
|
|
|
2005-10-31 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: Fix race condition
|
|
|
|
setting 's' in different threads.
|
|
|
|
|
|
|
|
2005-10-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.h (attribute_hidden, ialias): Define.
|
|
|
|
* config/posix/proc.c (omp_get_num_procs): Add ialias.
|
|
|
|
* config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
|
|
|
|
* config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
|
|
|
|
omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
|
|
|
|
omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
|
|
|
|
omp_test_lock, omp_test_nest_lock): Likewise.
|
|
|
|
* config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
|
|
|
|
omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
|
|
|
|
omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
|
|
|
|
omp_test_lock, omp_test_nest_lock): Likewise.
|
|
|
|
* env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
|
|
|
|
omp_get_dynamic, omp_get_nested): Likewise.
|
|
|
|
* parallel.c (omp_get_num_threads, omp_get_max_threads,
|
|
|
|
omp_get_thread_num, omp_in_parallel): Likewise.
|
|
|
|
* fortran.c (ialias_redirect): Define.
|
|
|
|
(omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
|
|
|
|
omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
|
|
|
|
omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
|
|
|
|
omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
|
|
|
|
omp_set_num_threads, omp_get_dynamic, omp_get_nested,
|
|
|
|
omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
|
|
|
|
omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
|
|
|
|
omp_get_wtime): Add ialias_redirect.
|
|
|
|
|
|
|
|
2005-10-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* fortran.c: Include stdlib.h.
|
|
|
|
|
|
|
|
2005-10-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
|
|
|
2005-10-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
|
|
|
|
* libgomp_f.h.in (omp_check_defines): New function.
|
|
|
|
* env.c: Include libgomp_f.h.
|
|
|
|
(initialize_env): Call omp_check_defines.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/copyin-2.c: New test.
|
|
|
|
* testsuite/libgomp.c++/copyin-2.C: New test.
|
|
|
|
* testsuite/libgomp.fortran/threadprivate3.f90: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/sharing2.f90: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/copyin-1.c: New test.
|
|
|
|
* testsuite/libgomp.c++/copyin-1.C: New test.
|
|
|
|
|
|
|
|
2005-10-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr1.f90: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/workshare1.f90: New test.
|
|
|
|
|
|
|
|
* libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
|
|
|
|
only test.
|
|
|
|
* libgomp.fortran/sharing1.f90: New test.
|
|
|
|
|
|
|
|
2005-10-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
PR c++/24502
|
|
|
|
* testsuite/libgomp.c++/loop-7.C: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/nestedfn-2.c: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/nestedfn-1.c: New test.
|
|
|
|
* testsuite/libgomp.fortran/reduction6.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/nestedfn1.f90: New test.
|
|
|
|
|
|
|
|
2005-10-23 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/ctor-1.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-2.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-3.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-4.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-5.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-6.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-7.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-8.C: New.
|
|
|
|
* testsuite/libgomp.c++/ctor-9.C: New.
|
|
|
|
|
|
|
|
2005-10-21 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
PR 24455
|
|
|
|
* testsuite/libgomp.c++/pr24455-1.C: New test.
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: New test.
|
|
|
|
* testsuite/libgomp.dg/pr24455-1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/pr24455.c: New test.
|
|
|
|
|
|
|
|
2005-10-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/loop-6.C: New.
|
|
|
|
* testsuite/libgomp.dg/loop-3.c: New.
|
|
|
|
|
|
|
|
2005-10-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/jacobi.f: Don't make i and j
|
|
|
|
explicitly private.
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
|
|
|
|
explicitly shared.
|
|
|
|
|
|
|
|
2005-10-19 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/jacobi.f: New test.
|
|
|
|
|
|
|
|
2005-10-19 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* configure.tgt (i?86-linux): Default to with_arch instead of
|
|
|
|
CFLAGS. Add -mtune to match target_cpu.
|
|
|
|
(x86_64-linux): Tune to i686.
|
|
|
|
|
|
|
|
* fortran.c (omp_test_nest_lock_): Fix typo.
|
|
|
|
|
|
|
|
2005-10-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
|
|
|
|
gomp_ordered_sync): Do nothing if team->nthreads == 1.
|
|
|
|
* testsuite/libgomp.dg/ordered-3.c: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
|
|
|
|
Remove volatile keyword.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
|
|
|
|
in COMMON block to avoid warnings on 64-bit targets.
|
|
|
|
|
|
|
|
2005-10-18 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/shared-3.c: New test.
|
|
|
|
|
|
|
|
2005-10-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
|
|
|
|
* testsuite/libgomp.fortran/reduction5.f90: New test.
|
|
|
|
|
|
|
|
2005-10-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
|
|
|
|
dg-options.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable
|
|
|
|
flush loop now that __sync_synchronize has proper memory barrier.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
|
|
|
|
Add -ffixed-form to dg-options.
|
|
|
|
|
|
|
|
2005-10-17 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Also gather tests
|
|
|
|
from subdirectories.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
|
|
|
|
|
|
|
|
2005-10-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp: Only unset lang_* if
|
|
|
|
lang_library_path exists. Use find instead of glob to gather tests.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
|
|
|
|
|
|
|
|
2005-10-17 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
|
|
|
|
|
|
|
|
2005-10-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/vla-1.c: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reference2.f90: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: Remove explicit
|
|
|
|
declaration of omp_get_thread_num.
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add
|
|
|
|
use omp_lib.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/reduction2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/reduction3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/reduction4.f90: New test.
|
|
|
|
|
|
|
|
2005-10-13 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add bar.c.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* barrier.c (GOMP_barrier): Use gomp_barrier_wait.
|
|
|
|
* libgomp.h: Include bar.h.
|
|
|
|
(struct gomp_barrier): Remove.
|
|
|
|
(struct gomp_team): Add barrier. Replace master_barrier with
|
|
|
|
master_release. Replace threads with ordered_release.
|
|
|
|
(struct gomp_thread): Replace barrier with release.
|
|
|
|
* ordered.c (gomp_ordered_first): Update for ordered_release change.
|
|
|
|
(gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
|
|
|
|
gomp_ordered_static_next, gomp_ordered_sync): Likewise.
|
|
|
|
* single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
|
|
|
|
(GOMP_single_copy_end): Likewise.
|
|
|
|
* team.c (gomp_threads_dock): New.
|
|
|
|
(gomp_barrier_init, gomp_barrier_destroy): Remove.
|
|
|
|
(gomp_thread_start): Use gomp_barrier_wait.
|
|
|
|
(new_team, free_team): Update for gomp_team changes.
|
|
|
|
(gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
|
|
|
|
(gomp_team_end): Use gomp_barrier_wait.
|
|
|
|
(initialize_team): Update for gomp_thread changes.
|
|
|
|
* work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
|
|
|
|
(gomp_work_share_end_nowait): Use atomic ops when available.
|
|
|
|
* config/linux/bar.c, config/linux/bar.h: New files.
|
|
|
|
* config/posix/bar.c, config/posix/bar.h: New files.
|
|
|
|
|
|
|
|
2005-10-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
|
|
|
|
* testsuite/libgomp.dg/single-2.c: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
|
|
|
|
lang_link_flags): Unset, so that they aren't inherited from previously
|
|
|
|
sourced *.exp.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: New test.
|
|
|
|
|
|
|
|
2005-10-12 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
|
|
|
|
(libgomp_init): Use lang_test_file, lang_library_path, and
|
|
|
|
lang_link_flags, set by the subdirectory files. Add -fopenmp here.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
|
|
|
|
(lang_test_file, lang_link_flags): New.
|
|
|
|
(DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
|
|
|
|
testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
|
|
|
|
testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
|
|
|
|
testsuite/libgomp.c++/parallel-1.C,
|
|
|
|
testsuite/libgomp.c++/reduction-1.C,
|
|
|
|
testsuite/libgomp.c++/reduction-2.C,
|
|
|
|
testsuite/libgomp.c++/reduction-3.C,
|
|
|
|
testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
|
|
|
|
testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
|
|
|
|
testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
|
|
|
|
New files, largely cribbed from the C testsuite.
|
|
|
|
|
|
|
|
2005-10-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/character1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/nested-1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/nested-2.c: New test.
|
|
|
|
* testsuite/libgomp.fortran/do1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/do2.f90: New test.
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reference1.f90: New test.
|
|
|
|
|
|
|
|
2005-10-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/reduction-1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/reduction-2.c: New test.
|
|
|
|
* testsuite/libgomp.dg/reduction-3.c: New test.
|
|
|
|
|
|
|
|
2005-10-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/atomic-1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/atomic-2.c: New test.
|
|
|
|
|
|
|
|
2005-10-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* critical.c (atomic_lock): New.
|
|
|
|
(initialize_critical): Initialize it.
|
|
|
|
(GOMP_atomic_start, GOMP_atomic_end): New.
|
|
|
|
* libgomp.map: Export them.
|
|
|
|
* libgomp_g.h: Declare them.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
|
|
|
|
|
|
|
|
2005-10-02 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror
|
|
|
|
to XCFLAGS instead of CFLAGS.
|
|
|
|
|
|
|
|
2005-09-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* configure.ac: Determine whether -pthread or -lpthread is needed.
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
|
|
|
|
* Makefine.in, configure: Rebuild.
|
|
|
|
|
|
|
|
2005-09-28 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop03.c: Fix return code.
|
|
|
|
* testsuite/libgomp.dg/omp-single-3.c: New test.
|
|
|
|
|
|
|
|
2005-09-28 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-single-2.c: New test.
|
|
|
|
* testsuite/libgomp.dg/shared-2.c: Fix return code.
|
|
|
|
|
|
|
|
2005-09-27 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
|
|
|
|
* testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
|
|
|
|
|
|
|
|
2005-09-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop03.c: New test.
|
|
|
|
|
|
|
|
2005-09-27 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-parallel-for.c: New test.
|
|
|
|
|
|
|
|
2005-09-27 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-single-1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/shared-1.c: Return 0.
|
|
|
|
Add prototype for abort.
|
|
|
|
* testsuite/libgomp.dg/shared-2.c: Likewise.
|
|
|
|
|
|
|
|
2005-09-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
|
|
|
|
constructs.
|
|
|
|
|
|
|
|
2005-09-26 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/shared-1.c: New test.
|
|
|
|
* testsuite/libgomp.dg/shared-2.c: New test.
|
|
|
|
|
|
|
|
2005-09-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
|
|
|
|
|
|
|
|
2005-09-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_static_next): Round up when computing number
|
|
|
|
of iterations. Don't bother distributing a remainder equally.
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
|
|
|
|
Don't call srand. Zero b before testing.
|
|
|
|
(main): New.
|
|
|
|
|
|
|
|
2005-09-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic2.f90: New test.
|
|
|
|
|
|
|
|
2005-09-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
|
|
|
|
without !$omp end do, followed immediately by subroutine end.
|
|
|
|
|
|
|
|
2005-09-23 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-parallel-if.c: New test.
|
|
|
|
|
|
|
|
2005-09-22 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* critical.c (GOMP_critical_name_start): Change argument to void**.
|
|
|
|
Reuse the pointer space if the mutex fits.
|
|
|
|
(GOMP_critical_name_end): Likewise.
|
|
|
|
(initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
|
|
|
|
* libgomp_g.h (GOMP_critical_name_start): Update decl.
|
|
|
|
(GOMP_critical_name_end): Likewise.
|
|
|
|
* config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
|
|
|
|
* config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
|
|
|
|
|
|
|
|
2005-09-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
|
|
|
|
(create_lock_lock): New.
|
|
|
|
(initialize_critical): Initialize it.
|
|
|
|
* libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
|
|
|
|
* libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
|
|
|
|
|
|
|
|
2005-09-20 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
|
|
|
|
|
|
|
|
2005-09-20 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop01.c: New test.
|
|
|
|
* testsuite/libgomp.dg/omp-loop02.c: New test.
|
|
|
|
|
|
|
|
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
* configure.ac (AC_PROG_FC): Add.
|
|
|
|
(USE_FORTRAN): New automake conditional.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add fortran.c.
|
|
|
|
(nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
|
|
|
|
If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
|
|
|
|
Add rules to build them.
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
* mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
|
|
|
|
OMP_NEST_LOCK_KIND.
|
|
|
|
* libgomp.map: Add Fortran wrappers.
|
|
|
|
* libgomp_f.h.in: New file.
|
|
|
|
* omp_lib.h.in: New file.
|
|
|
|
* omp_lib.f90.in: New file.
|
|
|
|
* fortran.c: New file.
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
|
|
|
|
Append libgfortran directory to LD_LIBRARY_PATH if it exists.
|
|
|
|
Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
|
|
|
|
libgfortran has been built.
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: New file.
|
|
|
|
* testsuite/libgomp.fortran/omp_cond1.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_cond2.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_cond3.F90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_cond4.F90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_hello.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_orphan.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_parse2.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_parse4.f90: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_reduction.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_workshare1.f: New test.
|
|
|
|
* testsuite/libgomp.fortran/omp_workshare2.f: New test.
|
|
|
|
|
|
|
|
2005-08-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* loop.c (GOMP_loop_static_start): Provide fallback wrapper
|
|
|
|
function for when aliases are not usable.
|
|
|
|
(GOMP_loop_dynamic_start, GOMP_loop_guided_start,
|
|
|
|
GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
|
|
|
|
GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
|
|
|
|
GOMP_loop_dynamic_next, GOMP_loop_guided_next,
|
|
|
|
GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
|
|
|
|
GOMP_loop_ordered_guided_next): Likewise.
|
|
|
|
* ordered.c (GOMP_ordered_start): Likewise.
|
|
|
|
|
|
|
|
2005-08-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp: Use -O2 for now.
|
|
|
|
* testsuite/libgomp.dg/omp_hello.c: Fix return code
|
|
|
|
* testsuite/libgomp.dg/omp_matvec.c: Likewise.
|
|
|
|
* testsuite/libgomp.dg/omp_orphan.c: Likewise
|
|
|
|
* testsuite/libgomp.dg/omp_reduction.c: Likewise
|
|
|
|
* testsuite/libgomp.dg/omp_workshare1.c: Likewise
|
|
|
|
* testsuite/libgomp.dg/omp_workshare2.c: Likewise
|
|
|
|
* testsuite/libgomp.dg/omp_workshare3.c: Likewise
|
|
|
|
* testsuite/libgomp.dg/omp_workshare4.c: Likewise
|
|
|
|
|
|
|
|
2005-07-07 Eric Christopher <echristo@redhat.com>
|
|
|
|
Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
|
|
|
|
* testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
|
|
|
|
up code.
|
|
|
|
* testsuite/libgomp.dg/omp_matvec.c: Ditto.
|
|
|
|
* testsuite/libgomp.dg/omp_orphan.c: Ditto.
|
|
|
|
* testsuite/libgomp.dg/omp_reduction.c: Ditto.
|
|
|
|
* testsuite/libgomp.dg/omp_workshare1.c: Ditto.
|
|
|
|
* testsuite/libgomp.dg/omp_workshare2.c: Ditto.
|
|
|
|
* testsuite/libgomp.dg/omp_workshare3.c: Ditto.
|
|
|
|
* testsuite/libgomp.dg/omp_workshare4.c: Ditto.
|
|
|
|
|
|
|
|
2005-06-13 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
* TOPLEVEL.patch: Remove.
|
|
|
|
|
|
|
|
2005-05-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* configure.ac: Test for clock_gettime.
|
|
|
|
* config.h.in, configure: Rebuild.
|
|
|
|
* config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
|
|
|
|
(omp_get_wtime): Use clock_gettime if available.
|
|
|
|
(omp_get_wtick): Use clock_getres if available.
|
|
|
|
|
|
|
|
2005-05-11 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/ia64/futex.h: New file.
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
|
|
* team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
|
|
|
|
|
|
|
|
2005-05-07 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/powerpc/futex.h: New file.
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
|
|
* config/linux/i486/futex.h: Merge ...
|
|
|
|
* config/linux/x86_64/futex.h: ... into ...
|
|
|
|
* config/linux/x86/futex.h: ... here.
|
|
|
|
* configure.tgt: Update to match.
|
|
|
|
|
|
|
|
2005-05-06 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/alpha/futex.h: Conditionally define SYS_futex.
|
|
|
|
* config/linux/i486/futex.h: Likewise.
|
|
|
|
* config/linux/x86_64/futex.h: Likewise.
|
|
|
|
|
|
|
|
* config/linux/lock.c: New file.
|
|
|
|
* config/linux/omp-lock.h: New file.
|
|
|
|
|
|
|
|
* critical.c, env.h: Don't include omp.h
|
|
|
|
* config/posix/lock.c: Include libgomp.h instead of omp.h.
|
|
|
|
* config/posix/time.c: Likewise.
|
|
|
|
* config/posix/omp-lock.h: New file.
|
|
|
|
* libgomp.h: Include omp-lock.h and omp.h.
|
|
|
|
* Makefile.am (nodist_include_HEADERS): New.
|
|
|
|
(omp.h): New rule.
|
|
|
|
* configure.ac (PERL): New.
|
|
|
|
* mkomp_h.pl: New file.
|
|
|
|
* omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
|
|
|
|
with templates.
|
|
|
|
* Makefile.in, configure, testsuite/Makefile.in: Rebuild.
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
|
|
|
|
build directory. Re-add -march=i486 hack.
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
|
|
|
|
(libgomp_link_flags): Remove.
|
|
|
|
(libgomp_initialized): Remove.
|
|
|
|
(libgomp_init): Don't protect from reinitialization. Copy code
|
|
|
|
from libstdc++ for getting the multilib set correctly.
|
|
|
|
|
|
|
|
2005-05-05 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* config/linux/alpha/futex.h: New file.
|
|
|
|
* configure.tgt (alpha*-*-linux*): Use it.
|
|
|
|
|
|
|
|
* config/posix/mutex.c: New file.
|
|
|
|
* config/posix/sem.c: Use libgomp.h.
|
|
|
|
|
|
|
|
* configure.tgt (x86_64-linux): Also test CC for -m32.
|
|
|
|
* config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
|
|
|
|
|
2006-07-05 19:32:41 +02:00
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
after $gccpath.
|
|
|
|
|
|
|
|
* Makefile.am (SUBDIRS): New.
|
|
|
|
(libgomp_la_LDFLAGS): Add -lpthread.
|
|
|
|
* configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
|
|
|
|
* Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
|
|
|
|
|
|
|
|
* libgomp_g.h: New file.
|
|
|
|
* libgomp.h: Split out all public declarations to libgomp_g.h.
|
|
|
|
Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
|
|
|
|
* config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
|
|
|
|
* config/linux/sem.h: Likewise.
|
|
|
|
* config/posix/sem.h: Likewise.
|
|
|
|
|
|
|
|
* Makefile.am (AM_LDFLAGS): New.
|
|
|
|
(libgomp_version_script): Split out from ...
|
|
|
|
(libgomp_la_LDFLAGS): ... here.
|
|
|
|
(libgomp_version_info): New.
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
|
|
|
|
(LIBGOMP_ENABLE): New.
|
|
|
|
(LIBGOMP_CHECK_LINKER_FEATURES): New.
|
|
|
|
(LIBGOMP_ENABLE_SYMVERS): New.
|
|
|
|
* configure.ac (AC_INIT): Version 1.0.
|
|
|
|
(enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
|
|
|
|
(enable-linux-futex): Likewise. Rename from enable-futex.
|
|
|
|
(libtool_VERSION): New.
|
|
|
|
(LIBGOMP_ENABLE_SYMVERS): Use it.
|
|
|
|
* configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
|
|
|
|
* Makefile.in, aclocal.m4, configure: Rebuild.
|
|
|
|
|
|
|
|
* config/linux/mutex.c: Include libgomp.h instead of mutex.h.
|
|
|
|
(gomp_mutex_unlock_slow): Fix typo.
|
|
|
|
* config/linux/sem.c: Similarly.
|
|
|
|
(gomp_sem_post_slow): Fix typo.
|
|
|
|
* config/linux/sem.h (gomp_sem_post_slow): Fix typo.
|
|
|
|
* config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
|
|
|
|
[__PIC__] (sys_futex0): Don't use tmp output in asm.
|
|
|
|
|
|
|
|
* Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
|
|
|
|
(libgomp_la_LDFLAGS): Add top_srcdir to path.
|
|
|
|
* acinclude.m4: Copy libtool.m4 stuff from libgfortran.
|
|
|
|
* configure.ac: Check for getloadavg. Substitute XCFLAGS and
|
|
|
|
XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
|
|
|
|
* configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
|
|
|
|
LDFLAGS. Pull enable_futex check to top-level.
|
|
|
|
* libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN.
|
|
|
|
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
|
|
|
|
|
|
|
|
First attempt at real configury.
|
|
|
|
* Makefile, config.h: Remove file.
|
|
|
|
* Makefile.am, Makefile.in: New file.
|
|
|
|
* acinclude.m4 aclocal.m4: New file.
|
|
|
|
* configure.ac, configure.tgt, configure: New file.
|
|
|
|
|
|
|
|
* config/posix/lock.c: Rename from sys-lock.c.
|
|
|
|
* config/posix/mutex.h: Rename from sys-mutex.h.
|
|
|
|
* config/posix/sem.c: Rename from sys-sem.c.
|
|
|
|
* config/posix/sem.h: Rename from sys-sem.h.
|
|
|
|
* config/posix/proc.c: Rename from sys-proc.c.
|
|
|
|
* config/posix/time.c: Rename from sys-proc.c.
|
|
|
|
|
|
|
|
* config/linux/mutex.c: New file.
|
|
|
|
* config/linux/mutex.h: New file.
|
|
|
|
* config/linux/sem.c: New file.
|
|
|
|
* config/linux/sem.h: New file.
|
|
|
|
* config/linux/i486/futex.h: New file.
|
|
|
|
* config/linux/x86_64/futex.h: New file.
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
|
|
|
|
* libgomp.h: Declare them.
|
|
|
|
* loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
|
|
|
|
gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* libgomp-1 code drop
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_static_next): Return tri-state on 0.
|
|
|
|
* ordered.c (gomp_ordered_static_next): Remove not_last argument.
|
|
|
|
* libgomp.h (struct gomp_team_state): Make static_trip unsigned.
|
|
|
|
(gomp_iter_static_next): Update.
|
|
|
|
(gomp_ordered_static_next): Update.
|
|
|
|
* loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
|
|
|
|
(gomp_loop_ordered_static_start): Likewise. Exit early for a
|
|
|
|
totally empty range.
|
|
|
|
(gomp_loop_ordered_static_next): Refine test for calling
|
|
|
|
gomp_ordered_static_next.
|
|
|
|
* testsuite/ordered-1.c: Add case for more threads than iterations.
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_runtime_next_locked): Remove.
|
|
|
|
* loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
|
2006-07-05 19:32:41 +02:00
|
|
|
gomp_loop_guided_start, gomp_loop_ordered_static_start,
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
|
|
|
|
gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
|
|
|
|
gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
|
|
|
|
gomp_loop_ordered_guided_next): Downcase name, make static, add
|
|
|
|
an external alias with the old name.
|
|
|
|
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
|
|
|
|
GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
|
|
|
|
switch and call one of the above static functions.
|
|
|
|
* libgomp.h: Update.
|
|
|
|
|
|
|
|
* work.c (gomp_work_share_start): Lock the mutex for !first too.
|
|
|
|
* loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
|
|
|
|
GOMP_loop_guided_start, GOMP_loop_runtime_start,
|
|
|
|
GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
|
|
|
|
GOMP_loop_ordered_guided_start): Update to match.
|
|
|
|
* sections.c (GOMP_sections_start): Likewise.
|
|
|
|
* single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
|
|
|
|
|
|
|
|
* ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
|
|
|
|
gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
|
|
|
|
Use bounds check instead of modulus.
|
|
|
|
(gomp_ordered_sync): Split out of GOMP_ordered_start.
|
|
|
|
(gomp_ordered_last): Don't sync with ordered_owner here.
|
|
|
|
(gomp_ordered_next): Likewise.
|
|
|
|
(gomp_ordered_static_loop_next): Likewise.
|
|
|
|
* loop.c, libgomp.h: Update to match.
|
|
|
|
|
|
|
|
* libgomp.h (GOMP_barrier): Declare.
|
|
|
|
|
|
|
|
* testsuite/barrier-1.c: New file.
|
|
|
|
* testsuite/critical-1.c: New file.
|
|
|
|
* testsuite/ordered-2.c: New file.
|
|
|
|
* testsuite/ordered-1.c: New file.
|
|
|
|
* testsuite/sections-1.c: New file.
|
|
|
|
* testsuite/single-1.c: New file.
|
|
|
|
* testsuite/Makefile (TESTS): Add them.
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* libgomp.h (struct gomp_work_share): Add ordered_owner.
|
|
|
|
* loop.c (GOMP_loop_static_start): If not the startup thread,
|
|
|
|
acquire the mutex to wait for initialization complete.
|
|
|
|
(GOMP_loop_ordered_static_start): Likewise.
|
|
|
|
(GOMP_loop_ordered_runtime_start): Likewise.
|
|
|
|
(GOMP_loop_ordered_static_first): Remove.
|
|
|
|
(GOMP_loop_ordered_dynamic_first): Remove.
|
|
|
|
(GOMP_loop_ordered_guided_first): Remove.
|
|
|
|
(GOMP_loop_ordered_runtime_first): Remove.
|
|
|
|
* ordered.c (gomp_ordered_loop_first): Post to own release when
|
|
|
|
we're the first thread.
|
|
|
|
(gomp_ordered_loop_last): Wait on release if not owner.
|
|
|
|
(gomp_ordered_loop_next): Likewise.
|
|
|
|
(gomp_ordered_static_loop_init): New.
|
|
|
|
(gomp_ordered_static_loop_next): Use ordered_owner.
|
|
|
|
(GOMP_ordered_start): Likewise.
|
|
|
|
* work.c (gomp_new_work_share): Initialize ordered_owner.
|
|
|
|
|
|
|
|
2005-05-03 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* Makefile (OPT): New.
|
|
|
|
(CFLAGS): Use it.
|
|
|
|
|
|
|
|
* loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
|
|
|
|
* sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
|
|
|
|
* libgomp.h, libgomp.map, NOTES: Update to match.
|
|
|
|
|
|
|
|
* team.c (struct gomp_thread_start_data): Remove ts, fn, data.
|
|
|
|
Add initialized and thr members.
|
|
|
|
(gomp_thread_start): Pause when initially spawned to wait for
|
|
|
|
the whole team to be created.
|
|
|
|
(gomp_team_start): Release team members at the end.
|
|
|
|
|
|
|
|
* testsuite/loop-1.c (N): New. Use it instead of hardcoded 100.
|
|
|
|
(f_foo_1): Use GOMP_loop_end.
|
|
|
|
(f_foo_2): Use GOMP_loop_end_nowait.
|
|
|
|
|
|
|
|
* testsuite/loop-2.c: New file.
|
|
|
|
* testsuite/Makefile (TESTS): Add it.
|
|
|
|
|
|
|
|
2005-05-03 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_static_next): Fix overflow check typo.
|
|
|
|
(gomp_iter_dynamic_next_locked): Fix overflow check thinko.
|
|
|
|
* team.c (new_team): Initialize oldest_live_gen to 1 if no
|
|
|
|
initial work_share.
|
|
|
|
|
|
|
|
* testsuite/Makefile: New file.
|
|
|
|
* testsuite/loop-1.c: New file.
|
|
|
|
|
|
|
|
2005-05-03 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
Initial implementation and checkin.
|