1 2015-10-14 Ilya Verbin <ilya.verbin@intel.com>
2 Aleksander Ivanushenko <aleksander.ivanushenko@intel.com>
4 * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
7 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
9 * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
10 Cast to int from int32_t.
12 2015-10-13 Jakub Jelinek <jakub@redhat.com>
13 Aldy Hernandez <aldyh@redhat.com>
14 Ilya Verbin <ilya.verbin@intel.com>
16 * config/linux/affinity.c (omp_get_place_num_procs,
17 omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
18 * config/linux/doacross.h: New file.
19 * config/posix/affinity.c (omp_get_place_num_procs,
20 omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
21 * config/posix/doacross.h: New file.
22 * env.c: Include gomp-constants.h.
23 (struct gomp_task_icv): Rename run_sched_modifier to
25 (gomp_max_task_priority_var): New variable.
26 (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
27 (handle_omp_display_env): Change _OPENMP value from 201307 to
28 201511. Print OMP_MAX_TASK_PRIORITY.
29 (initialize_env): Parse OMP_MAX_TASK_PRIORITY.
30 (omp_set_schedule, omp_get_schedule): Rename modifier argument to
31 chunk_size and run_sched_modifier to run_sched_chunk_size.
32 (omp_get_max_task_priority, omp_get_initial_device,
33 omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
34 omp_get_partition_place_nums): New functions.
35 * fortran.c (omp_set_schedule_, omp_set_schedule_8_,
36 omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
38 (omp_get_num_places_, omp_get_place_num_procs_,
39 omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
40 omp_get_place_proc_ids_8_, omp_get_place_num_,
41 omp_get_partition_num_places_, omp_get_partition_place_nums_,
42 omp_get_partition_place_nums_8_, omp_get_initial_device_,
43 omp_get_max_task_priority_): New functions.
44 * libgomp_g.h (GOMP_loop_doacross_static_start,
45 GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
46 GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
47 GOMP_loop_ull_doacross_dynamic_start,
48 GOMP_loop_ull_doacross_guided_start,
49 GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
50 GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
51 GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
52 GOMP_target_data_41, GOMP_target_update_41,
53 GOMP_target_enter_exit_data): New prototypes.
54 (GOMP_task): Add prototype argument.
55 * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
56 (struct gomp_doacross_work_share): New type.
57 (struct gomp_work_share): Add doacross field.
58 (struct gomp_task_icv): Rename run_sched_modifier to
60 (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
61 GOMP_TASK_UNDEFERRED. Add comments.
62 (struct gomp_task_depend_entry): Add comments.
63 (struct gomp_task): Likewise.
64 (struct gomp_taskgroup): Likewise.
65 (struct gomp_target_task): New type.
66 (struct gomp_team): Add comment.
67 (gomp_get_place_proc_ids_8, gomp_doacross_init,
68 gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
69 gomp_create_target_task, gomp_target_task_fn): New prototypes.
70 (struct target_var_desc): New type.
71 (struct target_mem_desc): Adjust comment. Use struct
72 target_var_desc instead of splay_tree_key for list.
73 (REFCOUNT_INFINITY): Define.
74 (struct splay_tree_key_s): Remove copy_from field.
75 (struct gomp_device_descr): Add dev2dev_func field.
76 (enum gomp_map_vars_kind): New enum.
77 (gomp_map_vars): Add one argument.
78 * libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
79 omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
80 omp_get_place_num_procs, omp_get_place_num_procs_,
81 omp_get_place_num_procs_8_, omp_get_place_proc_ids,
82 omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
83 omp_get_place_num_, omp_get_partition_num_places,
84 omp_get_partition_num_places_, omp_get_partition_place_nums,
85 omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
86 omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
87 omp_target_free, omp_target_is_present, omp_target_memcpy,
88 omp_target_memcpy_rect, omp_target_associate_ptr and
89 omp_target_disassociate_ptr.
90 (GOMP_4.0.2): Renamed to ...
91 (GOMP_4.5): ... this. Export GOMP_target_41, GOMP_target_data_41,
92 GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
93 GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
94 GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
95 GOMP_loop_doacross_static_start, GOMP_doacross_post,
96 GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
97 GOMP_loop_ull_doacross_guided_start,
98 GOMP_loop_ull_doacross_runtime_start,
99 GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
100 GOMP_doacross_ull_wait.
101 * libgomp.texi: Document omp_get_max_task_priority.
102 Rename modifier argument to chunk_size for omp_set_schedule and
103 omp_get_schedule. Document OMP_MAX_TASK_PRIORITY env var.
104 * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
105 to run_sched_chunk_size renaming.
106 (GOMP_loop_ordered_runtime_start): Likewise.
107 (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
108 gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
109 GOMP_parallel_loop_runtime_start): New functions.
110 (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
111 to run_sched_chunk_size renaming.
112 (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
113 GOMP_loop_doacross_guided_start): New functions or aliases.
114 * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
115 run_sched_modifier to run_sched_chunk_size renaming.
116 (GOMP_loop_ull_ordered_runtime_start): Likewise.
117 (gomp_loop_ull_doacross_static_start,
118 gomp_loop_ull_doacross_dynamic_start,
119 gomp_loop_ull_doacross_guided_start,
120 GOMP_loop_ull_doacross_runtime_start): New functions.
121 (GOMP_loop_ull_doacross_static_start,
122 GOMP_loop_ull_doacross_dynamic_start,
123 GOMP_loop_ull_doacross_guided_start): New functions or aliases.
124 * oacc-mem.c (acc_map_data, present_create_copy,
125 gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
127 (gomp_acc_remove_pointer): Use copy_from from target_var_desc.
128 * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
129 instead of false to gomp_map_vars.
130 (GOACC_parallel_keyed): Likewise. Use copy_from from target_var_desc.
131 * omp.h.in (omp_lock_hint_t): New type.
132 (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
133 omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
134 omp_get_place_num, omp_get_partition_num_places,
135 omp_get_partition_place_nums, omp_get_initial_device,
136 omp_get_max_task_priority, omp_target_alloc, omp_target_free,
137 omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
138 omp_target_associate_ptr, omp_target_disassociate_ptr): New
140 * omp_lib.f90.in (omp_lock_hint_kind): New parameter.
141 (omp_lock_hint_none, omp_lock_hint_uncontended,
142 omp_lock_hint_contended, omp_lock_hint_nonspeculative,
143 omp_lock_hint_speculative): New parameters.
144 (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
145 omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
146 omp_get_place_num, omp_get_partition_num_places,
147 omp_get_partition_place_nums, omp_get_initial_device,
148 omp_get_max_task_priority): New interfaces.
149 (omp_set_schedule, omp_get_schedule): Rename modifier argument
151 * omp_lib.h.in (omp_lock_hint_kind): New parameter.
152 (omp_lock_hint_none, omp_lock_hint_uncontended,
153 omp_lock_hint_contended, omp_lock_hint_nonspeculative,
154 omp_lock_hint_speculative): New parameters.
155 (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
156 omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
157 omp_get_place_num, omp_get_partition_num_places,
158 omp_get_partition_place_nums, omp_get_initial_device,
159 omp_get_max_task_priority): New functions and subroutines.
160 * ordered.c: Include stdarg.h and string.h.
161 (MAX_COLLAPSED_BITS): Define.
162 (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
163 gomp_doacross_ull_init, GOMP_doacross_ull_post,
164 GOMP_doacross_ull_wait): New functions.
165 * target.c: Include errno.h.
166 (resolve_device): If device is not initialized, call
167 gomp_init_device on it.
168 (gomp_map_lookup): New function.
169 (gomp_map_vars_existing): Add tgt_var argument, fill it in.
170 Don't bump refcount if REFCOUNT_INFINITY. Handle
171 GOMP_MAP_ALWAYS_TO_P.
172 (get_kind): Rename is_openacc argument to short_mapkind.
173 (gomp_map_pointer): Use gomp_map_lookup.
174 (gomp_map_fields_existing): New function.
175 (gomp_map_vars): Rename is_openacc argument to short_mapkind
176 and is_target to pragma_kind. Handle GOMP_MAP_VARS_ENTER_DATA,
177 handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
178 GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
179 Adjust for tgt->list changed type and copy_from living in there.
180 (gomp_copy_from_async): Adjust for tgt->list changed type and
181 copy_from living in there.
182 (gomp_unmap_vars): Likewise.
183 (gomp_update): Likewise. Rename is_openacc argument to
184 short_mapkind. Don't fail if object is not mapped.
185 (gomp_load_image_to_device): Initialize refcount to
187 (gomp_target_fallback): New function.
188 (gomp_get_target_fn_addr): Likewise.
189 (GOMP_target): Adjust gomp_map_vars caller, use
190 gomp_get_target_fn_addr and gomp_target_fallback.
191 (GOMP_target_41): New function.
192 (gomp_target_data_fallback): New function.
193 (GOMP_target_data): Use it, adjust gomp_map_vars caller.
194 (GOMP_target_data_41): New function.
195 (GOMP_target_update): Adjust gomp_update caller.
196 (GOMP_target_update_41): New function.
197 (gomp_exit_data, GOMP_target_enter_exit_data,
198 gomp_target_task_fn, omp_target_alloc, omp_target_free,
199 omp_target_is_present, omp_target_memcpy,
200 omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
201 omp_target_associate_ptr, omp_target_disassociate_ptr,
202 gomp_load_plugin_for_device): New functions.
203 * task.c: Include gomp-constants.h. Include taskloop.c
204 twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
205 (gomp_task_handle_depend): New function.
206 (GOMP_task): Use it. Add priority argument. Use
207 gomp-constant.h constants instead of hardcoded numbers.
208 Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
209 (gomp_create_target_task): New function.
210 (verify_children_queue, verify_taskgroup_queue,
211 verify_task_queue): New functions.
212 (gomp_task_run_pre): Call verify_*_queue functions.
213 If an upcoming tied task is about to leave the sibling or
214 taskgroup queues in an invalid state, adjust appropriately.
215 Remove taskgroup argument. Add comments.
216 (gomp_task_run_post_handle_dependers): Add comments.
217 (gomp_task_run_post_remove_parent): Likewise.
218 (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
219 (GOMP_taskwait): Likewise. Add comments.
220 (gomp_task_maybe_wait_for_dependencies): Fix scheduling
221 problem such that the first non parent_depends_on task does not
222 end up at the end of the children queue.
223 (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
224 GOMP_TASK_UNDEFERRED.
225 (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
226 * taskloop.c: New file.
227 * testsuite/lib/libgomp.exp
228 (check_effective_target_offload_device_nonshared_as): New proc.
229 * testsuite/libgomp.c/affinity-2.c: New test.
230 * testsuite/libgomp.c/doacross-1.c: New test.
231 * testsuite/libgomp.c/doacross-2.c: New test.
232 * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
233 Add map clause to target.
234 * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
235 * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
236 * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
237 * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
238 * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
240 * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
241 * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
242 * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
243 * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
244 not defined. Use those where needed.
245 * testsuite/libgomp.c/for-4.c: New test.
246 * testsuite/libgomp.c/for-5.c: New test.
247 * testsuite/libgomp.c/for-6.c: New test.
248 * testsuite/libgomp.c/linear-1.c: New test.
249 * testsuite/libgomp.c/ordered-4.c: New test.
250 * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
251 only allowed on the loop iterator.
252 * testsuite/libgomp.c/pr66199-3.c: New test.
253 * testsuite/libgomp.c/pr66199-4.c: New test.
254 * testsuite/libgomp.c/reduction-7.c: New test.
255 * testsuite/libgomp.c/reduction-8.c: New test.
256 * testsuite/libgomp.c/reduction-9.c: New test.
257 * testsuite/libgomp.c/reduction-10.c: New test.
258 * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
260 * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
261 * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
262 * testsuite/libgomp.c/target-11.c: New test.
263 * testsuite/libgomp.c/target-12.c: New test.
264 * testsuite/libgomp.c/target-13.c: New test.
265 * testsuite/libgomp.c/target-14.c: New test.
266 * testsuite/libgomp.c/target-15.c: New test.
267 * testsuite/libgomp.c/target-16.c: New test.
268 * testsuite/libgomp.c/target-17.c: New test.
269 * testsuite/libgomp.c/target-18.c: New test.
270 * testsuite/libgomp.c/target-19.c: New test.
271 * testsuite/libgomp.c/target-20.c: New test.
272 * testsuite/libgomp.c/target-21.c: New test.
273 * testsuite/libgomp.c/target-22.c: New test.
274 * testsuite/libgomp.c/target-23.c: New test.
275 * testsuite/libgomp.c/target-24.c: New test.
276 * testsuite/libgomp.c/target-25.c: New test.
277 * testsuite/libgomp.c/target-26.c: New test.
278 * testsuite/libgomp.c/target-27.c: New test.
279 * testsuite/libgomp.c/taskloop-1.c: New test.
280 * testsuite/libgomp.c/taskloop-2.c: New test.
281 * testsuite/libgomp.c/taskloop-3.c: New test.
282 * testsuite/libgomp.c/taskloop-4.c: New test.
283 * testsuite/libgomp.c++/ctor-13.C: New test.
284 * testsuite/libgomp.c++/doacross-1.C: New test.
285 * testsuite/libgomp.c++/examples-4/declare_target-2.C:
286 Replace offload_device with offload_device_nonshared_as.
287 * testsuite/libgomp.c++/for-12.C: New test.
288 * testsuite/libgomp.c++/for-13.C: New test.
289 * testsuite/libgomp.c++/for-14.C: New test.
290 * testsuite/libgomp.c++/linear-1.C: New test.
291 * testsuite/libgomp.c++/member-1.C: New test.
292 * testsuite/libgomp.c++/member-2.C: New test.
293 * testsuite/libgomp.c++/member-3.C: New test.
294 * testsuite/libgomp.c++/member-4.C: New test.
295 * testsuite/libgomp.c++/member-5.C: New test.
296 * testsuite/libgomp.c++/ordered-1.C: New test.
297 * testsuite/libgomp.c++/reduction-5.C: New test.
298 * testsuite/libgomp.c++/reduction-6.C: New test.
299 * testsuite/libgomp.c++/reduction-7.C: New test.
300 * testsuite/libgomp.c++/reduction-8.C: New test.
301 * testsuite/libgomp.c++/reduction-9.C: New test.
302 * testsuite/libgomp.c++/reduction-10.C: New test.
303 * testsuite/libgomp.c++/reference-1.C: New test.
304 * testsuite/libgomp.c++/simd14.C: New test.
305 * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
306 * testsuite/libgomp.c++/target-5.C: New test.
307 * testsuite/libgomp.c++/target-6.C: New test.
308 * testsuite/libgomp.c++/target-7.C: New test.
309 * testsuite/libgomp.c++/target-8.C: New test.
310 * testsuite/libgomp.c++/target-9.C: New test.
311 * testsuite/libgomp.c++/target-10.C: New test.
312 * testsuite/libgomp.c++/target-11.C: New test.
313 * testsuite/libgomp.c++/target-12.C: New test.
314 * testsuite/libgomp.c++/taskloop-1.C: New test.
315 * testsuite/libgomp.c++/taskloop-2.C: New test.
316 * testsuite/libgomp.c++/taskloop-3.C: New test.
317 * testsuite/libgomp.c++/taskloop-4.C: New test.
318 * testsuite/libgomp.c++/taskloop-5.C: New test.
319 * testsuite/libgomp.c++/taskloop-6.C: New test.
320 * testsuite/libgomp.c++/taskloop-7.C: New test.
321 * testsuite/libgomp.c++/taskloop-8.C: New test.
322 * testsuite/libgomp.c++/taskloop-9.C: New test.
323 * testsuite/libgomp.fortran/affinity1.f90: New test.
324 * testsuite/libgomp.fortran/affinity2.f90: New test.
326 2015-10-13 Tom de Vries <tom@codesourcery.com>
328 PR tree-optimization/67476
329 * testsuite/libgomp.c/autopar-3.c: New test.
330 * testsuite/libgomp.c/autopar-4.c: New test.
331 * testsuite/libgomp.c/autopar-5.c: New test.
332 * testsuite/libgomp.c/autopar-6.c: New test.
333 * testsuite/libgomp.c/autopar-7.c: New test.
334 * testsuite/libgomp.c/autopar-8.c: New test.
336 2015-10-12 James Norris <jnorris@codesourcery.com>
338 * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
341 2015-10-09 David Malcolm <dmalcolm@redhat.com>
343 * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
346 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
348 * oacc-ptx.h: Remove file, moving its content into...
349 * config/nvptx/fortran.c: ... here...
350 * config/nvptx/oacc-init.c: ..., here...
351 * config/nvptx/oacc-parallel.c: ..., and here.
352 * config/nvptx/openacc.f90: New file.
353 * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
354 (link_ptx): Don't link in predefined bits of PTX code.
356 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
357 Bernd Schmidt <bernds@codesourcery.com>
359 * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
360 (struct targ_ptx_obj): New.
361 (nvptx_tdata): Move earlier, change data format.
362 (link_ptx): Take targ_ptx_obj ptr and count. Allow multiple
364 (GOMP_OFFLOAD_load_image): Adjust.
366 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
368 * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
369 * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
370 * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
371 * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
372 * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
373 * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
374 * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
375 * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
376 * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
377 * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
378 * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
379 * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
380 * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
381 * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
382 * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
383 * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
384 * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
385 * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
386 * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
387 * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
388 * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
389 * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
390 * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
391 * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
392 * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
393 * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
394 * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
395 * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
396 * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
397 * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
398 * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
399 * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
400 * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
401 * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
402 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
403 * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
404 * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
405 * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
406 * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
407 * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
408 * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
409 * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
410 * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
411 * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
412 * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
413 * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
414 * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
415 * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
416 * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
417 * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
418 * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
419 * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
420 * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
421 * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
422 * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
423 * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
424 * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
425 * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
426 * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
427 * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
428 * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
429 * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
430 * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
432 2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
434 * oacc-init.c (acc_on_device): Force optimization level.
436 2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
438 * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
439 (cuda_errlist): Delete.
440 (cuda_error): Reimplement.
442 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
444 * libgomp.h (acc_dispatch_t): Replace separate geometry args with
446 * libgomp.map (GOACC_parallel_keyed): New.
447 * oacc-parallel.c (goacc_wait): Take pointer to va_list. Adjust
449 (GOACC_parallel_keyed): New interface. Lose geometry arguments
450 and take keyed varargs list. Adjust call to exec_func.
451 (GOACC_parallel): Force host fallback.
452 * libgomp_g.h (GOACC_parallel): Remove.
453 (GOACC_parallel_keyed): Declare.
454 * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
455 (stuct targ_gn_descriptor): Replace name field with launch field.
456 (nvptx_exec): Lose separate geometry args, take array. Process
457 dynamic dimensions and adjust.
458 (struct nvptx_tdata): Replace fn_names field with fn_descs.
459 (GOMP_OFFLOAD_load_image): Adjust for change in function table
461 (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
463 * oacc-host.c (host_openacc_exec): Adjust for change in dimension
466 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
469 * oacc-int.h (goacc_host_init): Add declaration.
470 * oacc-host.c (goacc_host_init): Remove static and constructor attribute.
471 * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
473 2015-09-08 Aditya Kumar <hiraditya@msn.com>
474 Sebastian Pop <s.pop@samsung.com>
476 * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
478 * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
479 * testsuite/libgomp.graphite/force-parallel-4.c: Same.
480 * testsuite/libgomp.graphite/force-parallel-5.c: Same.
481 * testsuite/libgomp.graphite/force-parallel-7.c: Same.
482 * testsuite/libgomp.graphite/force-parallel-8.c: Same.
484 2015-09-03 Jakub Jelinek <jakub@redhat.com>
486 * configure.tgt: Add missing ;; in between nvptx and rtems
489 2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
491 * config/posix/pool.h (gomp_adjust_thread_attr): New.
492 * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
493 (gomp_thread_pool_reservoir): Add priority member.
494 * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
496 (parse_thread_pools): Likewise.
497 * team.c (gomp_team_start): Call configuration provided
498 gomp_adjust_thread_attr(). Destroy thread attributes if
500 * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
502 2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
504 * config/posix/pool.h: New.
505 * config/rtems/pool.h: Likewise.
506 * config/rtems/proc.c: Likewise.
507 * libgomp.h (gomp_thread_destructor): Declare.
508 * team.c: Include configuration provided "pool.h".
509 (gomp_get_thread_pool): Define in configuration.
510 (gomp_team_end): Call configuration defined
511 gomp_release_thread_pool().
513 2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
515 * config/rtems/bar.c: New.
516 * config/rtems/bar.h: Likewise.
517 * config/rtems/mutex.c: Likewise.
518 * config/rtems/mutex.h: Likewise.
519 * config/rtems/sem.c: Likewise.
520 * config/rtems/sem.h: Likewise.
521 * configure.ac (*-*-rtems*): Check that Newlib provides a proper
522 <sys/lock.h> header file.
523 * configure.tgt (*-*-rtems*): Enable RTEMS configuration if
525 * configure: Regenerate.
527 2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
529 * team.c (gomp_new_thread_pool): Delete and move content to ...
530 (gomp_get_thread_pool): ... new function. Allocate and
531 initialize thread pool on demand.
532 (get_last_team): Use gomp_get_thread_pool().
533 (gomp_team_start): Delete thread pool initialization.
535 2015-09-03 Tom de Vries <tom@codesourcery.com>
537 PR tree-optimization/65637
538 * testsuite/libgomp.c/autopar-2.c: New test.
540 2015-08-29 Tom de Vries <tom@codesourcery.com>
542 PR tree-optimization/46193
543 * testsuite/libgomp.c/pr46193.c: New test.
545 2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
548 * libgomp.map: Add 4.0.2 version.
549 * target.c (offload_image_descr): Add version field.
550 (gomp_load_image_to_device): Add version argument. Adjust plugin
551 call. Improve load mismatch diagnostic.
552 (gomp_unload_image_from_device): Add version argument. Adjust plugin
554 (GOMP_offload_regster): Make stub function, move bulk to ...
555 (GOMP_offload_register_ver): ... here. Process version argument.
556 (GOMP_offload_unregister): Make stub function, move bulk to ...
557 (GOMP_offload_unregister_ver): ... here. Process version argument.
558 (gomp_init_device): Process version field.
559 (gomp_unload_device): Process version field.
560 (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
561 macros. Check plugin version.
562 * libgomp.h (gomp_device_descr): Add version function field. Adjust
563 loader and unloader types.
564 * oacc-host.c: Include gomp-constants.h.
566 (host_load_image, host_unload_image): Adjust.
567 (host_dispatch): Add host_version.
568 * plugin/plugin-nvptx.c: Include gomp-constants.h.
569 (GOMP_OFFLOAD_version): New.
570 (GOMP_OFFLOAD_load_image): Add version arg and check it.
571 (GOMP_OFFLOAD_unload_image): Likewise.
572 * plugin/plugin-host.c: Include gomp-constants.h.
573 (GOMP_OFFLOAD_version): New.
574 (GOMP_OFFLOAD_load_image): Add version arg.
575 (GOMP_OFFLOAD_unload_image): Likewise.
577 2015-08-24 Tom de Vries <tom@codesourcery.com>
579 PR tree-optimization/65468
580 * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
582 2015-08-24 Tom de Vries <tom@codesourcery.com>
584 PR tree-optimization/65468
585 * testsuite/libgomp.c/static-chunk-size-one.c: New test.
587 2015-08-24 Joost VandeVondele <vondele@gnu.gcc.org>
591 * iter.c (gomp_iter_dynamic_next): Employ an atomic load.
592 (gomp_iter_guided_next): Idem.
593 * iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
594 (gomp_iter_ull_guided_next): Idem.
595 * config/linux/wait.h (do_spin): Idem.
597 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
599 * libgomp-plugin.h (enum offload_target_type): Remove
600 OFFLOAD_TARGET_TYPE_HOST_NONSHM.
601 * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
602 * openacc.h (enum acc_device_t): Likewise.
603 * openacc_lib.h: Likewise.
604 * oacc-init.c (name_of_acc_device_t): Don't handle it.
605 (acc_on_device): Just use __builtin_acc_on_device.
606 * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
607 of acc_on_device builtin.
608 * plugin/plugin-host.h: Remove file.
609 * plugin/plugin-host.c: Likewise, but salvage some content into...
610 * oacc-host.c: ... this file.
611 * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
612 * plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
613 * Makefile.in: Regenerate.
614 * configure: Likewise.
615 * testsuite/lib/libgomp.exp
616 (check_effective_target_openacc_host_nonshm_selected): Remove.
617 * testsuite/libgomp.oacc-c++/c++.exp: Don't handle
618 ACC_DEVICE_TYPE=host_nonshm.
619 * testsuite/libgomp.oacc-c/c.exp: Likewise.
620 * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
621 * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
622 * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
623 * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
624 * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
626 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
627 Jakub Jelinek <jakub@redhat.com>
629 * config/nvptx/affinity.c: New file.
630 * config/nvptx/alloc.c: Likewise.
631 * config/nvptx/bar.c: Likewise.
632 * config/nvptx/barrier.c: Likewise.
633 * config/nvptx/critical.c: Likewise.
634 * config/nvptx/env.c: Likewise.
635 * config/nvptx/error.c: Likewise.
636 * config/nvptx/fortran.c: Likewise.
637 * config/nvptx/iter.c: Likewise.
638 * config/nvptx/iter_ull.c: Likewise.
639 * config/nvptx/libgomp-plugin.c: Likewise.
640 * config/nvptx/lock.c: Likewise.
641 * config/nvptx/loop.c: Likewise.
642 * config/nvptx/loop_ull.c: Likewise.
643 * config/nvptx/mutex.c: Likewise.
644 * config/nvptx/oacc-async.c: Likewise.
645 * config/nvptx/oacc-cuda.c: Likewise.
646 * config/nvptx/oacc-host.c: Likewise.
647 * config/nvptx/oacc-init.c: Likewise.
648 * config/nvptx/oacc-mem.c: Likewise.
649 * config/nvptx/oacc-parallel.c: Likewise.
650 * config/nvptx/oacc-plugin.c: Likewise.
651 * config/nvptx/omp-lock.h: Likewise.
652 * config/nvptx/ordered.c: Likewise.
653 * config/nvptx/parallel.c: Likewise.
654 * config/nvptx/proc.c: Likewise.
655 * config/nvptx/ptrlock.c: Likewise.
656 * config/nvptx/sections.c: Likewise.
657 * config/nvptx/sem.c: Likewise.
658 * config/nvptx/single.c: Likewise.
659 * config/nvptx/splay-tree.c: Likewise.
660 * config/nvptx/target.c: Likewise.
661 * config/nvptx/task.c: Likewise.
662 * config/nvptx/team.c: Likewise.
663 * config/nvptx/time.c: Likewise.
664 * config/nvptx/work.c: Likewise.
665 * configure.ac: Don't probe pthreads support for host nvptx*-*-*.
666 * configure: Regenerate.
667 * configure.tgt (config_path): Set to "nvptx" for target
670 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
672 * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
674 2015-08-03 Nathan Sidwell <nathan@codesourcery.com>
676 * plugin/plugin-nvptx.c: Don't include dlfcn.h.
677 (cuda_errlist): Constify.
678 (errmsg): Move into ...
679 (cuda_error): ... here. Make smaller.
680 (_XSTR, _STR): Delete.
681 (cuda_synames): Delete.
682 (verify_device_library): Delete.
683 (nvptx_init): Don't call it.
685 2015-07-28 Tom de Vries <tom@codesourcery.com>
687 * testsuite/libgomp.c/uns-outer-4.c: New test.
689 2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
691 * testsuite/libgomp.c/pr66714.c: New test.
693 2015-07-22 Maxim Blumenthal <maxim.blumenthal@intel.com>
696 * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
697 (fib_ref): New function.
698 (fib): Correct corner cases in the recursion.
699 (main): Replace the non-simd loop with fib_ref call.
700 * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
702 (fibonacci): Lower the parameter N to 30. Correct accordingly check
703 for the last array element value. Replace the non-simd loop with
704 fib_ref call. Remove redundant b_ref array. Remove the comparison
705 of the last array element with according Fibonacci sequence element.
706 (fib): Correct corner cases in the recursion.
708 2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
710 * target.c (gomp_offload_image_to_device): Rename to ...
711 (gomp_load_image_to_device): ... here.
712 (GOMP_offload_register): Adjust call.
713 (gomp_init_device): Likewise.
714 (gomp_unload_image_from_device): New. Broken out of ...
715 (GOMP_offload_unregister): ... here. Call it.
716 (gomp_unload_device): New.
717 * libgomp.h (gomp_unload_device): Declare.
718 * oacc-init.c (acc_shutdown_1): Unload from device before deleting
721 2015-07-20 Nathan Sidwell <nathan@codesourcery.com>
723 * oacc-parallel.c (GOACC_parallel): Move variadic handling into
725 (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
727 (goacc_waits): Move !num_waits handling to ...
728 (GOACC_wait): ... here, the only caller that might have zero waits.
730 * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
731 (struct ptx_image_data): Move earlier, add fns field.
732 (struct ptx_device): Add images and image_lock fields.
733 (ptx_images, ptx_image_lock): Delete.
734 (nvptx_open_device): Initialize images and image_lock fields.
735 (nvptx_close_device): Destroy image_lock.
736 (GOMP_OFFLOAD_load_image): Register image to device-specific fields.
737 (GOMP_OFFLOAD_unload_image): Unregister image from device-specific
740 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
742 * target.c (GOMP_offload_register): Use int for device type arg.
743 (GOMP_offload_unregister): Likewise.
745 * target.c (struct_offload_image_descr): Constify host_table.
746 (gomp_offload_image_to_device): Likewise.
747 (GOMP_offload_register, GOMP_offload_unregister): Likewise.
749 * libgomp.h (gomp_device_descr): Constify target data arguments.
750 * target.c (struct offload_image_descr): Constify target_data.
751 (gomp_offload_image_to_device): Likewise.
752 (GOMP_offload_register): Likewise.
753 (GOMP_offload_unrefister): Likewise.
754 * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
755 GOMP_OFFLOAD_unload_image): Constify target data.
756 * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
757 (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
759 2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
761 * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
762 Workaround driver library const error.
763 (struct nvptx_tdata, nvptx_tdata_t): New.
764 (GOMP_OFFLOAD_load_image): Use struct for target_data's real
767 2015-07-15 Maxim Blumenthal <maxim.blumenthal@intel.com>
769 * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
770 of EPS parameter from integer to real.
771 * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
772 type of EPS parameter from integer to real.
774 2015-07-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
776 * team.c (get_last_team): New.
777 (gomp_new_team): Recycle last non-nested team if possible.
778 (gomp_team_end): Move team work share list free lock destruction
780 (free_team): ... here.
782 2015-07-14 Maxim Blumenthal <maxim.blumenthal@intel.com>
784 * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
785 and ref from int to double. Replaced their comparison with
786 an inequality of their difference and EPS.
787 * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
788 comparison of pri and a reference number with an inequality of their
790 * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
791 the comparison of sum and sum_ref with an inequality of their
793 * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
794 the comparison of pri and a reference number with an inequality of
795 their difference and EPS.
797 2015-07-13 Maxim Blumenthal <maxim.blumenthal@intel.com>
799 * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
800 * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
801 * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
802 * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
803 * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
804 * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
805 * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
806 * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
807 * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
808 * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
809 * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
810 * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
811 (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
813 (vec_mult): Likewise. Add #pragma omp taskwait.
814 (main): Adjust caller.
815 * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
816 * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
817 * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
818 * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
819 * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
820 * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
821 * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
822 * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
823 * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
824 * testsuite/libgomp.c/examples-4/device-1.c: ...this.
825 * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
826 * testsuite/libgomp.c/examples-4/device-2.c: ...this.
827 * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
828 * testsuite/libgomp.c/examples-4/device-3.c: ...this.
829 * testsuite/libgomp.c/examples-4/simd-1.c: New file.
830 * testsuite/libgomp.c/examples-4/simd-2.c: New file.
831 * testsuite/libgomp.c/examples-4/simd-3.c: New file.
832 * testsuite/libgomp.c/examples-4/simd-4.c: New file.
833 * testsuite/libgomp.c/examples-4/simd-5.c: New file.
834 * testsuite/libgomp.c/examples-4/simd-6.c: New file.
835 * testsuite/libgomp.c/examples-4/simd-7.c: New file.
836 * testsuite/libgomp.c/examples-4/simd-8.c: New file.
837 * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
838 * testsuite/libgomp.c/examples-4/target-1.c: ...this.
839 * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
840 * testsuite/libgomp.c/examples-4/target-2.c: ...this.
841 * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
842 * testsuite/libgomp.c/examples-4/target-3.c: ...this.
843 * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
844 * testsuite/libgomp.c/examples-4/target-4.c: ...this.
845 * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
846 * testsuite/libgomp.c/examples-4/target-5.c: ...this.
847 * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
848 * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
849 * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
850 * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
851 * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
852 * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
853 * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
854 * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
855 * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
856 * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
857 * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
858 * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
859 * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
860 * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
861 * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
862 * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
863 * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
864 * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
865 * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
866 * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
867 * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
868 * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
869 * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
870 * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
871 * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
872 * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
873 * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
874 * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
875 * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
876 * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
877 * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
878 * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
879 * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
880 * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
881 * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
882 * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
883 * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
884 * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
885 * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
886 (vec_mult): Add !$omp taskwait.
887 * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
888 * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
889 * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
890 * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
891 * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
892 * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
893 * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
894 * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
895 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
896 * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
897 * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
898 * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
899 * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
900 * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
901 * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
902 * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
903 * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
904 * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
905 * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
906 * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
907 * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
908 * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
909 * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
910 * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
911 * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
912 * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
913 * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
914 * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
915 * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
916 * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
917 * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
918 * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
919 * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
920 * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
921 * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
922 * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
923 * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
924 * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
925 * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
926 * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
927 * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
928 * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
929 * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
930 * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
931 * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
932 * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
933 * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
934 * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
935 * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
936 * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
937 * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
938 * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
939 * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
940 * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
941 * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
942 * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
943 * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
944 * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
945 * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
946 * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
947 * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
948 * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
949 * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
950 * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
951 * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
952 * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
953 * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
955 2015-07-10 Tom de Vries <tom@codesourcery.com>
957 * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
958 * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
960 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
963 * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
964 in a 64-bit configuration.
965 * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
966 offloading testing if no such device is available.
967 * testsuite/libgomp.oacc-c/c.exp: Likewise.
968 * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
970 2015-07-08 Tom de Vries <tom@codesourcery.com>
972 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
974 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
976 2015-07-07 Tom de Vries <tom@codesourcery.com>
978 PR tree-optimization/66642
979 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
980 iteration count case.
981 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
982 function, factor out of ...
983 (main): ... here. Test low iteration count case.
985 2015-07-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
987 * libgomp.h (gomp_thread_pool): Comment last_team field.
989 2015-07-02 Uros Bizjak <ubizjak@gmail.com>
991 * testsuite/libgomp.c++/pr66702-1.C: Require
992 vect_simd_clones effective target.
993 * testsuite/libgomp.c++/pr66702-2.C: Ditto.
995 2015-06-30 Tom de Vries <tom@codesourcery.com>
997 * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
998 already set. Use DEFAULT_CFLAGS in dg-runtest.
999 * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
1002 2015-06-30 Tom de Vries <tom@codesourcery.com>
1004 * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
1005 already set. Use DEFAULT_CFLAGS in dg-runtest.
1006 * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
1007 * testsuite/libgomp.c++/pr64824.C: Same.
1008 * testsuite/libgomp.c++/pr64868.C: Same.
1009 * testsuite/libgomp.c++/pr66199-1.C: Same.
1010 * testsuite/libgomp.c++/pr66199-2.C: Same.
1011 * testsuite/libgomp.c++/target-2.C: Same.
1012 * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
1013 -std=<standard> option.
1014 * testsuite/libgomp.c++/udr-11.C: Same.
1015 * testsuite/libgomp.c++/udr-12.C: Same.
1016 * testsuite/libgomp.c++/udr-13.C: Same.
1017 * testsuite/libgomp.c++/udr-14.C: Same.
1018 * testsuite/libgomp.c++/udr-15.C: Same.
1019 * testsuite/libgomp.c++/udr-16.C: Same.
1020 * testsuite/libgomp.c++/udr-17.C: Same.
1021 * testsuite/libgomp.c++/udr-18.C: Same.
1022 * testsuite/libgomp.c++/udr-19.C: Same.
1023 * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
1024 * testsuite/libgomp.c++/simd-1.C: Same.
1025 * testsuite/libgomp.c++/simd-2.C: Same.
1026 * testsuite/libgomp.c++/simd-3.C: Same.
1027 * testsuite/libgomp.c++/simd-4.C: Same.
1028 * testsuite/libgomp.c++/simd-5.C: Same.
1029 * testsuite/libgomp.c++/simd-6.C: Same.
1030 * testsuite/libgomp.c++/simd-7.C: Same.
1031 * testsuite/libgomp.c++/simd-8.C: Same.
1032 * testsuite/libgomp.c++/simd-9.C: Same.
1033 * testsuite/libgomp.c++/simd10.C: Same.
1034 * testsuite/libgomp.c++/simd11.C: Same.
1035 * testsuite/libgomp.c++/simd12.C: Same.
1036 * testsuite/libgomp.c++/simd13.C: Same.
1038 2015-06-30 Jakub Jelinek <jakub@redhat.com>
1041 * testsuite/libgomp.c++/pr66702-1.C: New test.
1042 * testsuite/libgomp.c++/pr66702-2.C: New test.
1044 2015-06-30 Tom de Vries <tom@codesourcery.com>
1046 * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
1047 * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
1048 * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
1049 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
1051 2015-06-30 Tom de Vries <tom@codesourcery.com>
1053 PR tree-optimization/66652
1054 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
1055 using restrict pointers.
1056 (main): Add arguments to calls to f.
1057 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
1059 2015-06-23 Andreas Tobler <andreast@gcc.gnu.org>
1061 * configure.ac: Fix check for header <sys/sysctl.h>.
1062 * configure: Regenerate.
1063 * config.h.in: Likewise.
1065 2015-06-23 Tom de Vries <tom@codesourcery.com>
1067 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
1069 * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
1071 2015-06-19 Thomas Schwinge <thomas@codesourcery.com>
1073 * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
1077 * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
1078 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1080 2015-06-15 Tom de Vries <tom@codesourcery.com>
1082 * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2". Use
1083 dg-additional-options for any remaining options.
1084 * testsuite/libgomp.c/atomic-2.c: Same.
1085 * testsuite/libgomp.c/atomic-4.c: Same.
1086 * testsuite/libgomp.c/atomic-5.c: Same.
1087 * testsuite/libgomp.c/atomic-6.c: Same.
1088 * testsuite/libgomp.c/autopar-1.c: Same.
1089 * testsuite/libgomp.c/copyin-1.c: Same.
1090 * testsuite/libgomp.c/copyin-2.c: Same.
1091 * testsuite/libgomp.c/copyin-3.c: Same.
1092 * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
1093 * testsuite/libgomp.c/nestedfn-5.c: Same.
1094 * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
1095 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
1096 * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
1097 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
1098 * testsuite/libgomp.c/pr32362-1.c: Same.
1099 * testsuite/libgomp.c/pr32362-2.c: Same.
1100 * testsuite/libgomp.c/pr32362-3.c: Same.
1101 * testsuite/libgomp.c/pr39591-1.c: Same.
1102 * testsuite/libgomp.c/pr39591-2.c: Same.
1103 * testsuite/libgomp.c/pr39591-3.c: Same.
1104 * testsuite/libgomp.c/pr58392.c: Same.
1105 * testsuite/libgomp.c/pr58756.c: Same.
1106 * testsuite/libgomp.c/simd-1.c: Same.
1107 * testsuite/libgomp.c/simd-10.c: Same.
1108 * testsuite/libgomp.c/simd-11.c: Same.
1109 * testsuite/libgomp.c/simd-12.c: Same.
1110 * testsuite/libgomp.c/simd-13.c: Same.
1111 * testsuite/libgomp.c/simd-14.c: Same.
1112 * testsuite/libgomp.c/simd-15.c: Same.
1113 * testsuite/libgomp.c/simd-2.c: Same.
1114 * testsuite/libgomp.c/simd-3.c: Same.
1115 * testsuite/libgomp.c/simd-4.c: Same.
1116 * testsuite/libgomp.c/simd-5.c: Same.
1117 * testsuite/libgomp.c/simd-6.c: Same.
1118 * testsuite/libgomp.c/simd-7.c: Same.
1119 * testsuite/libgomp.c/simd-8.c: Same.
1120 * testsuite/libgomp.c/simd-9.c: Same.
1122 2015-06-15 Tom de Vries <tom@codesourcery.com>
1124 * testsuite/libgomp.c/pr35625.c: Fix typo.
1126 2015-06-15 Tom de Vries <tom@codesourcery.com>
1128 * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
1130 * testsuite/libgomp.c/atomic-3.c: Same.
1131 * testsuite/libgomp.c/debug-1.c: Same.
1132 * testsuite/libgomp.c/nqueens-1.c: Same.
1133 * testsuite/libgomp.c/pr26171.c: Same.
1134 * testsuite/libgomp.c/pr48591.c: Same.
1135 * testsuite/libgomp.c/pr64824.c: Same.
1136 * testsuite/libgomp.c/pr64868.c: Same.
1137 * testsuite/libgomp.c/pr66133.c: Same.
1138 * testsuite/libgomp.c/pr66199-1.c: Same.
1139 * testsuite/libgomp.c/pr66199-2.c: Same.
1140 * testsuite/libgomp.c/target-8.c: Same.
1142 2015-06-15 Tom de Vries <tom@codesourcery.com>
1144 * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
1146 * testsuite/libgomp.c/for-1.c: Same.
1147 * testsuite/libgomp.c/for-2.c: Same.
1148 * testsuite/libgomp.c/for-3.c: Same.
1149 * testsuite/libgomp.c/pr35625.c: Same.
1150 * testsuite/libgomp.c/pr39154.c: Same.
1151 * testsuite/libgomp.c/simd-16.c: Same.
1152 * testsuite/libgomp.c/simd-17.c: Same.
1154 2015-06-13 Tom de Vries <tom@codesourcery.com>
1156 * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
1158 2015-06-13 Tom de Vries <tom@codesourcery.com>
1160 * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
1161 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
1162 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
1164 (main): Use N instead of hardcoded constants.
1166 2015-06-05 Tom de Vries <tom@codesourcery.com>
1168 merge from gomp4 branch:
1169 2015-05-28 Tom de Vries <tom@codesourcery.com>
1171 PR tree-optimization/65443
1172 * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
1173 * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
1174 * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
1176 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1178 * testsuite/libgomp.graphite/bounds.c: Adjust for
1179 cleanup-tree-dump removal.
1180 * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
1181 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1182 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1183 * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
1184 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1185 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1186 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1187 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1188 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1189 * testsuite/libgomp.graphite/pr41118.c: Likewise.
1191 2015-05-28 Uros Bizjak <ubizjak@gmail.com>
1193 * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
1194 (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
1195 (futex_wake) [!__x86_64__]: Ditto.
1197 2015-05-28 Julian Brown <julian@codesourcery.com>
1199 * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
1200 function comment. Only call gomp_fatal if new argument is true.
1201 (acc_dev_num_out_of_range): New function.
1202 (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
1203 acc_dev_num_out_of_range as appropriate.
1204 (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
1205 (acc_get_device_num, acc_set_device_num): Update calls to
1207 * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
1210 2015-05-28 Julian Brown <julian@codesourcery.com>
1213 * oacc-init.c (plugin/plugin-host.h): Include.
1214 (acc_on_device): Check whether we're in an offloaded region for
1216 plugin. Don't use __builtin_acc_on_device.
1217 * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
1218 nonshm_exec flag in thread-local data.
1219 (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
1220 data for host_nonshm plugin.
1221 (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
1222 for host_nonshm plugin.
1223 * plugin/plugin-host.h: New.
1225 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
1227 * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
1229 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
1231 * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
1233 (FUTEX_PRIVATE_FLAG): Remove L suffix.
1234 * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
1237 2015-05-27 Uros Bizjak <ubizjak@gmail.com>
1239 * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
1241 2015-05-27 Chung-Lin Tang <cltang@codesourcery.com>
1243 * target.c (gomp_map_pointer): New function abstracting out
1244 GOMP_MAP_POINTER handling.
1245 (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
1248 2015-05-19 Jakub Jelinek <jakub@redhat.com>
1251 * testsuite/libgomp.c/pr66199-1.c: New test.
1252 * testsuite/libgomp.c/pr66199-2.c: New test.
1253 * testsuite/libgomp.c++/pr66199-1.C: New test.
1254 * testsuite/libgomp.c++/pr66199-2.C: New test.
1255 * testsuite/libgomp.fortran/pr66199-1.f90: New test.
1256 * testsuite/libgomp.fortran/pr66199-2.f90: New test.
1258 2015-05-19 Julian Brown <julian@codesourcery.com>
1260 * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
1263 2015-05-13 Jakub Jelinek <jakub@redhat.com>
1266 * testsuite/libgomp.c/pr66133.c: New test.
1268 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
1270 * Makefile.in: Regenerated with automake-1.11.6.
1271 * aclocal.m4: Likewise.
1272 * config.h.in: Likewise.
1273 * configure: Likewise.
1274 * testsuite/Makefile.in: Likewise.
1276 2015-05-08 Jason Merrill <jason@redhat.com>
1278 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
1281 * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
1283 2015-05-06 Julian Brown <julian@codesourcery.com>
1285 * oacc-init.c (acc_device_lock): Add explanatory comment.
1286 (resolve_device): Add comment about locking requirement.
1287 (acc_init_1, acc_shutdown_1): Likewise. Add locking around
1288 gomp_init_device and gomp_fini_device calls.
1289 (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
1290 (acc_get_device_num, acc_set_device_num): Add locking around
1291 resolve_device and gomp_init_device calls.
1293 2015-05-06 Julian Brown <julian@codesourcery.com>
1295 * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
1296 goacc_thread_lock on error paths.
1297 * oacc-mem.c (lookup_host): Remove locking from function. Note
1298 locking requirement for caller in function comment.
1299 (lookup_dev): Likewise.
1300 (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
1301 (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
1302 (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
1305 2015-05-05 Thomas Schwinge <thomas@codesourcery.com>
1309 * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
1310 don't expect "0x" prefix for "%p" format specifier, don't expect
1311 "(nil)" for NULL pointer.
1312 * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1313 * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1314 * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1315 * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1316 * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1317 * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1318 * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1319 * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1320 * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1321 * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1322 * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1323 * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1324 * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1325 * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1326 * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1327 * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1328 * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1329 * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1330 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1331 * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1332 * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1333 * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1334 * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1335 * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1336 * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1337 * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1338 * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1339 * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1340 * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
1341 accurately specify what we're looking for.
1342 * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
1343 * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
1344 * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
1345 * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
1346 * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
1348 2015-04-30 James Norris <jnorris@codesourcery.com>
1351 * testsuite/lib/libgomp.exp
1352 (check_effective_target_openacc_host_selected)
1353 (check_effective_target_openacc_host_nonshm_selected): New
1355 * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
1357 * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
1358 * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
1359 * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1360 * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1361 * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1362 * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
1363 * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1364 * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1365 * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1366 * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1367 * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1368 * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1369 * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1370 * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1371 * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1372 * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
1373 * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1374 * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1375 * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1376 * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1377 * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1378 * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
1379 * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1380 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1381 * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1382 * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1383 * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1384 * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1385 * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1386 * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1387 * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1388 * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1389 * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1390 * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
1391 * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
1392 * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
1393 * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
1394 * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
1395 * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
1396 * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
1397 * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
1398 * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
1399 * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
1401 2015-04-08 Julian Brown <julian@codesourcery.com>
1403 * libgomp.h (target_mem_desc: Remove mem_map field.
1404 (acc_dispatch_t): Remove open_device_func, close_device_func,
1405 get_device_num_func, set_device_num_func, target_data members.
1406 Change create_thread_data_func argument to device number instead of
1408 * oacc-async.c (assert.h): Include.
1409 (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
1410 (acc_wait_all, acc_wait_all_async): Use current host thread's
1411 active device, not base_dev.
1412 * oacc-cuda.c (acc_get_current_cuda_device)
1413 (acc_get_current_cuda_context, acc_get_cuda_stream)
1414 (acc_set_cuda_stream): Likewise.
1415 * oacc-host.c (host_dispatch): Don't set open_device_func,
1416 close_device_func, get_device_num_func or set_device_num_func.
1417 * oacc-init.c (base_dev, init_key): Remove.
1418 (cached_base_dev): New.
1419 (name_of_acc_device_t): New.
1420 (acc_init_1): Initialise default-numbered device, not zeroth.
1421 (acc_shutdown_1): Close all devices of a given type.
1422 (goacc_destroy_thread): Don't use base_dev.
1423 (lazy_open, lazy_init, lazy_init_and_open): Remove.
1424 (goacc_attach_host_thread_to_device): New.
1425 (acc_init): Reimplement with goacc_attach_host_thread_to_device.
1426 (acc_get_num_devices): Don't use base_dev.
1427 (acc_set_device_type): Reimplement.
1428 (acc_get_device_type): Don't use base_dev.
1429 (acc_get_device_num): Tweak logic.
1430 (acc_set_device_num): Likewise.
1431 (acc_on_device): Use acc_get_device_type.
1432 (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
1433 (goacc_lazy_initialize): Reimplement with acc_init and
1434 goacc_attach_host_thread_to_device.
1435 * oacc-int.h (goacc_thread): Add base_dev field.
1436 (base_dev): Remove extern declaration.
1437 (goacc_attach_host_thread_to_device): Add prototype.
1438 * oacc-mem.c (acc_malloc): Use current thread's device instead of
1440 (acc_free): Likewise.
1441 (acc_memcpy_to_device): Likewise.
1442 (acc_memcpy_from_device): Likewise.
1443 * oacc-parallel.c (select_acc_device): Remove. Replace calls with
1444 goacc_lazy_initialize (throughout).
1445 (GOACC_parallel): Use tgt_offset to locate target functions.
1446 * target.c (gomp_map_vars): Don't set tgt->mem_map.
1447 (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
1448 (gomp_load_plugin_for_device): Remove open_device, close_device,
1449 get_device_num, set_device_num openacc hook initialisation. Don't set
1450 openacc.target_data.
1451 * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
1452 (GOMP_OFFLOAD_openacc_close_device)
1453 (GOMP_OFFLOAD_openacc_get_device_num)
1454 (GOMP_OFFLOAD_openacc_set_device_num): Remove.
1455 (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
1457 * plugin/plugin-nvptx.c (ptx_inited): Remove.
1458 (instantiated_devices, ptx_dev_lock): New.
1459 (struct ptx_image_data): New.
1460 (ptx_devices, ptx_images, ptx_image_lock): New.
1461 (fini_streams_for_device): Reorder cuStreamDestroy call.
1462 (nvptx_get_num_devices): Remove forward declaration.
1463 (nvptx_init): Change return type to bool.
1464 (nvptx_fini): Remove.
1465 (nvptx_attach_host_thread_to_device): New.
1466 (nvptx_open_device): Return struct ptx_device* instead of void*.
1467 (nvptx_close_device): Change argument type to struct ptx_device*,
1468 return type to void.
1469 (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
1470 (kernel_target_data, kernel_host_table): Remove static globals.
1471 (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
1472 (GOMP_OFFLOAD_init_device): Reimplement.
1473 (GOMP_OFFLOAD_fini_device): Likewise.
1474 (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
1475 (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
1476 (GOMP_OFFLOAD_host2dev): Use ORD argument.
1477 (GOMP_OFFLOAD_openacc_open_device)
1478 (GOMP_OFFLOAD_openacc_close_device)
1479 (GOMP_OFFLOAD_openacc_set_device_num)
1480 (GOMP_OFFLOAD_openacc_get_device_num): Remove.
1481 (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
1485 * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
1487 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
1489 * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
1490 * libgomp.h (struct gomp_memory_mapping): Remove.
1491 (struct target_mem_desc): Change type of mem_map from
1492 gomp_memory_mapping * to splay_tree_s *.
1493 (struct gomp_device_descr): Remove register_image_func, get_table_func.
1494 Add load_image_func, unload_image_func.
1495 Change type of mem_map from gomp_memory_mapping to splay_tree_s.
1496 Remove offload_regions_registered.
1497 (gomp_init_tables): Remove.
1498 (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
1500 * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
1501 * oacc-host.c (host_dispatch): Do not initialize register_image_func,
1502 get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
1503 offload_regions_registered.
1504 Initialize load_image_func, unload_image_func, mem_map.root.
1505 (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
1506 * oacc-init.c (lazy_open): Don't call gomp_init_tables.
1507 (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
1508 * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
1509 gomp_memory_mapping *. Use dev's lock and splay_tree.
1510 (lookup_dev): Use dev's lock.
1511 (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
1512 (acc_is_present): Likewise.
1513 (acc_map_data): Likewise.
1514 (acc_unmap_data): Likewise. Use dev's lock.
1515 (present_create_copy): Likewise.
1516 (delete_copyout): Pass dev to lookup_host instead of mem_map.
1517 (update_dev_host): Likewise.
1518 (gomp_acc_remove_pointer): Likewise. Use dev's lock.
1519 * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
1520 * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
1521 (GOMP_OFFLOAD_get_table): Remove
1522 (GOMP_OFFLOAD_load_image): New function.
1523 (GOMP_OFFLOAD_unload_image): New function.
1524 * target.c (register_lock): New mutex for offload image registration.
1525 (num_devices): Do not guard with PLUGIN_SUPPORT.
1526 (gomp_realloc_unlock): New static function.
1527 (gomp_map_vars_existing): Add device descriptor argument. Unlock mutex
1529 (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
1530 Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal.
1531 (gomp_copy_from_async): Use dev's lock and splay_tree instead of
1533 (gomp_unmap_vars): Likewise.
1534 (gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and
1535 splay_tree instead of mm's. Unlock mutex before gomp_fatal.
1536 (gomp_offload_image_to_device): New static function.
1537 (GOMP_offload_register): Add mutex lock.
1538 Call gomp_offload_image_to_device for all initialized devices.
1539 Replace gomp_realloc with gomp_realloc_unlock.
1540 (GOMP_offload_unregister): New function.
1541 (gomp_init_tables): Replace with gomp_init_device. Replace a call to
1542 get_table_func from the plugin with calls to init_device_func and
1543 gomp_offload_image_to_device.
1544 (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
1546 (GOMP_target): Do not call gomp_init_tables. Use dev's lock and
1547 splay_tree instead of mem_map's. Unlock mutex before gomp_fatal.
1548 (GOMP_target_data): Do not call gomp_init_tables.
1549 (GOMP_target_update): Likewise. Remove argument from gomp_update.
1550 (gomp_load_plugin_for_device): Replace register_image and get_table
1551 with load_image and unload_image in DLSYM ().
1552 (gomp_register_images_for_device): Remove function.
1553 (gomp_target_init): Do not initialize current_device.mem_map.*,
1554 current_device.offload_regions_registered.
1555 Remove call to gomp_register_images_for_device.
1556 Do not free offload_images and num_offload_images.
1558 2015-03-30 Jakub Jelinek <jakub@redhat.com>
1561 * testsuite/libgomp.fortran/pr65597.f90: New test.
1563 2015-03-27 Tom de Vries <tom@codesourcery.com>
1566 * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
1567 (init, check): New function.
1568 (foo): Change return type to void.
1569 (main): Call init and check.
1571 2015-03-27 Tom de Vries <tom@codesourcery.com>
1574 * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
1575 (foo): Use M for non-inner loops to scale down test-case.
1577 2015-03-25 Kai Tietz <ktietz@redhat.com>
1580 * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
1581 (GOACC_data_start): Likewise.
1582 * target.c (gomp_map_vars): Likewise.
1584 2015-03-21 John David Anglin <danglin@gcc.gnu.org>
1586 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
1589 2015-03-19 Jakub Jelinek <jakub@redhat.com>
1591 * testsuite/libgomp.c/target-10.c: New test.
1592 * testsuite/libgomp.c++/target-4.C: New test.
1594 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
1596 * testsuite/libgomp.fortran/declare-target-1.f90: New test.
1597 * testsuite/libgomp.fortran/declare-target-2.f90: New file.
1599 2015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de>
1601 * configure.tgt (*-*-rtems*): Use local-exec TLS model.
1602 * configure.ac (*-*-rtems*): Assume Pthread is supported.
1603 (pthread.h): Check for this header file.
1604 * configure: Regenerate.
1606 2015-02-25 Tom de Vries <tom@codesourcery.com>
1608 * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
1609 (check_reduction_op, check_reduction_macro, max, min):
1611 (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
1613 (main): Use new functions.
1615 2015-02-18 Ilya Tocar <ilya.tocar@intel.com>
1617 * target.c (gomp_load_plugin_for_device): Use const char * instead of
1618 char * for variables holding dlerror return values.
1621 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
1623 * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
1625 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
1626 Cesar Philippidis <cesar@codesourcery.com>
1628 * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
1629 GOACC_ctaid, and GOACC_nctaid routines.
1631 2015-02-11 Jakub Jelinek <jakub@redhat.com>
1634 * testsuite/libgomp.c/atomic-18.c: New test.
1635 * testsuite/libgomp.c++/atomic-16.C: New test.
1637 2015-02-04 Jakub Jelinek <jakub@redhat.com>
1641 * testsuite/libgomp.c/pr64824.c: New test.
1642 * testsuite/libgomp.c/pr64868.c: New test.
1643 * testsuite/libgomp.c++/pr64824.C: New test.
1644 * testsuite/libgomp.c++/pr64868.C: New test.
1646 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
1649 * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
1650 Link with -lpthread.
1651 * config/aix/plugin-suffix.h: Delete.
1653 2015-01-28 Jack Howarth <howarth.at.gcc@gmail.com>
1656 * configure.tgt (*-*-aix*): Use config_path "aix posix".
1657 (*-*-darwin*): Use config_path "bsd darwin posix".
1658 (*-*-hpux*): Use config_path "hpux posix".
1659 * target.c: Add include of plugin-suffix.h and use
1660 SONAME_SUFFIX macro.
1661 * config/aix/plugin-suffix.h: New file.
1662 * config/darwin/plugin-suffix.h: New file.
1663 * config/hpux/plugin-suffix.h: New file.
1664 * config/posix/plugin-suffix.h: New file.
1666 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1669 * libgomp.c/pr64734.c: New test.
1671 2015-01-23 Tom de Vries <tom@codesourcery.com>
1674 * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
1676 2015-01-23 Tom de Vries <tom@codesourcery.com>
1679 * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
1682 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
1685 * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
1686 (GOACC_parallel, GOACC_update): Remove const_void *offload_table
1687 formal parameter. Update all users.
1688 * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
1689 Document unused formal parameter.
1691 2015-01-16 Thomas Schwinge <thomas@codesourcery.com>
1693 * oacc-parallel.c: Don't include <alloca.h>.
1694 (GOACC_parallel): Use gomp_alloca instead of alloca.
1696 2015-01-16 Gerald Pfeifer <gerald@pfeifer.com>
1698 * target.c (num_devices): Guard with PLUGIN_SUPPORT.
1700 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
1701 James Norris <jnorris@codesourcery.com>
1702 Tom de Vries <tom@codesourcery.com>
1703 Julian Brown <julian@codesourcery.com>
1704 Cesar Philippidis <cesar@codesourcery.com>
1705 Nathan Sidwell <nathan@codesourcery.com>
1706 Tobias Burnus <burnus@net-b.de>
1708 * Makefile.am (search_path): Add $(top_srcdir)/../include.
1709 (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
1710 oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
1711 oacc-async.c, oacc-plugin.c, oacc-cuda.c.
1712 [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
1713 Include $(top_srcdir)/plugin/Makefrag.am.
1714 (nodist_libsubinclude_HEADERS): Add openacc.h.
1715 [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
1716 openacc.f90, openacc.mod, openacc_kinds.mod.
1717 (omp_lib.mod): Generalize into...
1718 (%.mod): ... this new rule.
1719 (openacc_kinds.mod, openacc.mod): New rules.
1720 * plugin/configfrag.ac: New file.
1721 * configure.ac: Move plugin/offloading support into it. Include
1722 it. Instantiate testsuite/libgomp-test-support.pt.exp.
1723 * plugin/Makefrag.am: New file.
1724 * testsuite/Makefile.am (OFFLOAD_TARGETS)
1725 (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
1727 (libgomp-test-support.exp): New rule.
1728 (all-local): Depend on it.
1729 * Makefile.in: Regenerate.
1730 * testsuite/Makefile.in: Regenerate.
1731 * config.h.in: Likewise.
1732 * configure: Likewise.
1733 * configure.tgt: Harden shell syntax.
1734 * env.c: Include "oacc-int.h".
1735 (parse_acc_device_type): New function.
1736 (gomp_debug_var, goacc_device_type, goacc_device_num): New
1738 (initialize_env): Initialize those. Call
1739 goacc_runtime_initialize.
1740 * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
1741 (gomp_fatal): Call gomp_vfatal.
1742 * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
1743 (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
1744 (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
1745 (splay_tree_node, splay_tree, splay_tree_key)
1746 (struct target_mem_desc, struct splay_tree_key_s)
1747 (struct gomp_memory_mapping, struct acc_dispatch_t)
1748 (struct gomp_device_descr, gomp_acc_insert_pointer)
1749 (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
1750 (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
1751 (gomp_free_memmap, gomp_fini_device): New declarations.
1752 (gomp_vdebug, gomp_debug): New macros.
1753 Include "splay-tree.h".
1754 * libgomp.map (OACC_2.0): New symbol version. Use for
1755 acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
1756 acc_set_device_type_h_, acc_get_device_type,
1757 acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
1758 acc_get_device_num, acc_get_device_num_h_, acc_async_test,
1759 acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
1760 acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
1761 acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
1762 acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
1763 acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
1764 acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
1765 acc_copyin_array_h_, acc_present_or_copyin,
1766 acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
1767 acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
1768 acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
1769 acc_present_or_create_32_h_, acc_present_or_create_64_h_,
1770 acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
1771 acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
1772 acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
1773 acc_update_device, acc_update_device_32_h_,
1774 acc_update_device_64_h_, acc_update_device_array_h_,
1775 acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
1776 acc_update_self_array_h_, acc_map_data, acc_unmap_data,
1777 acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
1778 acc_is_present_64_h_, acc_is_present_array_h_,
1779 acc_memcpy_to_device, acc_memcpy_from_device,
1780 acc_get_current_cuda_device, acc_get_current_cuda_context,
1781 acc_get_cuda_stream, acc_set_cuda_stream.
1782 (GOACC_2.0): New symbol version. Use for GOACC_data_end,
1783 GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
1784 GOACC_update, GOACC_wait, GOACC_get_thread_num,
1785 GOACC_get_num_threads.
1786 (GOMP_PLUGIN_1.0): New symbol version. Use for
1787 GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
1788 GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
1789 GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
1790 GOMP_PLUGIN_acc_thread.
1791 * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
1792 environment variable.
1793 * libgomp_g.h (GOACC_data_start, GOACC_data_end)
1794 (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
1795 (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
1796 * splay-tree.h (splay_tree_lookup, splay_tree_insert)
1797 (splay_tree_remove): New declarations.
1798 (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
1799 (splay_tree_remove, splay_tree_lookup): Move into...
1800 * splay-tree.c: ... this new file.
1801 * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
1802 (splay_tree_node, splay_tree, splay_tree_key)
1803 (struct target_mem_desc, struct splay_tree_key_s)
1804 (struct gomp_device_descr): Don't declare.
1805 (num_devices_openmp): New variable.
1806 (gomp_get_num_devices ): Use it.
1807 (gomp_init_targets_once): New function.
1808 (gomp_get_num_devices ): Use it.
1809 (get_kind, gomp_copy_from_async, gomp_free_memmap)
1810 (gomp_fini_device, gomp_register_image_for_device): New functions.
1811 (gomp_map_vars): Add devaddrs parameter.
1812 (gomp_update): Add mm parameter.
1813 (gomp_init_device): Move most of it into...
1814 (gomp_init_tables): ... this new function.
1815 (gomp_register_images_for_device): Remove function.
1816 (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
1817 Make them hidden instead of static.
1818 (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
1819 (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
1820 (GOMP_target_end_data, GOMP_target_update)
1821 (gomp_load_plugin_for_device, gomp_target_init): Update for
1823 * oacc-async.c: New file.
1824 * oacc-cuda.c: Likewise.
1825 * oacc-host.c: Likewise.
1826 * oacc-init.c: Likewise.
1827 * oacc-int.h: Likewise.
1828 * oacc-mem.c: Likewise.
1829 * oacc-parallel.c: Likewise.
1830 * oacc-plugin.c: Likewise.
1831 * oacc-plugin.h: Likewise.
1832 * oacc-ptx.h: Likewise.
1833 * openacc.f90: Likewise.
1834 * openacc.h: Likewise.
1835 * openacc_lib.h: Likewise.
1836 * plugin/plugin-host.c: Likewise.
1837 * plugin/plugin-nvptx.c: Likewise.
1838 * libgomp-plugin.c: Likewise.
1839 * libgomp-plugin.h: Likewise.
1840 * libgomp_target.h: Remove file after merging content into the
1841 former file. Update all users.
1842 * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
1843 (offload_targets_s, offload_targets_s_openacc): New variables.
1844 (check_effective_target_openacc_nvidia_accel_present)
1845 (check_effective_target_openacc_nvidia_accel_selected): New
1847 (libgomp_init): Update for OpenACC changes.
1848 * testsuite/libgomp-test-support.exp.in: New file.
1849 * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
1850 * testsuite/libgomp.oacc-c/c.exp: Likewise.
1851 * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
1852 * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
1853 * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
1854 * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
1855 * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
1856 * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
1857 * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
1858 * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
1859 * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
1860 * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
1861 * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
1862 * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
1863 * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
1864 * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
1865 * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
1866 * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
1867 * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
1868 * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
1869 * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
1870 * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
1871 * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
1872 * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
1873 * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
1874 * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
1875 * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
1876 * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
1877 * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
1878 * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
1879 * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
1880 * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
1881 * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
1882 * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
1883 * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
1884 * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
1885 * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
1886 * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
1887 * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
1888 * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
1889 * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
1890 * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
1891 * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1892 * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1893 * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1894 * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
1895 * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
1896 * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1897 * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1898 * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1899 * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1900 * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
1901 * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1902 * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1903 * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1904 * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1905 * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1906 * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
1907 * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1908 * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
1909 * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
1910 * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
1911 * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1912 * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1913 * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1914 * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
1915 * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
1916 * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1917 * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
1918 * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1919 * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
1920 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1921 * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1922 * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1923 * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
1924 * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
1925 * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1926 * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1927 * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
1928 * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
1929 * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
1930 * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
1931 * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1932 * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1933 * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1934 * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
1935 * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
1936 * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1937 * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1938 * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
1939 * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
1940 * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
1941 * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
1942 * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
1943 * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
1944 * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
1945 * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
1946 * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
1947 * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
1948 * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
1949 * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
1950 * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
1951 * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
1952 * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
1953 * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
1954 * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
1955 * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
1956 * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
1957 * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
1958 * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
1959 * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
1960 * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
1961 * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
1962 * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
1963 * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
1964 * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
1965 * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
1966 * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
1967 * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
1968 * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
1969 * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
1970 * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
1971 * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
1972 * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
1973 * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
1974 * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
1975 * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
1976 * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
1977 * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
1978 * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
1979 * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
1980 * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
1981 * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
1982 * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
1983 * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
1984 * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
1985 * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
1986 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
1987 * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
1988 * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
1990 * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
1991 * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
1992 * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
1993 * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
1994 * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
1995 * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
1996 * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1997 * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
1998 * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
1999 * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
2000 * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
2001 * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
2002 * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
2003 * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
2004 * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
2005 * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
2006 * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
2007 * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
2008 * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
2009 * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
2010 * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
2011 * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
2012 * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
2013 * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
2014 * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
2015 * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
2016 * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
2017 * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
2018 * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
2019 * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
2020 * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
2021 * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
2022 * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
2023 * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
2024 * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
2025 * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
2026 * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
2027 * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
2028 * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
2029 * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
2030 * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
2031 * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
2032 * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
2033 * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
2034 * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
2035 * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
2036 * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
2037 * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
2038 * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
2039 * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
2040 * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
2041 * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
2042 * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
2043 * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
2044 * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
2045 * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
2046 * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
2047 * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
2048 * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
2049 * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
2051 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
2052 Julian Brown <julian@codesourcery.com>
2053 David Malcolm <dmalcolm@redhat.com>
2055 * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
2056 to "GNU Offloading and Multi Processing Runtime Library". Change
2058 * configure: Regenerate.
2059 * libgomp.texi: Update.
2061 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
2063 * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
2065 * configure: Regenerate.
2067 * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
2068 "intelmic" in $offload_targets.
2070 2015-01-05 Jakub Jelinek <jakub@redhat.com>
2072 Update copyright years.
2074 * libgomp.texi: Bump @copying's copyright year.
2076 2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2078 * testsuite/lib/libgomp.exp: Load target-utils.exp.
2079 Move load of target-supportes.exp earlier.
2081 2014-12-10 Ilya Verbin <ilya.verbin@intel.com>
2083 * testsuite/libgomp.c/target-9.c: New test.
2085 2014-12-09 Varvara Rainchik <varvara.rainchik@intel.com>
2087 * config.h.in: Regenerate.
2088 * configure: Regenerate.
2089 * configure.ac: Add GCC_CHECK_EMUTLS.
2090 * libgomp.h: Add check for USE_EMUTLS: this case
2091 is equal to HAVE_TLS.
2094 2014-12-03 Uros Bizjak <ubizjak@gmail.com>
2096 * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
2098 2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com>
2099 Ilya Verbin <ilya.verbin@intel.com>
2101 * testsuite/libgomp.c/target-critical-1.c: New test.
2103 2014-11-26 Jakub Jelinek <jakub@redhat.com>
2105 * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
2106 to dg-options unless expensive testing is on.
2107 (TESTITERS): Define to N if not defined.
2108 (main): Use TESTITERS instead of N.
2109 * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
2110 dg-additional-options depending on whether expensive testing is on.
2111 * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
2112 Decrease N to 100000 and CHUNKSZ to 10000.
2114 2014-11-24 Jakub Jelinek <jakub@redhat.com>
2117 * testsuite/libgomp.fortran/pr63938-1.f90: New test.
2118 * testsuite/libgomp.fortran/pr63938-2.f90: New test.
2120 2014-11-21 Steve Ellcey <sellcey@imgtec.com>
2122 * config/linux/mips/futex.h (SYS_futex): Define if not already done.
2124 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
2127 * configure: Regenerated.
2129 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
2131 * testsuite/libgomp.c/examples-4/e.53.5.c: Require
2132 vect_simd_clones effective target.
2133 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
2135 2014-11-14 Jakub Jelinek <jakub@redhat.com>
2137 * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
2138 of 32 as block_size.
2139 * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
2140 instead of 32 as block_size.
2142 2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
2143 Ilya Verbin <ilya.verbin@intel.com>
2145 * Makefile.in: Regenerate.
2146 * configure: Regenerate.
2147 * configure.ac: Set up offload_additional_options,
2148 offload_additional_lib_paths and offload_targets.
2149 * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
2150 OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
2151 * testsuite/Makefile.in: Regenerate.
2152 * testsuite/lib/libgomp.exp (libgomp_init): Append
2153 offload_additional_lib_paths to LD_LIBRARY_PATH. Append
2154 offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic
2155 build directory to LD_LIBRARY_PATH for intelmic offload targets.
2157 2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
2158 Ilya Verbin <ilya.verbin@intel.com>
2159 Kirill Yukhin <kirill.yukhin@intel.com>
2160 Ilya Tocar <ilya.tocar@intel.com>
2162 * testsuite/lib/libgomp.exp
2163 (check_effective_target_offload_device): New.
2164 * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
2165 * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
2166 * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
2167 * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
2168 * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
2169 * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
2170 * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
2171 * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
2172 * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
2173 * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
2174 * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
2175 * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
2176 * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
2177 * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
2178 * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
2179 * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
2180 * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
2181 * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
2182 * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
2183 * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
2184 * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
2185 * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
2186 * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
2187 * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
2188 * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
2189 * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
2190 * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
2191 * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
2192 * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
2193 * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
2194 * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
2195 * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
2196 * testsuite/libgomp.c/target-7.c: Fix test.
2197 * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
2198 * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
2199 * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
2200 * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
2201 * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
2202 * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
2203 * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
2204 * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
2205 * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
2206 * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
2207 * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
2208 * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
2209 * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
2210 * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
2211 * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
2212 * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
2213 * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
2214 * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
2215 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
2216 * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
2217 * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
2218 * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
2219 * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
2220 * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
2221 * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
2222 * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
2223 * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
2224 * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
2225 * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
2226 * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
2227 * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
2229 2014-11-13 Jakub Jelinek <jakub@redhat.com>
2230 Ilya Verbin <ilya.verbin@intel.com>
2231 Thomas Schwinge <thomas@codesourcery.com>
2232 Andrey Turetskiy <andrey.turetskiy@intel.com>
2234 * libgomp.map (GOMP_4.0.1): New symbol version.
2235 Add GOMP_offload_register.
2236 * libgomp_target.h: New file.
2237 * splay-tree.h: New file.
2238 * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
2239 (gomp_target_init): New forward declaration.
2240 (gomp_is_initialized): New static variable.
2241 (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
2242 (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
2244 (offload_images, num_offload_images, devices, num_devices): New static
2246 (splay_compare): New static function.
2247 (struct gomp_device_descr): New structure.
2248 (gomp_get_num_devices): Call gomp_target_init.
2249 (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
2250 (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
2251 (GOMP_offload_register): New function.
2252 (GOMP_target): Arrange for host callback to be performed in a separate
2253 initial thread and contention group, inheriting ICVs from
2254 gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
2255 Add device initialization and lookup for target function in splay tree.
2256 (GOMP_target_data): Add device initialization and call gomp_map_vars.
2257 (GOMP_target_end_data): Call gomp_unmap_vars.
2258 (GOMP_target_update): Add device initialization and call gomp_update.
2259 (gomp_load_plugin_for_device, gomp_register_images_for_device)
2260 (gomp_target_init): New static functions.
2262 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
2263 Thomas Schwinge <thomas@codesourcery.com>
2264 Ilya Verbin <ilya.verbin@intel.com>
2265 Andrey Turetskiy <andrey.turetskiy@intel.com>
2267 * config.h.in: Regenerate.
2268 * configure: Regenerate.
2269 * configure.ac: Check for libdl, required for plugin support.
2270 (PLUGIN_SUPPORT): Define if plugins are supported.
2271 (enable_offload_targets): Support Intel MIC targets.
2272 (OFFLOAD_TARGETS): List of target names suitable for offloading.
2274 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2277 * configure: Regenerate.
2279 2014-11-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2281 * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
2283 2014-10-06 Marek Polacek <polacek@redhat.com>
2285 * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
2286 * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
2287 * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
2288 * testsuite/libgomp.c/thread-limit-2.c: Likewise.
2290 2014-10-06 Marek Polacek <polacek@redhat.com>
2292 * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
2293 * testsuite/libgomp.c/nqueens-1.c: Likewise.
2294 * testsuite/libgomp.c/pr26943-3.c: Likewise.
2295 * testsuite/libgomp.c/pr26943-4.c: Likewise.
2296 * testsuite/libgomp.c/pr36802-2.c: Likewise.
2297 * testsuite/libgomp.c/pr36802-3.c: Likewise.
2298 * testsuite/libgomp.c/thread-limit-1.c: Likewise.
2299 * testsuite/libgomp.c/thread-limit-2.c: Likewise.
2300 * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
2301 * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
2302 * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
2303 * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
2304 * testsuite/libgomp.c/omp-single-1.c: Likewise.
2305 * testsuite/libgomp.c/omp-single-2.c: Likewise.
2306 * testsuite/libgomp.c/omp_matvec.c: Likewise.
2307 * testsuite/libgomp.c/omp_workshare3.c: Likewise.
2308 * testsuite/libgomp.c/omp_workshare4.c: Likewise.
2309 * testsuite/libgomp.c/shared-1.c: Fix defaulting to int. Fix implicit
2312 2014-10-03 Jakub Jelinek <jakub@redhat.com>
2315 * testsuite/libgomp.c/pr61200.c: New test.
2317 2014-09-18 Jakub Jelinek <jakub@redhat.com>
2320 * testsuite/libgomp.c++/pr63248.C: New test.
2322 2014-08-04 Jakub Jelinek <jakub@redhat.com>
2324 * task.c (GOMP_taskgroup_end): If taskgroup->num_children
2325 is not zero, but taskgroup->children is NULL and there are
2326 any task->children, schedule those instead of waiting.
2327 * testsuite/libgomp.c/depend-6.c: New test.
2328 * testsuite/libgomp.c/depend-7.c: New test.
2329 * testsuite/libgomp.c/depend-8.c: New test.
2330 * testsuite/libgomp.c/depend-9.c: New test.
2331 * testsuite/libgomp.c/depend-10.c: New test.
2333 2014-08-01 Jakub Jelinek <jakub@redhat.com>
2335 * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
2336 (struct gomp_taskwait): New type.
2337 (struct gomp_task): Add taskwait and parent_depends_on, remove
2338 in_taskwait and taskwait_sem fields.
2339 (gomp_finish_task): Don't destroy taskwait_sem.
2340 * task.c (gomp_init_task): Don't init in_taskwait, instead init
2341 taskwait and parent_depends_on.
2342 (GOMP_task): For if (0) tasks with depend clause that depend on
2343 earlier tasks don't defer them, instead call
2344 gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
2345 Initialize redundant_out field, for redundant out entries just
2346 move them at the end of linked list instead of removing them
2347 completely, and set redundant_out flag instead of redundant.
2348 (gomp_task_run_pre): Update last_parent_depends_on if scheduling
2350 (gomp_task_run_post_handle_dependers): If parent is in
2351 gomp_task_maybe_wait_for_dependencies and newly runnable task
2352 is not parent_depends_on, queue it in parent->children linked
2353 list after all runnable tasks with parent_depends_on set.
2354 Adjust for addition of taskwait indirection.
2355 (gomp_task_run_post_remove_parent): If parent is in
2356 gomp_task_maybe_wait_for_dependencies and task to be removed
2357 is parent_depends_on, decrement n_depend and if needed awake
2358 parent. Adjust for addition of taskwait indirection.
2359 (GOMP_taskwait): Adjust for addition of taskwait indirection.
2360 (gomp_task_maybe_wait_for_dependencies): New function.
2361 * testsuite/libgomp.c/depend-5.c: New test.
2363 2014-07-13 Tobias Burnus <burnus@net-b.de>
2365 * testsuite/libgomp.fortran/pr34020.f90: Make compile
2366 with TS 18508/Fortran 2015.
2368 2014-07-06 Marek Polacek <polacek@redhat.com>
2371 * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
2373 2014-07-03 Jakub Jelinek <jakub@redhat.com>
2375 * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
2376 matches regex $lang_source_re, add $lang_include_flags to options.
2377 * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
2378 * testsuite/libgomp.c++/c++.exp: Likewise.
2379 * testsuite/libgomp.fortran/fortran.exp: Likewise. Set lang_source_re
2380 and lang_include_flags instead of adding -fintrinsic-modules-path= to
2382 * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
2384 2014-07-03 Thomas Schwinge <thomas@codesourcery.com>
2386 * testsuite/libgomp.fortran/fortran.exp: Explain
2387 gfortran-dg-runtest usage.
2389 2014-06-25 Jakub Jelinek <jakub@redhat.com>
2391 * testsuite/libgomp.fortran/simd5.f90: New test.
2392 * testsuite/libgomp.fortran/simd6.f90: New test.
2393 * testsuite/libgomp.fortran/simd7.f90: New test.
2395 2014-06-24 Jakub Jelinek <jakub@redhat.com>
2397 * testsuite/libgomp.c/for-2.c: Define SC to static for
2398 #pragma omp for simd testing.
2399 * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
2400 (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
2402 * testsuite/libgomp.c/simd-14.c: New test.
2403 * testsuite/libgomp.c/simd-15.c: New test.
2404 * testsuite/libgomp.c/simd-16.c: New test.
2405 * testsuite/libgomp.c/simd-17.c: New test.
2406 * testsuite/libgomp.c++/for-10.C: Define SC to static for
2407 #pragma omp for simd testing.
2408 * testsuite/libgomp.c++/simd10.C: New test.
2409 * testsuite/libgomp.c++/simd11.C: New test.
2410 * testsuite/libgomp.c++/simd12.C: New test.
2411 * testsuite/libgomp.c++/simd13.C: New test.
2413 * testsuite/libgomp.fortran/aligned1.f03: New test.
2414 * testsuite/libgomp.fortran/nestedfn5.f90: New test.
2415 * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
2416 tasks with !$omp parallel !$omp single.
2417 * testsuite/libgomp.fortran/target8.f90: New test.
2418 * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
2419 not to use trim in the combiner, instead call elemental function.
2420 (fn): New elemental function.
2421 * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
2423 * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
2425 * testsuite/libgomp.fortran/udr12.f90: New test.
2426 * testsuite/libgomp.fortran/udr13.f90: New test.
2427 * testsuite/libgomp.fortran/udr14.f90: New test.
2428 * testsuite/libgomp.fortran/udr15.f90: New test.
2430 2014-06-18 Jakub Jelinek <jakub@redhat.com>
2432 * omp_lib.f90.in (openmp_version): Set to 201307.
2433 * omp_lib.h.in (openmp_version): Likewise.
2434 * testsuite/libgomp.c/target-8.c: New test.
2435 * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
2436 and inbranch clauses.
2437 * testsuite/libgomp.fortran/depend-3.f90: New test.
2438 * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
2440 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2441 * testsuite/libgomp.fortran/target1.f90: New test.
2442 * testsuite/libgomp.fortran/target2.f90: New test.
2443 * testsuite/libgomp.fortran/target3.f90: New test.
2444 * testsuite/libgomp.fortran/target4.f90: New test.
2445 * testsuite/libgomp.fortran/target5.f90: New test.
2446 * testsuite/libgomp.fortran/target6.f90: New test.
2447 * testsuite/libgomp.fortran/target7.f90: New test.
2449 2014-06-10 Jakub Jelinek <jakub@redhat.com>
2452 * testsuite/libgomp.fortran/allocatable9.f90: New test.
2453 * testsuite/libgomp.fortran/allocatable10.f90: New test.
2454 * testsuite/libgomp.fortran/allocatable11.f90: New test.
2455 * testsuite/libgomp.fortran/allocatable12.f90: New test.
2456 * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
2457 * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
2458 * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
2459 * testsuite/libgomp.fortran/associate1.f90: New test.
2460 * testsuite/libgomp.fortran/associate2.f90: New test.
2461 * testsuite/libgomp.fortran/procptr1.f90: New test.
2463 2014-06-06 Jakub Jelinek <jakub@redhat.com>
2465 * testsuite/libgomp.fortran/simd1.f90: New test.
2466 * testsuite/libgomp.fortran/udr1.f90: New test.
2467 * testsuite/libgomp.fortran/udr2.f90: New test.
2468 * testsuite/libgomp.fortran/udr3.f90: New test.
2469 * testsuite/libgomp.fortran/udr4.f90: New test.
2470 * testsuite/libgomp.fortran/udr5.f90: New test.
2471 * testsuite/libgomp.fortran/udr6.f90: New test.
2472 * testsuite/libgomp.fortran/udr7.f90: New test.
2473 * testsuite/libgomp.fortran/udr8.f90: New test.
2474 * testsuite/libgomp.fortran/udr9.f90: New test.
2475 * testsuite/libgomp.fortran/udr10.f90: New test.
2476 * testsuite/libgomp.fortran/udr11.f90: New test.
2478 2014-05-27 Uros Bizjak <ubizjak@gmail.com>
2480 * testsuite/libgomp.fortran/declare-simd-1.f90: Require
2481 vect_simd_clones effective target.
2482 * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
2484 2014-05-21 Jakub Jelinek <jakub@redhat.com>
2487 * testsuite/libgomp.c++/simd-9.C: New test.
2489 2014-05-18 Uros Bizjak <ubizjak@gmail.com>
2491 * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
2492 (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
2493 texts according to their @menu entry positions.
2495 2014-05-11 Jakub Jelinek <jakub@redhat.com>
2497 * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
2498 * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
2499 * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
2500 * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
2501 * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
2502 * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
2503 * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
2504 * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
2505 * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
2506 * testsuite/libgomp.fortran/depend-1.f90: New test.
2507 * testsuite/libgomp.fortran/depend-2.f90: New test.
2508 * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
2509 * testsuite/libgomp.fortran/simd1.f90: New test.
2510 * testsuite/libgomp.fortran/simd2.f90: New test.
2511 * testsuite/libgomp.fortran/simd3.f90: New test.
2512 * testsuite/libgomp.fortran/simd4.f90: New test.
2513 * testsuite/libgomp.fortran/taskgroup1.f90: New test.
2515 2014-05-02 Jakub Jelinek <jakub@redhat.com>
2517 * testsuite/libgomp.c/simd-10.c: New test.
2518 * testsuite/libgomp.c/simd-11.c: New test.
2519 * testsuite/libgomp.c/simd-12.c: New test.
2520 * testsuite/libgomp.c/simd-13.c: New test.
2522 2014-04-24 Jakub Jelinek <jakub@redhat.com>
2524 * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
2525 atomic type clauses in any order and optional comma in between.
2526 * testsuite/libgomp.c++/atomic-15.C: Likewise.
2527 * testsuite/libgomp.c/atomic-17.c: Likewise.
2529 * testsuite/libgomp.c/simd-7.c: New test.
2530 * testsuite/libgomp.c/simd-8.c: New test.
2531 * testsuite/libgomp.c/simd-9.c: New test.
2532 * testsuite/libgomp.c/loop-16.c: New test.
2534 2014-04-02 Richard Henderson <rth@redhat.com>
2536 * config/linux/futex.h (futex_wait): Get error value from errno.
2537 (futex_wake): Likewise.
2539 2014-03-25 Jakub Jelinek <jakub@redhat.com>
2542 * testsuite/libgomp.c++/udr-11.C: New test.
2543 * testsuite/libgomp.c++/udr-12.C: New test.
2544 * testsuite/libgomp.c++/udr-13.C: New test.
2545 * testsuite/libgomp.c++/udr-14.C: New test.
2546 * testsuite/libgomp.c++/udr-15.C: New test.
2547 * testsuite/libgomp.c++/udr-16.C: New test.
2548 * testsuite/libgomp.c++/udr-17.C: New test.
2549 * testsuite/libgomp.c++/udr-18.C: New test.
2550 * testsuite/libgomp.c++/udr-19.C: New test.
2552 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2554 Update copyright years
2556 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2558 * hashtab.h: Use the standard form for the copyright notice.
2560 2014-01-02 Tobias Burnus <burnus@net-b.de>
2562 * libgomp.texi: Bump @copying's copyright year.
2564 2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>
2566 * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
2567 alloca () with __builtin_alloca ().
2568 * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
2569 * testsuite/libgomp.c/lock-3.c: Likewise.
2570 * testsuite/libgomp.c/pr48591.c: Likewise.
2572 2013-12-17 Jakub Jelinek <jakub@redhat.com>
2575 * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
2578 2013-12-16 Jakub Jelinek <jakub@redhat.com>
2581 * testsuite/libgomp.c/pr58756.c: New test.
2583 2013-12-12 Jakub Jelinek <jakub@redhat.com>
2586 * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
2589 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
2591 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
2593 * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
2594 * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
2595 * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
2596 * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
2599 * libgomp_g.h: Include <stddef.h> for size_t.
2601 * libgomp.spec.in: Update comment about libgomp's dependencies.
2602 * configure.ac: Likewise.
2603 * configure: Regenerate.
2605 2013-10-16 Tobias Burnus <burnus@net-b.de>
2607 * libgomp.texi: (Runtime Library Routines): Update references for
2608 OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
2609 omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
2610 omp_get_team_num, omp_is_initial_device, omp_set_default_device.
2611 (Environment Variables): Update references for OpenMP 4.0. Add
2612 OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
2613 Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
2616 2013-10-14 Jakub Jelinek <jakub@redhat.com>
2618 * env.c (parse_bind_var): Initialize value to avoid
2619 (false positive) warning.
2621 2013-10-12 Jakub Jelinek <jakub@redhat.com>
2624 * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
2626 (gomp_init_num_threads): Move i variable declaration into
2627 #ifdef CPU_ALLOC_SIZE block.
2628 * config/linux/affinity.c (gomp_affinity_init_level): Test
2629 gomp_places_list_len == 0 rather than gomp_places_list == 0
2630 when checking for topology reading error.
2631 * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
2632 * env.c (parse_affinity): Add ignore argument, if true, don't populate
2633 gomp_places_list, only parse env var and always return false.
2634 (parse_places_var): Likewise. Don't check gomp_global_icv.bind_var.
2635 (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
2636 vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
2637 and either of these variables were parsed correctly into a places
2640 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
2641 Jakub Jelinek <jakub@redhat.com>
2643 * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
2644 of 5 loopfn matches.
2645 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
2646 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
2647 * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
2648 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
2649 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
2650 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
2651 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
2652 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
2654 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
2656 * Makefile.am (omp_lib.mod): Streamline rule.
2657 * Makefile.in: Regenerate.
2659 * libgomp.texi (Runtime Library Routines): C linkage, don't throw
2662 * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
2663 * testsuite/libgomp.fortran/lib1.f90: Likewise.
2664 * testsuite/libgomp.fortran/lib2.f: Likewise.
2665 * testsuite/libgomp.fortran/lib3.f: Likewise.
2667 * configure.ac: Typo fix.
2668 * configure: Regenerate.
2670 * testsuite/libgomp.fortran/openmp_version-1.f: New file.
2671 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2673 * omp.h.in: Don't touch the user's namespace.
2675 2013-10-11 Jakub Jelinek <jakub@redhat.com>
2676 Tobias Burnus <burnus@net-b.de>
2677 Richard Henderson <rth@redhat.com>
2679 * target.c: New file.
2680 * Makefile.am (libgomp_la_SOURCES): Add target.c.
2681 * Makefile.in: Regenerated.
2682 * libgomp_g.h (GOMP_task): Add depend argument.
2683 (GOMP_barrier_cancel, GOMP_loop_end_cancel,
2684 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
2685 GOMP_target_end_data, GOMP_target_update, GOMP_teams,
2686 GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
2687 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
2688 GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
2689 GOMP_taskgroup_start, GOMP_taskgroup_end,
2690 GOMP_parallel_sections): New prototypes.
2691 * fortran.c (omp_is_initial_device): Add ialias_redirect.
2692 (omp_is_initial_device_): New function.
2693 (ULP, STR1, STR2, ialias_redirect): Removed.
2694 (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
2695 omp_set_default_device_8_, omp_get_default_device_,
2696 omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
2698 * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
2699 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
2700 GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
2702 (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
2703 omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
2704 omp_set_default_device, omp_set_default_device_,
2705 omp_set_default_device_8_, omp_get_default_device,
2706 omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
2707 omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
2708 omp_get_team_num_): Export @@OMP_4.0.
2709 * team.c (struct gomp_thread_start_data): Add place field.
2710 (gomp_thread_start): Clear thr->thread_pool and
2711 thr->task before returning. Use gomp_team_barrier_wait_final
2712 instead of gomp_team_barrier_wait. Initialize thr->place.
2713 (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
2714 team_cancelled and task_queued_count fields.
2715 (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
2716 before calling pthread_exit.
2717 (gomp_free_thread): No longer static. Use
2718 gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
2719 (gomp_team_start): Add flags argument. Set
2720 thr->thread_pool->threads_busy to nthreads immediately after creating
2721 new pool. Use gomp_managed_threads_lock instead of
2722 gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
2723 (gomp_team_end): Use gomp_managed_threads_lock instead of
2724 gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
2725 of gomp_team_barrier_wait. If team->team_cancelled, call
2726 gomp_fini_worshare on ws chain starting at team->work_shares_to_free
2727 rather than thr->ts.work_share.
2728 (initialize_team): Don't call gomp_sem_init here.
2729 * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
2731 (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
2732 * env.c (gomp_global_icv): Add default_device_var, target_data and
2733 bind_var initializers.
2734 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
2735 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
2736 gomp_places_list_len): New variables.
2737 (parse_bind_var, parse_one_place, parse_places_var): New functions.
2738 (parse_affinity): Rewritten to construct OMP_PLACES list with unit
2740 (gomp_cancel_var): New global variable.
2741 (parse_int): New function.
2742 (handle_omp_display_env): New function.
2743 (initialize_env): Use it. Initialize default_device_var.
2744 Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
2745 OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
2746 OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
2747 been successfully parsed (and call gomp_init_affinity in that case).
2748 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2749 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2750 omp_get_team_num, omp_is_initial_device): New functions.
2751 * libgomp.h: Include stdlib.h.
2752 (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
2754 (struct target_mem_desc): Forward declare.
2755 (struct gomp_task_icv): Add default_device_var, target_data, bind_var
2756 and thread_limit_var fields.
2757 (gomp_get_num_devices): New prototype.
2758 (gomp_cancel_var): New extern decl.
2759 (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
2760 team_cancelled and task_queued_count fields. Add comments about
2761 task_{,queued_,running_}count.
2762 (gomp_cancel_kind): New enum.
2763 (gomp_work_share_end_cancel): New prototype.
2764 (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
2765 copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
2767 (struct gomp_taskgroup): New type.
2768 (struct gomp_task_depend_entry,
2769 struct gomp_dependers_vec): New types.
2770 (gomp_finish_task): Free depend_hash if non-NULL.
2771 (struct gomp_team_state): Add place_partition_off
2772 and place_partition_len fields.
2773 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
2774 gomp_places_list_len): New extern decls.
2775 (struct gomp_thread): Add place field.
2776 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
2777 (gomp_init_thread_affinity): Add place argument.
2778 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2779 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2780 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2781 gomp_affinity_init_level, gomp_affinity_print_place): New
2783 (gomp_team_start): Add flags argument.
2784 (gomp_thread_limit_var, gomp_remaining_threads_count,
2785 gomp_remaining_threads_lock): Remove.
2786 (gomp_managed_threads_lock): New variable.
2787 (struct gomp_thread_pool): Add threads_busy field.
2788 (gomp_free_thread): New prototype.
2789 * task.c: Include hashtab.h.
2790 (hash_entry_type): New typedef.
2791 (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
2792 (gomp_init_task): Clear dependers, depend_hash, depend_count,
2793 copy_ctors_done and taskgroup fields.
2794 (GOMP_task): Add depend argument, handle depend clauses. If
2795 gomp_team_barrier_cancelled or if it's taskgroup has been
2796 cancelled, don't queue or start new tasks. Set copy_ctors_done
2797 field if needed. Initialize taskgroup field. If copy_ctors_done
2798 and already cancelled, don't discard the task. If taskgroup is
2799 non-NULL, enqueue the task into taskgroup queue. Increment
2800 num_children field in taskgroup. Increment task_queued_count.
2801 (gomp_task_run_pre, gomp_task_run_post_remove_parent,
2802 gomp_task_run_post_remove_taskgroup): New inline functions.
2803 (gomp_task_run_post_handle_depend_hash,
2804 gomp_task_run_post_handle_dependers,
2805 gomp_task_run_post_handle_depend): New functions.
2806 (GOMP_taskwait): Use them. If more than one new tasks
2807 have been queued, wake other threads if needed.
2808 (gomp_barrier_handle_tasks): Likewise. If
2809 gomp_team_barrier_cancelled, don't start any new tasks, just free
2811 (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
2813 (omp_proc_bind_kind, omp_proc_bind_false,
2814 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
2815 omp_proc_bind_spread): New params.
2816 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2817 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2818 omp_get_team_num, omp_is_initial_device): New interfaces.
2819 (omp_get_dynamic, omp_get_nested, omp_in_parallel,
2820 omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
2821 omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
2822 omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
2823 omp_get_team_size, omp_get_active_level, omp_in_final): Remove
2824 useless use omp_lib_kinds.
2825 * omp.h.in (omp_proc_bind_t): New typedef.
2826 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2827 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2828 omp_get_team_num, omp_is_initial_device): New prototypes.
2829 * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
2830 through to gomp_team_start.
2831 (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
2832 GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
2833 Adjust gomp_parallel_loop_start callers.
2834 (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
2835 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
2836 GOMP_loop_end_cancel): New functions.
2837 (GOMP_parallel_end): Add ialias_redirect.
2838 * hashtab.h: New file.
2839 * libgomp.texi (Environment Variables): Minor cleanup,
2840 update section refs to OpenMP 4.0rc2.
2841 (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
2842 environment variables.
2843 * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
2844 team->work_shares_to_free to thr->ts.work_share before calling
2846 (gomp_work_share_end_cancel): New function.
2847 * config/linux/proc.c: Include errno.h.
2848 (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
2849 (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
2850 sizeof (cpu_set_t) to determine number of iterations. Fix up check
2851 extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
2852 gomp_cpuset_size is sizeof (cpu_set_t).
2853 (gomp_init_num_threads): Initialize gomp_cpuset_size,
2854 gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
2855 of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
2856 to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
2857 contain any logical CPUs.
2858 (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
2859 is NULL. Use gomp_cpusetp instead of &cpuset and pass
2860 gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
2861 pthread_getaffinity_np. Check gomp_places_list instead of
2862 gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
2863 * config/linux/bar.c (gomp_barrier_wait_end,
2864 gomp_barrier_wait_last): Use BAR_* defines.
2865 (gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
2866 from state where needed. Set work_share_cancelled to 0 on last
2868 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
2869 gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
2871 * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
2872 Add cpusetsize argument.
2873 (gomp_cpuset_size, gomp_cpusetp): Declare.
2874 * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
2875 (affinity_counter): Remove.
2876 (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
2877 if CPU_ALLOC_SIZE isn't defined.
2878 (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
2879 silently create OMP_PLACES=threads, if it is non-NULL afterwards,
2880 bind current thread to the first place.
2881 (gomp_init_thread_affinity): Rewritten. Add place argument, just
2882 pthread_setaffinity_np to gomp_places_list[place].
2883 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2884 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2885 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2886 gomp_affinity_init_level, gomp_affinity_print_place): New functions.
2887 * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
2888 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
2889 (gomp_barrier_t): Add awaited_final field.
2890 (gomp_barrier_init): Initialize awaited_final field.
2891 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
2892 gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
2894 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
2896 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
2897 gomp_team_barrier_cancelled): New inline functions.
2898 (gomp_barrier_last_thread,
2899 gomp_team_barrier_set_task_pending,
2900 gomp_team_barrier_clear_task_pending,
2901 gomp_team_barrier_set_waiting_for_tasks,
2902 gomp_team_barrier_waiting_for_tasks,
2903 gomp_team_barrier_done): Use BAR_* defines.
2904 * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
2905 (gomp_barrier_wait_end): Use BAR_* defines.
2906 (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
2907 Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
2909 (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
2910 gomp_team_barrier_cancel): New functions.
2911 * config/posix/affinity.c (gomp_init_thread_affinity): Add place
2913 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2914 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2915 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2916 gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
2917 * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
2918 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
2919 (gomp_barrier_t): Add cancellable field.
2920 (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
2921 gomp_team_barrier_cancel): New prototypes.
2922 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
2923 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
2924 gomp_team_barrier_cancelled): New inline functions.
2925 (gomp_barrier_wait_start, gomp_barrier_last_thread,
2926 gomp_team_barrier_set_task_pending,
2927 gomp_team_barrier_clear_task_pending,
2928 gomp_team_barrier_set_waiting_for_tasks,
2929 gomp_team_barrier_waiting_for_tasks,
2930 gomp_team_barrier_done): Use BAR_* defines.
2931 * barrier.c (GOMP_barrier_cancel): New function.
2932 * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
2933 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
2934 omp_proc_bind_spread): New params.
2935 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2936 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2937 omp_get_team_num, omp_is_initial_device): New externals.
2938 * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
2940 (gomp_resolve_num_threads): Adjust for thread_limit now being in
2941 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
2942 infinity. If not nested, just return minimum of max_num_threads
2943 and icv->thread_limit_var and if thr->thread_pool, set threads_busy
2944 to the returned value. Otherwise, don't update atomically
2945 gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
2946 (GOMP_parallel_end): Adjust for thread_limit now being in
2947 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
2948 infinity. Adjust threads_busy in the pool rather than
2949 gomp_remaining_threads_count. Remember team->nthreads and call
2950 gomp_team_end before adjusting threads_busy, if not nested
2951 afterwards, just set it to 1 non-atomically. Add ialias.
2952 (GOMP_parallel_start): Adjust gomp_team_start caller.
2953 * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
2954 * testsuite/libgomp.c/affinity-1.c: New test.
2955 * testsuite/libgomp.c/atomic-15.c: New test.
2956 * testsuite/libgomp.c/atomic-16.c: New test.
2957 * testsuite/libgomp.c/atomic-17.c: New test.
2958 * testsuite/libgomp.c/cancel-for-1.c: New test.
2959 * testsuite/libgomp.c/cancel-for-2.c: New test.
2960 * testsuite/libgomp.c/cancel-parallel-1.c: New test.
2961 * testsuite/libgomp.c/cancel-parallel-2.c: New test.
2962 * testsuite/libgomp.c/cancel-parallel-3.c: New test.
2963 * testsuite/libgomp.c/cancel-sections-1.c: New test.
2964 * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
2965 * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
2966 * testsuite/libgomp.c/depend-1.c: New test.
2967 * testsuite/libgomp.c/depend-2.c: New test.
2968 * testsuite/libgomp.c/depend-3.c: New test.
2969 * testsuite/libgomp.c/depend-4.c: New test.
2970 * testsuite/libgomp.c/for-1.c: New test.
2971 * testsuite/libgomp.c/for-1.h: New file.
2972 * testsuite/libgomp.c/for-2.c: New test.
2973 * testsuite/libgomp.c/for-2.h: New file.
2974 * testsuite/libgomp.c/for-3.c: New test.
2975 * testsuite/libgomp.c/pr58392.c: New test.
2976 * testsuite/libgomp.c/simd-1.c: New test.
2977 * testsuite/libgomp.c/simd-2.c: New test.
2978 * testsuite/libgomp.c/simd-3.c: New test.
2979 * testsuite/libgomp.c/simd-4.c: New test.
2980 * testsuite/libgomp.c/simd-5.c: New test.
2981 * testsuite/libgomp.c/simd-6.c: New test.
2982 * testsuite/libgomp.c/target-1.c: New test.
2983 * testsuite/libgomp.c/target-2.c: New test.
2984 * testsuite/libgomp.c/target-3.c: New test.
2985 * testsuite/libgomp.c/target-4.c: New test.
2986 * testsuite/libgomp.c/target-5.c: New test.
2987 * testsuite/libgomp.c/target-6.c: New test.
2988 * testsuite/libgomp.c/target-7.c: New test.
2989 * testsuite/libgomp.c/taskgroup-1.c: New test.
2990 * testsuite/libgomp.c/thread-limit-1.c: New test.
2991 * testsuite/libgomp.c/thread-limit-2.c: New test.
2992 * testsuite/libgomp.c/thread-limit-3.c: New test.
2993 * testsuite/libgomp.c/udr-1.c: New test.
2994 * testsuite/libgomp.c/udr-2.c: New test.
2995 * testsuite/libgomp.c/udr-3.c: New test.
2996 * testsuite/libgomp.c++/affinity-1.C: New test.
2997 * testsuite/libgomp.c++/atomic-10.C: New test.
2998 * testsuite/libgomp.c++/atomic-11.C: New test.
2999 * testsuite/libgomp.c++/atomic-12.C: New test.
3000 * testsuite/libgomp.c++/atomic-13.C: New test.
3001 * testsuite/libgomp.c++/atomic-14.C: New test.
3002 * testsuite/libgomp.c++/atomic-15.C: New test.
3003 * testsuite/libgomp.c++/cancel-for-1.C: New test.
3004 * testsuite/libgomp.c++/cancel-for-2.C: New test.
3005 * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
3006 * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
3007 * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
3008 * testsuite/libgomp.c++/cancel-sections-1.C: New test.
3009 * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
3010 * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
3011 * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
3012 * testsuite/libgomp.c++/cancel-test.h: New file.
3013 * testsuite/libgomp.c++/for-9.C: New test.
3014 * testsuite/libgomp.c++/for-10.C: New test.
3015 * testsuite/libgomp.c++/for-11.C: New test.
3016 * testsuite/libgomp.c++/simd-1.C: New test.
3017 * testsuite/libgomp.c++/simd-2.C: New test.
3018 * testsuite/libgomp.c++/simd-3.C: New test.
3019 * testsuite/libgomp.c++/simd-4.C: New test.
3020 * testsuite/libgomp.c++/simd-5.C: New test.
3021 * testsuite/libgomp.c++/simd-6.C: New test.
3022 * testsuite/libgomp.c++/simd-7.C: New test.
3023 * testsuite/libgomp.c++/simd-8.C: New test.
3024 * testsuite/libgomp.c++/target-1.C: New test.
3025 * testsuite/libgomp.c++/target-2.C: New test.
3026 * testsuite/libgomp.c++/target-2-aux.cc: New file.
3027 * testsuite/libgomp.c++/target-3.C: New test.
3028 * testsuite/libgomp.c++/taskgroup-1.C: New test.
3029 * testsuite/libgomp.c++/udr-1.C: New test.
3030 * testsuite/libgomp.c++/udr-2.C: New test.
3031 * testsuite/libgomp.c++/udr-3.C: New test.
3032 * testsuite/libgomp.c++/udr-4.C: New test.
3033 * testsuite/libgomp.c++/udr-5.C: New test.
3034 * testsuite/libgomp.c++/udr-6.C: New test.
3035 * testsuite/libgomp.c++/udr-7.C: New test.
3036 * testsuite/libgomp.c++/udr-8.C: New test.
3037 * testsuite/libgomp.c++/udr-9.C: New test.
3039 2013-09-20 Jakub Jelinek <jakub@redhat.com>
3042 * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
3045 2013-09-20 Alan Modra <amodra@gmail.com>
3047 * configure: Regenerate.
3049 2013-09-19 Jakub Jelinek <jakub@redhat.com>
3051 * testsuite/libgomp.c/sections-2.c: New test.
3053 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
3055 * testsuite/libgomp.fortran/strassen.f90:
3056 Add dg-skip-if aarch64_tiny.
3058 2013-06-20 Iain Sandoe <iain@codesourcery.com>
3059 Cesar Philippidis <cesar@codesourcery.com>
3061 * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
3062 Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
3063 * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
3064 * testsuite/libgomp.fortran/fortran.exp: Likewise.
3065 * testsuite/libgomp.graphite/graphite.exp: Likewise.
3066 * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
3067 Use dg-runtest rather than gfortran-dg-runtest.
3069 2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
3071 * testsuite/libgomp.c/icv-2.c: Extend current handling of
3072 Linux-based x86 systems to cover all GNU systems.
3073 * testsuite/libgomp.c/lock-3.c: Likewise.
3074 * testsuite/libgomp.c/pr48591.c: Likewise.
3076 2013-06-06 Thomas Schwinge <thomas@codesourcery.com>
3078 * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
3079 GNU/Hurd, as done for Linux-based systems.
3081 * config/posix/ptrlock.h: Fix comment.
3083 2013-05-27 Tobias Burnus <burnus@net-b.de>
3086 * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
3087 omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
3088 omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
3089 omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
3090 omp_destroy_nest_lock): Correct arguments to match the one in
3092 * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
3093 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
3094 omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
3095 omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
3097 2013-05-16 Jakub Jelinek <jakub@redhat.com>
3099 * testsuite/libgomp.c/loop-13.c: New test.
3100 * testsuite/libgomp.c/loop-14.c: New test.
3101 * testsuite/libgomp.c/loop-15.c: New test.
3102 * testsuite/libgomp.c++/loop-13.C: New test.
3103 * testsuite/libgomp.c++/loop-14.C: New test.
3104 * testsuite/libgomp.c++/loop-15.C: New test.
3106 2013-02-06 Jakub Jelinek <jakub@redhat.com>
3109 * testsuite/libgomp.c++/pr56217.C: New test.
3111 2013-02-01 Alan Modra <amodra@gmail.com>
3113 * task.c (GOMP_task, GOMP_taskwait): Comment.
3115 2013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org>
3116 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
3119 * config/linux/wait.h (do_spin): Use atomic load for addr.
3120 * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
3121 for intptr and ptrlock.
3122 * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
3125 2013-01-22 Alan Modra <amodra@gmail.com>
3129 * task.c (GOMP_task): Revert 2011-12-09 change.
3130 (GOMP_taskwait): Likewise. Instead use atomic load with acquire
3131 barrier to read task->children..
3132 (gomp_barrier_handle_tasks): ..and matching atomic store with
3133 release barrier here when setting parent->children to NULL.
3135 2013-01-16 Jakub Jelinek <jakub@redhat.com>
3136 Tobias Burnus <burnus@net-b.de>
3139 * testsuite/libgomp.fortran/fortran.exp: Use
3140 -fintrinsic-modules-path= instead of
3141 -fintrinsic-modules-path.
3143 2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
3145 Update copyright years.
3147 2012-12-19 Tobias Burnus <burnus@net-b.de>
3149 * testsuite/libgomp.fortran/fortran.exp: Set
3150 -fintrinsic-modules-path.
3152 2012-12-19 Tobias Burnus <burnus@net-b.de>
3154 * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
3155 from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
3157 2012-11-21 Jakub Jelinek <jakub@redhat.com>
3160 * team.c (gomp_free_thread): Decrease gomp_managed_threads
3161 if pool had any threads_used.
3163 2012-11-07 Jack Howarth <howarth@bromo.med.uc.edu>
3165 * testsuite/libgomp.c++/pr24455.C: Use
3166 -Wl,-undefined,dynamic_lookup on darwin.
3168 2012-11-07 David Edelsohn <dje.gcc@gmail.com>
3170 * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
3172 2012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr>
3174 * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
3176 2012-10-23 Ian Bolton <ian.bolton@arm.com>
3177 Jim MacArthur <jim.macarthur@arm.com>
3178 Marcus Shawcroft <marcus.shawcroft@arm.com>
3179 Nigel Stephens <nigel.stephens@arm.com>
3180 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3181 Richard Earnshaw <rearnsha@arm.com>
3182 Sofiane Naci <sofiane.naci@arm.com>
3183 Stephen Thomas <stephen.thomas@arm.com>
3184 Tejas Belagod <tejas.belagod@arm.com>
3185 Yufeng Zhang <yufeng.zhang@arm.com>
3187 * configure.tgt: Add AArch64.
3189 2012-10-04 Jason Merrill <jason@redhat.com>
3191 * testsuite/libgomp.c++/tls-init1.C: New.
3193 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
3195 * configure: Regenerated.
3197 2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
3199 * config/linux/mips/futex.h (sys_futex0): Change to static
3200 function with noinline, nomips16 attributes under MIPS16. Adjust
3201 asm statement to place 'li v0,SYS_futex' immediately before
3204 2012-07-04 Sandra Loosemore <sandra@codesourcery.com>
3206 * libgomp.texi (Library Index): Renamed from "Index" to prevent
3207 conflict with index.html on case-insensitive file systems.
3209 2012-07-03 Uros Bizjak <ubizjak@gmail.com>
3211 * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
3212 * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
3214 2012-07-02 Richard Guenther <rguenther@suse.de>
3215 Michael Matz <matz@suse.de>
3216 Tobias Grosser <tobias@grosser.es>
3217 Sebastian Pop <sebpop@gmail.com>
3219 * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
3220 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
3221 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
3222 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
3224 2012-06-28 Andreas Schwab <schwab@linux-m68k.org>
3226 * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
3228 2012-06-22 Richard Guenther <rguenther@suse.de>
3230 Merge from graphite branch
3231 2012-01-13 Tobias Grosser <tobias@grosser.es>
3233 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3234 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
3236 2012-06-07 Jakub Jelinek <jakub@redhat.com>
3239 * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
3240 use GOMP_barrier () call instead.
3241 * testsuite/libgomp.c/pr26943-3.c: Likewise.
3242 * testsuite/libgomp.c/pr26943-4.c: Likewise.
3243 * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
3244 call GOMP_barrier instead.
3245 * testsuite/libgomp.fortran/vla5.f90: Likewise.
3247 2012-06-06 Jakub Jelinek <jakub@redhat.com>
3250 * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
3251 argument to memset call.
3253 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
3255 * configure: Regenerated.
3257 2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
3259 * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
3261 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
3264 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
3266 2012-03-22 Jakub Jelinek <jakub@redhat.com>
3269 * testsuite/libgomp.c/pr52547.c: New test.
3271 2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3273 * testsuite/lib/libgomp.exp: load fortran-modules.exp
3275 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3277 * configure.tgt (mips-sgi-irix6*): Remove.
3279 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3281 * configure.tgt (alpha*-dec-osf*): Remove.
3283 * config/osf/sem.h: Remove.
3284 * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
3286 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
3288 * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
3290 2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3293 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
3294 Remove ENABLE_SYMVERS_SOL2.
3295 * configure: Regenerate.
3296 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
3297 (PREPROCESS): New variable.
3298 (libgomp.ver): New target.
3299 [LIBGOMP_BUILD_VERSIONED_SHLIB &&
3300 LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
3301 LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
3303 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
3304 * Makefile.in: Regenerate.
3306 2012-02-14 Walter Lee <walt@tilera.com>
3308 * configure.tgt: Handle tilegx and tilepro.
3309 * config/linux/tile/futex.h: New file.
3311 2012-02-08 Richard Guenther <rguenther@suse.de>
3313 PR tree-optimization/46886
3314 * testsuite/libgomp.c/pr46886.c: New testcase.
3316 2012-01-25 Matthias Klose <doko@ubuntu.com>
3318 * config/linux/arm: Remove empty directory.
3319 * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
3321 2011-12-09 Alan Modra <amodra@gmail.com>
3324 * task.c (GOMP_taskwait): Don't access task->children outside of
3325 task_lock mutex region.
3326 (GOMP_task): Likewise.
3328 2011-12-06 Jakub Jelinek <jakub@redhat.com>
3331 * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
3333 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
3334 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
3335 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
3336 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
3337 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
3339 2011-12-02 Alan Modra <amodra@gmail.com>
3341 * config/linux/affinity.c: Use atomic rather than sync builtin.
3342 * config/linux/lock.c: Likewise.
3343 * config/linux/ptrlock.h: Likewise.
3344 * config/linux/ptrlock.c: Likewise.
3345 * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
3346 * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
3347 * config/linux/futex.h (atomic_write_barrier): Delete unused function.
3348 * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
3349 * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
3350 * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
3351 * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
3352 * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
3353 * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
3354 * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
3356 2011-11-30 Alan Modra <amodra@gmail.com>
3359 * config/linux/bar.h: Use atomic rather than sync builtins.
3360 * config/linux/bar.c: Likewise. Add missing acquire
3361 synchronisation on generation field.
3362 * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
3365 2011-11-30 Alan Modra <amodra@gmail.com>
3367 * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
3368 * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
3369 * config/linux/mutex.h: Use atomic rather than sync builtins.
3370 * config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state.
3371 * config/linux/omp-lock.h: Comment fix.
3372 * config/linux/arm/mutex.h: Delete.
3373 * config/linux/powerpc/mutex.h: Delete.
3374 * config/linux/ia64/mutex.h: Delete.
3375 * config/linux/mips/mutex.h: Delete.
3377 2011-11-30 Alan Modra <amodra@gmail.com>
3380 * config/linux/sem.h: Rewrite.
3381 * config/linux/sem.c: Rewrite.
3383 2011-11-28 Richard Henderson <rth@redhat.com>
3385 * libgomp.h (enum memmodel): New.
3387 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
3389 * configure: Regenerate.
3391 2011-10-10 Matthias Klose <doko@ubuntu.com>
3393 * config/posix95: Remove empty directory.
3395 2011-08-26 Jakub Jelinek <jakub@redhat.com>
3397 * testsuite/libgomp.fortran/threadprivate4.f90: New test.
3399 2011-08-19 Jakub Jelinek <jakub@redhat.com>
3402 * testsuite/libgomp.fortran/pr49792-1.f90: New test.
3403 * testsuite/libgomp.fortran/pr49792-2.f90: New test.
3405 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3407 * config/posix95/lock.c, posix95/omp-lock.h: Remove.
3409 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3412 * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
3414 2011-08-03 Uros Bizjak <ubizjak@gmail.com>
3416 * config/linux/proc.h: New.
3417 * config/linux/proc.c: Include "proc.h". Do not include <sched.h>.
3418 (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static.
3419 (gomp_init_num_threads): Update call to cpuset_popcount.
3420 (get_num_procs): Ditto.
3421 * config/linux/affinity.c (gomp_init_affinity): Call
3422 gomp_cpuset_popcount.
3424 2011-08-02 Jakub Jelinek <jakub@redhat.com>
3428 * omp.h.in (omp_in_final): New prototype.
3429 * omp_lib.f90.in (omp_in_final): New interface.
3430 (omp_integer_kind, omp_logical_kind): Remove
3431 and replace all its uses in the module with 4.
3432 (openmp_version): Change to 201107.
3433 * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
3434 omp_sched_guided, omp_sched_auto): Use omp_sched_kind
3435 kind for the parameters.
3436 (omp_in_final): New external.
3437 (openmp_version): Change to 201107.
3438 * task.c (omp_in_final): New function.
3439 (gomp_init_task): Initialize final_task.
3440 (GOMP_task): Remove unused attribute from flags. Handle final
3442 (GOMP_taskyield): New function.
3443 (omp_in_final): Return true if if (false) or final (true) task
3444 or descendant of final (true).
3445 * fortran.c (omp_in_final_): New function.
3446 * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
3447 (GOMP_3.0): Export GOMP_taskyield.
3448 * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
3450 (parse_unsigned_long_list): New function.
3451 (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
3452 with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
3453 even if parse_affinity returned false.
3454 * config/linux/affinity.c (gomp_init_affinity): Handle
3455 gomp_cpu_affinity_len == 0.
3456 * libgomp_g.h (GOMP_taskyield): New prototype.
3457 * libgomp.h (struct gomp_task): Add final_task field.
3458 (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
3459 * team.c (gomp_team_start): Override new task's nthreads_var icv
3460 if list form OMP_NUM_THREADS has been used and it has value for
3461 the new nesting level.
3463 * testsuite/libgomp.c/atomic-11.c: New test.
3464 * testsuite/libgomp.c/atomic-12.c: New test.
3465 * testsuite/libgomp.c/atomic-13.c: New test.
3466 * testsuite/libgomp.c/atomic-14.c: New test.
3467 * testsuite/libgomp.c/reduction-6.c: New test.
3468 * testsuite/libgomp.c/task-5.c: New test.
3469 * testsuite/libgomp.c++/atomic-2.C: New test.
3470 * testsuite/libgomp.c++/atomic-3.C: New test.
3471 * testsuite/libgomp.c++/atomic-4.C: New test.
3472 * testsuite/libgomp.c++/atomic-5.C: New test.
3473 * testsuite/libgomp.c++/atomic-6.C: New test.
3474 * testsuite/libgomp.c++/atomic-7.C: New test.
3475 * testsuite/libgomp.c++/atomic-8.C: New test.
3476 * testsuite/libgomp.c++/atomic-9.C: New test.
3477 * testsuite/libgomp.c++/task-8.C: New test.
3478 * testsuite/libgomp.c++/reduction-4.C: New test.
3479 * testsuite/libgomp.fortran/allocatable7.f90: New test.
3480 * testsuite/libgomp.fortran/allocatable8.f90: New test.
3481 * testsuite/libgomp.fortran/crayptr3.f90: New test.
3482 * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
3483 * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
3484 * testsuite/libgomp.fortran/pointer1.f90: New test.
3485 * testsuite/libgomp.fortran/pointer2.f90: New test.
3486 * testsuite/libgomp.fortran/task4.f90: New test.
3488 2011-08-02 Tobias Burnus <burnus@net-b.de>
3490 * libgomp.texi: Update OpenMP spec references to 3.1.
3491 (omp_in_final,OMP_PROC_BIND): New sections.
3492 (OMP_NUM_THREADS): Document that the value can be now a list.
3493 (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
3495 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
3497 * config/linux/x86/futex.h: Check __x86_64__ instead of
3500 2011-07-29 Jakub Jelinek <jakub@redhat.com>
3504 * testsuite/libgomp.c/pr49897-1.c: New test.
3505 * testsuite/libgomp.c/pr49897-2.c: New test.
3506 * testsuite/libgomp.c/pr49898-1.c: New test.
3507 * testsuite/libgomp.c/pr49898-2.c: New test.
3509 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3511 * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
3512 for ia32 instead of ilp32.
3514 * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
3515 * testsuite/libgomp.c/atomic-6.c: Likewise.
3517 2011-07-23 Sebastian Pop <sebastian.pop@amd.com>
3519 * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
3520 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
3522 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3525 * config/osf/sem.h: New file.
3526 * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
3528 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3531 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
3534 2011-07-15 Jakub Jelinek <jakub@redhat.com>
3536 * config/linux/wait.h (do_spin): New inline, largely copied
3537 from do_wait, just don't do futex_wait here, instead return true if
3539 (do_wait): Implement using do_spin.
3540 * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
3542 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
3543 __sync_bool_compare_and_swap, pass the oldval to
3544 gomp_mutex_lock_slow.
3545 * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
3546 If all mutex contenders are just spinning and not sleeping, don't
3547 change state to 2 unnecessarily. Optimize the loop when state has
3548 already become 2 to use just one atomic operation per loop instead
3550 * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
3552 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
3553 __sync_bool_compare_and_swap, pass the oldval to
3554 gomp_mutex_lock_slow.
3556 2011-06-22 Jakub Jelinek <jakub@redhat.com>
3559 * iter.c (gomp_iter_static_next): For chunk size 0
3560 only use n ceil/ nthreads size for the first
3561 n % nthreads threads in the team instead of
3562 all threads except for the last few ones which
3563 get less work or none at all.
3564 * iter_ull.c (gomp_iter_ull_static_next): Likewise.
3565 * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
3566 chunk argument, set run_sched_modifier to 0 for static
3567 resp. 1 for other kinds. If chunk argument is 0
3568 and not static, set value to 1.
3570 2011-05-19 Jakub Jelinek <jakub@redhat.com>
3573 * testsuite/libgomp.c++/pr49043.C: New test.
3576 * testsuite/libgomp.c++/pr48869.C: New test.
3578 2011-05-06 Jakub Jelinek <jakub@redhat.com>
3581 * fortran.c: Include limits.h.
3583 (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
3585 (omp_set_num_threads_8_, omp_set_schedule_8_,
3586 omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
3587 omp_get_team_size_8_): Use TO_INT macro.
3588 * testsuite/libgomp.fortran/pr48894.f90: New test.
3590 2011-04-13 Jakub Jelinek <jakub@redhat.com>
3593 * testsuite/libgomp.c/pr48591.c: New test.
3595 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3598 * acinclude.m4 (enable_symvers): Handle --disable-symvers.
3599 * configure: Regenerate.
3601 2011-02-27 Jakub Jelinek <jakub@redhat.com>
3604 * testsuite/libgomp.fortran/task3.f90: New test.
3606 2011-02-24 Tobias Burnus <burnus@net-b.de>
3608 * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
3610 2011-02-23 Jakub Jelinek <jakub@redhat.com>
3613 * libgomp.texi (omp_get_wtime): Don't say time in the past
3616 2011-02-18 Jakub Jelinek <jakub@redhat.com>
3619 * testsuite/libgomp.fortran/fortran.exp: Check for both
3620 libquadmath.a and libquadmath.${shlib_ext}. If neither exists,
3621 but $blddir != "", still append ${blddir}/${lang_library_path}
3624 2011-02-16 Tobias Burnus <burnus@net-b.de>
3627 * testsuite/libgomp.fortran/fortran.exp: Check for the existence
3628 of libquadmath.a before adding its libpath to ldflags.
3630 2011-02-14 Jakub Jelinek <jakub@redhat.com>
3633 * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
3634 to FUTEX_WAIT futex syscall.
3635 * config/linux/wait.h: Include <futex.h> instead of "futex.h".
3637 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3639 * configure: Regenerate.
3641 2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
3644 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
3646 2011-01-16 Gerald Pfeifer
3648 * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
3650 2010-12-14 Jakub Jelinek <jakub@redhat.com>
3653 * libgomp.fortran/allocatable6.f90: New test.
3655 2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3657 * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
3658 * configure: Regenerate.
3660 2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com>
3664 * configure.ac: Invoke ACX_LT_HOST_FLAGS.
3665 * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
3666 * aclocal.m4: Regenerate.
3667 * configure: Regenerate.
3668 * Makefile.in: Regenerate.
3669 * testsuite/Makefile.in: Regenerate.
3671 2010-12-02 Jakub Jelinek <jakub@redhat.com>
3674 * libgomp.fortran/pr46753.f90: New test.
3677 * env.c (initialize_env): Default to spin count 300000
3678 instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
3682 * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
3683 at the end if sync builtins aren't supported.
3685 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3687 * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
3689 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3691 * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
3693 2010-11-24 Iain Sandoe <iains@gcc.gnu.org>
3695 * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
3697 2010-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3698 Tobias Burnus <burnus@net-b.de>
3702 * configure: Regenerate.
3704 2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
3706 * config/linux/futex.h: New.
3707 * config/linux/arm/mutex.h: New.
3708 * configure.tgt (arm*-*-linux*): Add config path.
3710 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3712 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3714 2010-09-23 Tobias Burnus <burnus@net-b.de>
3716 * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
3717 Change Fortran datatype to LOGICAL.
3718 (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
3719 omp_unset_nested_lock): Use intent(inout) instead of intent(out).
3721 2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3723 * configure: Regenerate.
3725 2010-07-26 Jakub Jelinek <jakub@redhat.com>
3727 * libgomp.texi: Add function keyword to a couple of Fortran
3728 interfaces, use integer instead of int for Fortran.
3730 2010-07-26 Aldy Hernandez <aldyh@redhat.com>
3732 * libgomp.texi: Fix spelling and pasto problems throughout.
3733 Adjust prototypes to match code.
3735 2010-07-24 Tobias Burnus <burnus@net-b.de>
3737 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
3738 silence -fwhole-file warning.
3740 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3742 * configure.tgt (*-*-solaris2.[56]*): Removed.
3744 2010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3746 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
3747 Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
3748 LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
3749 (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
3750 targetting solaris2*.
3751 * configure: Regenerate.
3752 * config.h.in: Regenerate.
3754 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
3755 libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
3756 Add libgomp_version_dep.
3757 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
3759 [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
3760 (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
3761 * Makefile.in: Regenerate.
3763 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
3764 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
3765 * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
3766 to common block, protected by
3767 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
3769 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
3771 * libgomp.texi: Move to GFDL version 1.3. Update copyright years.
3773 2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
3776 * configure: Regenerate.
3778 2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3781 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
3782 * configure: Regenerate.
3783 * Makefile.in: Regenerate.
3784 * testsuite/Makefile.in: Regenerate.
3786 2010-04-26 Jakub Jelinek <jakub@redhat.com>
3789 * testsuite/libgomp.c/pr43893.c: New test.
3790 * testsuite/libgomp.c++/pr43893.C: New test.
3792 2010-04-21 Jakub Jelinek <jakub@redhat.com>
3795 * testsuite/libgomp.fortran/vla8.f90: New test.
3797 2010-04-20 Jakub Jelinek <jakub@redhat.com>
3800 * config/linux/affinity.c (gomp_init_affinity): Decrease
3801 gomp_available_cpus if affinity mask confines the process to fewer
3803 * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
3804 non-NULL, just return gomp_available_cpus.
3807 * sections.c (gomp_sections_init): Initialize ws->mode.
3809 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
3811 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
3812 not unused bar variable.
3813 * configure: Regenerate.
3815 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3817 * Makefile.in: Regenerate.
3818 * aclocal.m4: Regenerate.
3819 * testsuite/Makefile.in: Regenerate.
3821 2010-03-22 Jakub Jelinek <jakub@redhat.com>
3824 * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
3825 (initialize_env): Adjust callers.
3826 (omp_set_max_active_levels): Set gomp_max_active_levels_var even
3827 when the argument is 0.
3829 * testsuite/libgomp.c/pr42942.c: New test.
3831 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
3835 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3836 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
3838 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3840 * testsuite/libgomp.c++/task-1.C: Renamed err to e.
3841 * testsuite/libgomp.c++/task-6.C: Likewise.
3843 2010-01-28 Steve Ellcey <sje@cup.hp.com>
3845 * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
3847 2010-01-26 Paolo Bonzini <bonzini@gnu.org>
3849 * configure.ac: Test for executability of _the first word_ of GFORTRAN.
3850 * configure: Regenerate.
3852 2010-01-26 Jakub Jelinek <jakub@redhat.com>
3855 * testsuite/libgomp.fortran/allocatable5.f90: New test.
3857 2010-01-20 Paolo Bonzini <bonzini@gnu.org>
3859 * configure.ac: Test for executability of GFORTRAN.
3860 * configure: Regenerate.
3862 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3864 * configure: Regenerate.
3866 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
3869 * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
3871 2010-01-03 Richard Guenther <rguenther@suse.de>
3873 * testsuite/libgomp.fortran/recursion1.f90: New testcase.
3875 2009-12-23 Sebastian Pop <sebpop@gmail.com>
3877 * testsuite/libgomp.graphite/pr4118.c: New.
3879 2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
3881 * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
3882 for darwin, protect the test with require-effective-target tls_runtime.
3883 * testsuite/libgomp.fortran/pr32550.f90: Ditto.
3885 2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
3888 * testsuite/lib/libgomp.exp: Provide -B options to allow for
3889 link spec %s substitutions for static libraries.
3891 2009-12-18 Jack Howarth <howarth@bromo.med.uc.edu>
3894 * libgomp.graphite/force-parallel-2.c: Reduce array size.
3896 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3898 * Makefile.in: Regenerate.
3899 * configure: Regenerate.
3900 * testsuite/Makefile.in: Regenerate.
3902 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
3904 * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
3905 settings for LC_ALL and LANG.
3907 2009-11-25 Jakub Jelinek <jakub@redhat.com>
3910 * testsuite/libgomp.fortran/pr42162.f90: New test.
3912 2009-11-13 Jakub Jelinek <jakub@redhat.com>
3915 * testsuite/libgomp.c/pr42029.c: New test.
3917 2009-10-26 Jakub Jelinek <jakub@redhat.com>
3919 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
3920 *s. Accept ld version without text in ()s.
3921 * configure: Regenerated.
3923 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
3925 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
3927 2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3930 * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
3931 or a hyphen (happens with fortran language disabled).
3932 * configure: Regenerate.
3934 2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3936 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
3937 use sed script portable to Solaris /bin/sed for extracting ld
3939 * configure: Regenerate.
3941 2009-09-17 Alexander Monakov <amonakov@ispras.ru>
3943 * testsuite/libgomp.graphite/bounds.c: New test.
3945 2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3947 * Makefile.am (libgomp_la_LINK): New.
3948 * Makefile.in: Regenerate.
3950 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3952 * configure.ac (AC_PREREQ): Bump to 2.64.
3954 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3956 * Makefile.am (install-html, install-pdf): Remove.
3957 * Makefile.in: Regenerate.
3959 * Makefile.in: Regenerate.
3960 * aclocal.m4: Regenerate.
3961 * config.h.in: Regenerate.
3962 * configure: Regenerate.
3963 * testsuite/Makefile.in: Regenerate.
3965 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3967 * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
3968 * Makefile.in: Regenerate.
3970 2009-08-20 Dave Korn <dave.korn.cygwin@gmail.com>
3972 * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
3973 * Makefile.in: Regenerate.
3975 2009-08-19 Tobias Burnus <burnus@net-b.de>
3978 omp_lib.h.in: Fix -std=f95 errors.
3981 2009-08-14 David Edelsohn <edelsohn@gnu.org>
3983 * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
3984 * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
3985 * testsuite/libgomp.graphite/graphite.exp: New.
3987 2009-08-05 Andreas Tobler <a.tobler@schweiz.org>
3989 * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
3992 2009-08-04 David Daney <ddaney@caviumnetworks.com>
3994 * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
3995 needed memory barrier semantics.
3996 * config/linux/mips/mutex.h: New file.
3998 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4000 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
4002 2009-07-16 Joseph Myers <joseph@codesourcery.com>
4004 * configure: Regenerate.
4006 2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
4011 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
4012 * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
4013 testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
4015 2009-07-02 Richard Sandiford <r.sandiford@uk.ibm.com>
4017 * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
4018 options when choosing a multilib.
4020 2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
4022 * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
4023 ld_library_path. Use add_path. Add just find_libgcc_s to
4024 ld_library_path, not every libgcc multilib directory.
4025 * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
4026 gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
4027 * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
4029 * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
4031 2009-06-09 Nathan Froyd <froydnj@codesourcery.com>
4033 * Makefile.am (LTLDFLAGS): Define.
4035 * Makefile.in: Regenerate.
4037 2009-05-27 Janne Blomqvist <jb@gcc.gnu.org>
4040 * testsuite/libgomp.fortran/fortran.exp: Don't link with
4041 libgfortranbegin, check existence of libgfortran.a instead of
4044 2009-05-20 Jakub Jelinek <jakub@redhat.com>
4047 * team.c (gomp_thread_start): Destroy thr->release semaphore.
4048 (gomp_free_pool_helper): Likewise.
4050 2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
4051 Jakub Jelinek <jakub@redhat.com>
4054 * testsuite/libgomp.fortran/workshare2.f90: New test.
4056 2009-04-09 Nick Clifton <nickc@redhat.com>
4058 * iter.c: Change copyright header to refer to version 3 of the
4059 GNU General Public License with version 3.1 of the GCC Runtime
4060 Library Exception and to point readers at the COPYING3 and
4061 COPYING3.RUNTIME files and the FSF's license web page.
4062 * alloc.c: Likewise.
4063 * barrier.c: Likewise.
4064 * config/bsd/proc.c: Likewise.
4065 * config/linux/affinity.c: Likewise.
4066 * config/linux/alpha/futex.h: Likewise.
4067 * config/linux/bar.c: Likewise.
4068 * config/linux/bar.h: Likewise.
4069 * config/linux/ia64/futex.h: Likewise.
4070 * config/linux/ia64/mutex.h: Likewise.
4071 * config/linux/lock.c: Likewise.
4072 * config/linux/mips/futex.h: Likewise.
4073 * config/linux/mutex.c: Likewise.
4074 * config/linux/mutex.h: Likewise.
4075 * config/linux/powerpc/futex.h: Likewise.
4076 * config/linux/proc.c: Likewise.
4077 * config/linux/ptrlock.c: Likewise.
4078 * config/linux/ptrlock.h: Likewise.
4079 * config/linux/s390/futex.h: Likewise.
4080 * config/linux/sem.c: Likewise.
4081 * config/linux/sem.h: Likewise.
4082 * config/linux/sparc/futex.h: Likewise.
4083 * config/linux/wait.h: Likewise.
4084 * config/linux/x86/futex.h: Likewise.
4085 * config/mingw32/proc.c: Likewise.
4086 * config/mingw32/time.c: Likewise.
4087 * config/posix/affinity.c: Likewise.
4088 * config/posix/bar.c: Likewise.
4089 * config/posix/bar.h: Likewise.
4090 * config/posix/lock.c: Likewise.
4091 * config/posix/mutex.h: Likewise.
4092 * config/posix/proc.c: Likewise.
4093 * config/posix/ptrlock.h: Likewise.
4094 * config/posix/sem.c: Likewise.
4095 * config/posix/sem.h: Likewise.
4096 * config/posix/time.c: Likewise.
4097 * config/posix95/lock.c: Likewise.
4098 * critical.c: Likewise.
4100 * error.c: Likewise.
4101 * fortran.c: Likewise.
4102 * iter_ull.c: Likewise.
4103 * libgomp.h: Likewise.
4104 * libgomp_f.h.in: Likewise.
4105 * libgomp_g.h: Likewise.
4107 * loop_ull.c: Likewise.
4108 * omp.h.in: Likewise.
4109 * omp_lib.f90.in: Likewise.
4110 * omp_lib.h.in: Likewise.
4111 * ordered.c: Likewise.
4112 * parallel.c: Likewise.
4113 * sections.c: Likewise.
4114 * single.c: Likewise.
4119 2009-04-09 Jakub Jelinek <jakub@redhat.com>
4121 * testsuite/config/default.exp: Change copyright header to refer to
4122 version 3 of the GNU General Public License and to point readers
4123 at the COPYING3 file and the FSF's license web page.
4125 2009-04-08 Jakub Jelinek <jakub@redhat.com>
4128 * libgomp.c++/pr39573.C: New test.
4130 2009-04-01 Jakub Jelinek <jakub@redhat.com>
4133 * testsuite/libgomp.c/pr39591-1.c: New test.
4134 * testsuite/libgomp.c/pr39591-2.c: New test.
4135 * testsuite/libgomp.c/pr39591-3.c: New test.
4137 2009-03-25 Uros Bizjak <ubizjak@gmail.com>
4139 * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
4140 * testsuite/libgomp.c/atomic-6.c: Ditto.
4142 2009-03-23 Jakub Jelinek <jakub@redhat.com>
4145 * testsuite/libgomp.c/loop-12.c: New test.
4146 * testsuite/libgomp.c/loop-11.c: New test.
4147 * testsuite/libgomp.c++/loop-11.C: New test.
4148 * testsuite/libgomp.c++/loop-12.C: New test.
4149 * testsuite/libgomp.c++/for-8.C: New test.
4151 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4153 * configure: Regenerate.
4155 2009-02-11 Jakub Jelinek <jakub@redhat.com>
4158 * testsuite/libgomp.c/pr39154.c: New test.
4160 2009-01-30 Ian Lance Taylor <iant@google.com>
4162 * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
4163 libgomp_ld_is_gold. Get gold version number.
4164 (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
4165 * configure: Rebuild.
4167 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
4169 * testsuite/lib/libgomp.exp: Add -B option for targets that
4170 use libgfortran.a%s in their specs.
4172 2009-01-07 Jakub Jelinek <jakub@redhat.com>
4175 * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
4176 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
4177 HAVE_AS_SYMVER_DIRECTIVE is not defined.
4178 * configure: Regenerated.
4179 * config.h.in: Likewise.
4181 2008-12-28 Jakub Jelinek <jakub@redhat.com>
4184 * testsuite/libgomp.c/pr38650.c: New test.
4185 * testsuite/libgomp.c++/pr38650.C: New test.
4187 2008-12-27 Jakub Jelinek <jakub@redhat.com>
4189 * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
4191 2008-12-26 Uros Bizjak <ubizjak@gmail.com>
4193 * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
4195 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4197 * configure: Regenerate.
4199 2008-12-08 Jakub Jelinek <jakub@redhat.com>
4202 * testsuite/libgomp.c/pr36802-1.c: New test.
4203 * testsuite/libgomp.c/pr36802-2.c: New test.
4204 * testsuite/libgomp.c/pr36802-3.c: New test.
4206 2008-12-01 Janis Johnson <janis187@us.ibm.com>
4209 * config/linux/powerpc/mutex.h: New.
4211 2008-12-01 Jakub Jelinek <jakub@redhat.com>
4214 * testsuite/libgomp.c++/for-7.C: New test.
4217 * testsuite/libgomp.c++/for-6.C: New test.
4219 2008-11-26 Janis Johnson <janis187@us.ibm.com>
4222 * testsuite/lib/libgomp.exp: Include new timeout library files.
4223 (libgomp_target_compile): Set timeout value from new proc.
4225 2008-11-13 Steve Ellcey <sje@cup.hp.com>
4228 * config/linux/ia64/mutex.h: New.
4230 2008-11-04 Tobias Burnus <burnus@net-b.de>
4233 * libgomp.texi (Runtime library routines, environment variables):
4234 Update for OpenMP version 3.0.
4236 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
4237 Steve Ellcey <sje@cup.hp.com>
4239 * configure: Regenerate for new libtool.
4240 * Makefile.in: Ditto.
4241 * testsuite/Makefile.in: Ditto.
4243 2008-09-19 Jakub Jelinek <jakub@redhat.com>
4244 Andreas Tobler <a.tobler@schweiz.org>
4246 * config/bsd/proc.c: New file.
4247 * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
4248 * configure.ac: Check for header <sys/sysctl.h>
4249 * configure: Regenerate.
4250 * config.h.in: Likewise.
4252 2008-09-05 Janis Johnson <janis187@us.ibm.com>
4254 * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
4256 2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4258 * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
4259 * Makefile.in: Regenerated.
4260 * testsuite/Makefile.in: Regenerated.
4262 2008-08-21 Nathan Froyd <froydnj@codesourcery.com>
4264 * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
4265 depend on blddir if blddir exists.
4266 (libgomp_target_compile): Likewise.
4267 * testsuite/libgomp.c++/c++.exp: Likewise.
4268 * testsuite/libgomp.fortran/fortran.exp: Likewise.
4270 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4272 * libgomp.texi: Update to GFDL 1.2. Update copyright years.
4273 Do not list GPL as Invariant Section.
4275 2008-07-28 Ilie Garbacea <ilie@mips.com>
4276 Chao-ying Fu <fu@mips.com>
4278 * configure.tgt: Enable futex for MIPS.
4279 * config/linux/mips/futex.h: New file.
4281 2008-07-16 Jakub Jelinek <jakub@redhat.com>
4283 * team.c (gomp_team_end): Free team immediately if it has
4286 2008-07-08 David Edelsohn <edelsohn@gnu.org>
4288 * testsuite/libgomp.c++/c++.exp: Append multilib library path.
4289 * testsuite/libgomp.fortran/fortran.exp: Same.
4290 * testsuite/libgomp.c/c.exp: Same.
4291 * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
4292 directory to library path first.
4294 2008-06-29 Krister Walfridsson <krister.walfridsson@gmail.com>
4296 * env.c (parse_stacksize): Add cast to avoid warning.
4297 (parse_spincount): Likewise.
4299 2008-06-27 Jakub Jelinek <jakub@redhat.com>
4301 * testsuite/libgomp.c/loop-10.c: New test.
4302 * libgomp.c/loop-3.c (main): Add lastprivate clause.
4303 * libgomp.c++/loop-6.C (main): Likewise.
4306 * testsuite/libgomp.c/debug-1.c: New test.
4308 2008-06-19 Jakub Jelinek <jakub@redhat.com>
4310 * testsuite/libgomp.c/nqueens-1.c: New test.
4313 * testsuite/libgomp.c++/task-7.C: New function.
4315 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4317 * configure: Regenerate.
4319 2008-06-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4321 * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
4322 mutex when HAVE_SYNC_BUILTINS isn't defined.
4324 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4326 * libgomp.texi (omp_test_lock): Fix typo.
4328 2008-06-12 Tobias Burnus <burnus@net-b.de>
4330 * omp_lib.f90.in: Add "implicit none".
4332 2008-06-12 Jakub Jelinek <jakub@redhat.com>
4335 * testsuite/libgomp.c/reduction-5.c: New test.
4337 2008-06-11 Jakub Jelinek <jakub@redhat.com>
4339 * libgomp.h (struct gomp_task): Add in_tied_task field.
4340 * task.c (gomp_init_task): Initialize it.
4341 (GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending
4342 unconditionally. Don't call gomp_team_barrier_wake if
4343 current task is implicit or if(0) from implicit and number of
4344 running tasks is equal to nthreads - 1.
4347 * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
4348 omp_get_team_size_8): Fix pastos.
4351 * configure.ac: Add AC_CHECK_FUNCS (strtoull).
4352 * configure: Regenerated.
4353 * config.h.in: Regenerated.
4354 * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
4357 2008-06-06 Andreas Tobler <a.tobler@schweiz.org>
4360 * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
4361 (GOMP_loop_ull_dynamic_start): Likewise.
4362 (GOMP_loop_ull_guided_start): Likewise.
4363 (GOMP_loop_ull_ordered_static_start): Likewise.
4364 (GOMP_loop_ull_ordered_dynamic_start): Likewise.
4365 (GOMP_loop_ull_ordered_guided_start): Likewise.
4367 2008-06-06 Jakub Jelinek <jakub@redhat.com>
4368 Richard Henderson <rth@redhat.com>
4369 Ulrich Drepper <drepper@redhat.com>
4370 Jakob Blomer <jakob.blomer@ira.uka.de>
4372 * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
4373 Substitute also OMP_*LOCK_25*.
4374 * configure: Regenerated.
4375 * config.h.in: Regenerated.
4376 * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
4377 ptrlock.c and task.c.
4378 * Makefile.in: Regenerated.
4379 * testsuite/Makefile.in: Regenerated.
4381 * loop_ull.c: New file.
4382 * iter_ull.c: New file.
4383 * libgomp.h: Include ptrlock.h.
4384 (enum gomp_task_kind): New type.
4385 (struct gomp_team): Add task_lock, task_queue, task_count,
4386 task_running_count, single_count fields. Add
4387 work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
4388 Remove work_share_lock, generation_mask,
4389 oldest_live_gen, num_live_gen and init_work_shares fields, add
4390 work work_share_list_alloc, work_share_list_free and work_share_chunk
4391 fields. Change work_shares from pointer to pointers into an array.
4392 Change ordered_release field into gomp_sem_t ** from flexible array
4393 member. Add implicit_task and initial_work_shares fields.
4394 Move close to the end of the struct.
4395 (struct gomp_team_state): Add single_count, last_work_share,
4396 active_level and level fields, remove work_share_generation.
4397 (gomp_barrier_handle_tasks): New prototype.
4398 (gomp_finish_task): New inline function.
4399 (struct gomp_work_share): Move chunk_size, end, incr into
4400 transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
4401 next_ll fields. Reshuffle fields. Add next_alloc,
4402 next_ws, next_free and inline_ordered_team_ids fields, change
4403 ordered_team_ids into pointer from flexible array member.
4404 Add mode field. Put lock and next into a different cache line
4405 from most of the write-once fields.
4406 (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
4407 gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
4408 gomp_iter_ull_guided_next): New prototypes.
4409 (gomp_new_icv): New prototype.
4410 (struct gomp_thread): Add thread_pool and task fields.
4411 (struct gomp_thread_pool): New type.
4412 (gomp_new_team): New prototype.
4413 (gomp_team_start): Change type of last argument.
4414 (gomp_new_work_share): Removed.
4415 (gomp_init_work_share, gomp_fini_work_share): New prototypes.
4416 (gomp_work_share_init_done): New static inline.
4417 (gomp_throttled_spin_count_var, gomp_available_cpus,
4418 gomp_managed_threads): New extern decls.
4419 (gomp_init_task): New prototype.
4420 (gomp_spin_count_var): New extern var decl.
4421 (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
4422 or no alias support, or if not PIC.
4423 (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
4424 gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
4425 gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
4426 gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
4427 gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
4428 gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
4429 gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
4430 gomp_test_nest_lock_25): New prototypes.
4431 (omp_lock_symver, strong_alias): Define.
4432 (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
4434 (gomp_end_task): New.
4435 (struct gomp_task_icv, gomp_global_icv): New.
4436 (gomp_thread_limit_var, gomp_max_active_levels_var): New.
4437 (struct gomp_task): New.
4438 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
4439 gomp_run_sched_var, gomp_run_sched_chunk): Remove.
4441 (gomp_schedule_type): Reorder enum to match
4443 * team.c (struct gomp_thread_start_data): Add thread_pool and task
4445 (gomp_thread_start): Add gomp_team_barrier_wait call.
4446 For non-nested case remove clearing of docked thread thr fields.
4447 Use pool fields instead of global gomp_* variables. Use
4448 gomp_barrier_wait_last when needed. Initialize ts.active_level.
4449 Create tasks for each member thread.
4450 (free_team): Only destroy team barrier, task_lock here and free it.
4451 (gomp_free_thread): Free last_team if non-NULL.
4452 (gomp_team_end): Call gomp_team_barrier_wait instead of
4453 gomp_barrier_wait. For nested case call one extra
4454 gomp_barrier_wait. Move here some destruction from free_team.
4455 Call free_team on pool->last_team if any, rather than freeing
4456 current team. Destroy work_share_list_free_lock ifndef
4458 (gomp_new_icv): New function.
4459 (gomp_threads, gomp_threads_size, gomp_threads_used,
4460 gomp_threads_dock): Removed.
4461 (gomp_thread_destructor): New variable.
4462 (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
4464 (gomp_team_start): Create new pool if current thread doesn't have
4465 one. Use pool fields instead of global gomp_* variables.
4466 Initialize thread_pool field for new threads. Clear single_count.
4467 Change last argument from ws to team, don't create
4468 new team, set ts.work_share to &team->work_shares[0] and clear
4469 ts.last_work_share. Don't clear ts.work_share_generation.
4470 If number of threads changed, adjust atomically gomp_managed_threads.
4471 Use gomp_init_task instead of gomp_new_task,
4472 set thr->task to the corresponding implicit_task array entry.
4473 Create tasks for each member thread. Initialize ts.level.
4474 (initialize_team): Call pthread_key_create on
4475 gomp_thread_destructor.
4476 (team_destructor): New function.
4477 (new_team): Removed.
4478 (gomp_new_team): New function.
4479 (free_team): Free gomp_work_share blocks chained through next_alloc,
4480 instead of freeing work_shares and destroying work_share_lock.
4481 (gomp_team_end): Call gomp_fini_work_share. If number of threads
4482 changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
4483 * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
4484 of gomp_barrier_wait.
4485 * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
4486 instead of gomp_barrier_wait. Call gomp_work_share_init_done
4487 if gomp_work_share_start returned true. Don't unlock ws->lock.
4488 (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
4489 of gomp_barrier_wait.
4490 (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
4491 gomp_work_share_init_done if gomp_work_share_start returned true.
4492 Don't unlock ws->lock.
4493 * work.c: Include stddef.h.
4494 (free_work_share): Use work_share_list_free_lock instead
4495 of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
4496 Call gomp_fini_work_share and then either free ws if orphaned, or
4497 put it into work_share_list_free list of the current team.
4498 (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
4500 (gomp_work_share_start, gomp_work_share_end,
4501 gomp_work_share_end_nowait): Rewritten.
4502 * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
4503 (openmp_version): Set to 200805.
4504 (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
4505 omp_sched_guided, omp_sched_auto): New parameters.
4506 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4507 omp_set_max_active_levels, omp_get_max_active_levels,
4508 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
4509 omp_get_active_level): New interfaces.
4510 * omp_lib.h.in (openmp_version): Set to 200805.
4511 (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
4512 omp_sched_guided, omp_sched_auto): New parameters.
4513 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4514 omp_set_max_active_levels, omp_get_max_active_levels,
4515 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
4516 omp_get_active_level): New externals.
4517 * loop.c: Include limits.h.
4518 (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
4520 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
4521 Likewise. Use gomp_icv.
4522 (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
4523 ts.static_trip here.
4524 (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
4525 gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
4526 (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
4527 gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
4528 don't unlock ws->lock, otherwise lock it.
4529 (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
4530 gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
4531 (gomp_parallel_loop_start): Call gomp_new_team instead of
4532 gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
4533 Adjust gomp_team_start caller. Pass 0 as second argument to
4534 gomp_resolve_num_threads.
4535 (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
4536 If adding ws->chunk_size nthreads + 1 times after end won't
4537 overflow, set ws->mode to 1.
4538 * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
4539 GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
4540 GOMP_loop_ull_ordered_static_start,
4541 GOMP_loop_ull_ordered_dynamic_start,
4542 GOMP_loop_ull_ordered_guided_start,
4543 GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
4544 GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
4545 GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
4546 GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
4547 GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
4549 * libgomp.map: Export lock routines also @@OMP_2.0.
4550 (GOMP_loop_ordered_dynamic_first,
4551 GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
4552 GOMP_loop_ordered_static_first): Remove.
4553 (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
4554 GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
4555 GOMP_loop_ull_ordered_dynamic_next,
4556 GOMP_loop_ull_ordered_dynamic_start,
4557 GOMP_loop_ull_ordered_guided_next,
4558 GOMP_loop_ull_ordered_guided_start,
4559 GOMP_loop_ull_ordered_runtime_next,
4560 GOMP_loop_ull_ordered_runtime_start,
4561 GOMP_loop_ull_ordered_static_next,
4562 GOMP_loop_ull_ordered_static_start,
4563 GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
4564 GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
4565 GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
4566 (omp_set_schedule, omp_get_schedule,
4567 omp_get_thread_limit, omp_set_max_active_levels,
4568 omp_get_max_active_levels, omp_get_level,
4569 omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
4570 omp_set_schedule_, omp_set_schedule_8_,
4571 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
4572 omp_set_max_active_levels_, omp_set_max_active_levels_8_,
4573 omp_get_max_active_levels_, omp_get_level_,
4574 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
4575 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
4576 New exports @@OMP_3.0.
4577 * omp.h.in (omp_sched_t): New type.
4578 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4579 omp_set_max_active_levels, omp_get_max_active_levels,
4580 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
4581 omp_get_active_level): New prototypes.
4582 * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
4583 gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
4584 gomp_thread_limit_var, gomp_remaining_threads_count,
4585 gomp_remaining_threads_lock): New variables.
4586 (parse_spincount): New function.
4587 (initialize_env): Call gomp_init_num_threads unconditionally.
4588 Initialize gomp_available_cpus. Call parse_spincount,
4589 initialize gomp_{,throttled_}spin_count_var
4590 depending on presence and value of OMP_WAIT_POLICY and
4591 GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
4592 Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
4593 OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
4594 for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
4595 gomp_remaining_threads_lock if needed. Use gomp_global_icv.
4596 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
4597 gomp_run_sched_var, gomp_run_sched_chunk): Remove.
4598 (gomp_global_icv): New.
4599 (parse_schedule): Use it. Parse "auto".
4600 (omp_set_num_threads): Use gomp_icv.
4601 (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
4603 (omp_get_max_threads): Move from parallel.c.
4604 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4605 omp_set_max_active_levels, omp_get_max_active_levels): New functions,
4607 (parse_stacksize, parse_wait_policy): New functions.
4608 * fortran.c: Rewrite lock wrappers, if symbol versioning provide
4609 both wrappers for compatibility and new locks.
4610 (omp_set_schedule, omp_get_schedule,
4611 omp_get_thread_limit, omp_set_max_active_levels,
4612 omp_get_max_active_levels, omp_get_level,
4613 omp_get_ancestor_thread_num, omp_get_team_size,
4614 omp_get_active_level): New ialias_redirect.
4615 (omp_set_schedule_, omp_set_schedule_8_,
4616 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
4617 omp_set_max_active_levels_, omp_set_max_active_levels_8_,
4618 omp_get_max_active_levels_, omp_get_level_,
4619 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
4620 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
4622 * parallel.c: Include limits.h.
4623 (gomp_resolve_num_threads): Add count argument. Rewritten.
4624 (GOMP_parallel_start): Call gomp_new_team and pass that as last
4625 argument to gomp_team_start. Pass 0 as second argument to
4626 gomp_resolve_num_threads.
4627 (GOMP_parallel_end): Decrease gomp_remaining_threads_count
4628 if gomp_thread_limit_var != ULONG_MAX.
4629 (omp_in_parallel): Implement using ts.active_level.
4630 (omp_get_max_threads): Move to env.c.
4631 (omp_get_level, omp_get_ancestor_thread_num,
4632 omp_get_team_size, omp_get_active_level): New functions,
4634 * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
4635 after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
4636 gomp_iter_dynamic_next instead of the _locked variant and don't take
4637 lock around it, otherwise acquire it before calling
4638 gomp_iter_dynamic_next_locked.
4639 (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
4640 gomp_iter_dynamic_next instead of the _locked variant and don't take
4642 (GOMP_parallel_sections_start): Call gomp_new_team instead of
4643 gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
4644 Adjust gomp_team_start caller. Pass count as second argument to
4645 gomp_resolve_num_threads, don't adjust num_threads after the call.
4647 * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
4648 ws->chunk_size by incr.
4649 (gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
4651 * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
4653 (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
4654 (omp_check_defines): Check even the compat defines.
4655 * config/linux/ptrlock.c: New file.
4656 * config/linux/ptrlock.h: New file.
4657 * config/linux/wait.h: New file.
4658 * config/posix/ptrlock.c: New file.
4659 * config/posix/ptrlock.h: New file.
4660 * config/linux/bar.h (gomp_team_barrier_wait,
4661 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
4662 (gomp_team_barrier_set_task_pending,
4663 gomp_team_barrier_clear_task_pending,
4664 gomp_team_barrier_set_waiting_for_tasks,
4665 gomp_team_barrier_waiting_for_tasks,
4666 gomp_team_barrier_done): New inlines.
4667 (gomp_barrier_t): Rewritten.
4668 (gomp_barrier_state_t): New typedef.
4669 (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
4670 gomp_barrier_wait_start): Rewritten.
4671 (gomp_barrier_wait_end): Change second argument to
4672 gomp_barrier_state_t.
4673 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
4675 * config/linux/bar.c: Include wait.h instead of libgomp.h and
4677 (gomp_barrier_wait_end): Rewritten.
4678 (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
4679 gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
4680 * config/posix/bar.h (gomp_barrier_t): Add generation field.
4681 (gomp_barrier_state_t): New typedef.
4682 (gomp_team_barrier_wait,
4683 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
4684 (gomp_barrier_wait_start): Or all but low 2 bits from generation
4685 into the return value. Return gomp_barrier_state_t.
4686 (gomp_team_barrier_set_task_pending,
4687 gomp_team_barrier_clear_task_pending,
4688 gomp_team_barrier_set_waiting_for_tasks,
4689 gomp_team_barrier_waiting_for_tasks,
4690 gomp_team_barrier_done): New inlines.
4691 (gomp_barrier_wait_end): Change second argument to
4692 gomp_barrier_state_t.
4693 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
4695 * config/posix/bar.c (gomp_barrier_init): Clear generation field.
4696 (gomp_barrier_wait_end): Change second argument to
4697 gomp_barrier_state_t.
4698 (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
4699 gomp_team_barrier_wake): New functions.
4700 * config/linux/mutex.c: Include wait.h instead of libgomp.h and
4702 (gomp_futex_wake, gomp_futex_wait): New variables.
4703 (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
4704 * config/linux/lock.c: Rewrite to make locks task owned,
4705 for backwards compatibility provide the old entrypoints
4706 if symbol versioning. Include wait.h instead of libgomp.h and
4708 (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
4709 * config/posix95/lock.c: Rewrite to make locks task owned,
4710 for backwards compatibility provide the old entrypoints
4711 if symbol versioning.
4712 * config/posix/lock.c: Rewrite to make locks task owned,
4713 for backwards compatibility provide the old entrypoints
4714 if symbol versioning.
4715 * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
4716 (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
4717 * config/posix/proc.c, config/mingw32/proc.c: Similarly.
4718 * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4719 (sys_futex0): Return error code.
4720 (futex_wake, futex_wait): If ENOSYS was returned, clear
4721 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4722 (cpu_relax, atomic_write_barrier): New static inlines.
4723 * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4724 (futex_wake, futex_wait): If ENOSYS was returned, clear
4725 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4726 (cpu_relax, atomic_write_barrier): New static inlines.
4727 * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4728 (sys_futex0): Return error code.
4729 (futex_wake, futex_wait): If ENOSYS was returned, clear
4730 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4731 (cpu_relax, atomic_write_barrier): New static inlines.
4732 * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4733 (sys_futex0): Return error code.
4734 (futex_wake, futex_wait): If ENOSYS was returned, clear
4735 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4736 (cpu_relax, atomic_write_barrier): New static inlines.
4737 * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4738 (sys_futex0): Return error code.
4739 (futex_wake, futex_wait): If ENOSYS was returned, clear
4740 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4741 (cpu_relax, atomic_write_barrier): New static inlines.
4742 * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4743 (sys_futex0): Return error code.
4744 (futex_wake, futex_wait): If ENOSYS was returned, clear
4745 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4746 (cpu_relax, atomic_write_barrier): New static inlines.
4747 * config/linux/sem.c: Include wait.h instead of libgomp.h and
4749 (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
4750 * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
4751 * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
4753 (omp_nest_lock_t): Change owner into void *, add lock field.
4754 * config/posix95/omp-lock.h: Include semaphore.h.
4755 (omp_lock_25_t, omp_nest_lock_25_t): New types.
4756 (omp_lock_t): Use sem_t instead of mutex if semaphores
4758 (omp_nest_lock_t): Likewise. Change owner to void *.
4759 * config/posix/omp-lock.h: Include semaphore.h.
4760 (omp_lock_25_t, omp_nest_lock_25_t): New types.
4761 (omp_lock_t): Use sem_t instead of mutex if semaphores
4763 (omp_nest_lock_t): Likewise. Add owner field.
4765 2008-06-06 Jakub Jelinek <jakub@redhat.com>
4767 * testsuite/libgomp.c/collapse-1.c: New test.
4768 * testsuite/libgomp.c/collapse-2.c: New test.
4769 * testsuite/libgomp.c/collapse-3.c: New test.
4770 * testsuite/libgomp.c/icv-1.c: New test.
4771 * testsuite/libgomp.c/icv-2.c: New test.
4772 * testsuite/libgomp.c/lib-2.c: New test.
4773 * testsuite/libgomp.c/lock-1.c: New test.
4774 * testsuite/libgomp.c/lock-2.c: New test.
4775 * testsuite/libgomp.c/lock-3.c: New test.
4776 * testsuite/libgomp.c/loop-4.c: New test.
4777 * testsuite/libgomp.c/loop-5.c: New test.
4778 * testsuite/libgomp.c/loop-6.c: New test.
4779 * testsuite/libgomp.c/loop-7.c: New test.
4780 * testsuite/libgomp.c/loop-8.c: New test.
4781 * testsuite/libgomp.c/loop-9.c: New test.
4782 * testsuite/libgomp.c/nested-3.c: New test.
4783 * testsuite/libgomp.c/nestedfn-6.c: New test.
4784 * testsuite/libgomp.c/sort-1.c: New test.
4785 * testsuite/libgomp.c/task-1.c: New test.
4786 * testsuite/libgomp.c/task-2.c: New test.
4787 * testsuite/libgomp.c/task-3.c: New test.
4788 * testsuite/libgomp.c/task-4.c: New test.
4789 * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
4790 to C++ testsuite default compiler options.
4791 * testsuite/libgomp.c++/collapse-1.C: New test.
4792 * testsuite/libgomp.c++/collapse-2.C: New test.
4793 * testsuite/libgomp.c++/ctor-10.C: New test.
4794 * testsuite/libgomp.c++/for-1.C: New test.
4795 * testsuite/libgomp.c++/for-2.C: New test.
4796 * testsuite/libgomp.c++/for-3.C: New test.
4797 * testsuite/libgomp.c++/for-4.C: New test.
4798 * testsuite/libgomp.c++/for-5.C: New test.
4799 * testsuite/libgomp.c++/loop-8.C: New test.
4800 * testsuite/libgomp.c++/loop-9.C: New test.
4801 * testsuite/libgomp.c++/loop-10.C: New test.
4802 * testsuite/libgomp.c++/task-1.C: New test.
4803 * testsuite/libgomp.c++/task-2.C: New test.
4804 * testsuite/libgomp.c++/task-3.C: New test.
4805 * testsuite/libgomp.c++/task-4.C: New test.
4806 * testsuite/libgomp.c++/task-5.C: New test.
4807 * testsuite/libgomp.c++/task-6.C: New test.
4808 * testsuite/libgomp.fortran/allocatable1.f90: New test.
4809 * testsuite/libgomp.fortran/allocatable2.f90: New test.
4810 * testsuite/libgomp.fortran/allocatable3.f90: New test.
4811 * testsuite/libgomp.fortran/allocatable4.f90: New test.
4812 * testsuite/libgomp.fortran/collapse1.f90: New test.
4813 * testsuite/libgomp.fortran/collapse2.f90: New test.
4814 * testsuite/libgomp.fortran/collapse3.f90: New test.
4815 * testsuite/libgomp.fortran/collapse4.f90: New test.
4816 * testsuite/libgomp.fortran/lastprivate1.f90: New test.
4817 * testsuite/libgomp.fortran/lastprivate2.f90: New test.
4818 * testsuite/libgomp.fortran/lib4.f90: New test.
4819 * testsuite/libgomp.fortran/lock-1.f90: New test.
4820 * testsuite/libgomp.fortran/lock-2.f90: New test.
4821 * testsuite/libgomp.fortran/nested1.f90: New test.
4822 * testsuite/libgomp.fortran/nestedfn4.f90: New test.
4823 * testsuite/libgomp.fortran/strassen.f90: New test.
4824 * testsuite/libgomp.fortran/tabs1.f90: New test.
4825 * testsuite/libgomp.fortran/tabs2.f: New test.
4826 * testsuite/libgomp.fortran/task1.f90: New test.
4827 * testsuite/libgomp.fortran/task2.f90: New test.
4828 * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
4829 * testsuite/libgomp.fortran/vla5.f90: Likewise.
4830 * testsuite/libgomp.c/pr26943-2.c: Likewise.
4831 * testsuite/libgomp.c/pr26943-3.c: Likewise.
4832 * testsuite/libgomp.c/pr26943-4.c: Likewise.
4834 2008-05-23 Jakub Jelinek <jakub@redhat.com>
4837 * testsuite/libgomp.c++/ctor-11.C: New test.
4838 * testsuite/libgomp.c++/ctor-12.C: New test.
4840 2008-05-15 Janis Johnson <janis187@us.ibm.com>
4842 * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
4844 2008-05-07 Jakub Jelinek <jakub@redhat.com>
4847 * testsuite/libgomp.c/atomic-5.c: New test.
4848 * testsuite/libgomp.c/atomic-6.c: New test.
4849 * testsuite/libgomp.c/autopar-1.c: New test.
4851 2008-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4853 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
4854 (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
4855 (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
4856 (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
4857 * configure: Regenerate.
4858 * Makefile.in, testsuite/Makefile.in: Likewise.
4860 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
4863 * aclocal.m4: Regenerate.
4864 * configure: Regenerate.
4866 2008-03-18 Jakub Jelinek <jakub@redhat.com>
4869 * testsuite/libgomp.c/atomic-4.c: New test.
4872 * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
4873 (gomp_iter_guided_next): Likewise.
4874 * testsuite/libgomp.c/pr35625.c: New test.
4876 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4878 * aclocal.m4: Regenerate.
4879 * configure: Likewise.
4880 * Makefile.in: Likewise.
4881 * testsuite/Makefile.in: Likewise.
4883 2008-03-13 Jakub Jelinek <jakub@redhat.com>
4886 * testsuite/libgomp.c++/pr35185.C: New test.
4888 2008-03-12 Jakub Jelinek <jakub@redhat.com>
4891 * testsuite/libgomp.c/pr35549.c: New test.
4893 2008-03-06 Jakub Jelinek <jakub@redhat.com>
4895 * testsuite/libgomp.c/atomic-3.c: New test.
4897 2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4900 * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
4903 2008-03-03 Peter O'Gorman <pogma@thewrittenword.com>
4906 * configure.ac: Add ACX_HEADER_STRING.
4907 * env.c: Include strings.h.
4908 * aclocal.m4: Regenerate.
4909 * config.h.in: Regenerate.
4910 * configure: Regenerate.
4911 * Makefile.in: Regenerate.
4912 * testsuite/Makefile.in: Regenerate.
4914 2008-02-15 Jakub Jelinek <jakub@redhat.com>
4917 * testsuite/libgomp.c/pr35196.c: New test.
4920 * testsuite/libgomp.fortran/pr35130.f90: New test.
4921 * testsuite/libgomp.c/pr35130.c: New test.
4923 2008-01-25 Jakub Jelinek <jakub@redhat.com>
4926 * testsuite/libgomp.c/pr33880.c: New test.
4927 * testsuite/libgomp.fortran/pr33880.f90: New test.
4929 2008-01-24 David Edelsohn <edelsohn@gnu.org>
4931 * configure: Regenerate.
4933 2008-01-08 Jakub Jelinek <jakub@redhat.com>
4935 * configure.ac: Move futex checking into ../config/futex.m4.
4936 * configure: Rebuilt.
4937 * aclocal.m4: Rebuilt.
4938 * Makefile.in: Rebuilt.
4940 * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
4941 2007-10-15 ../config/tls.m4 change.
4943 2007-12-19 Jakub Jelinek <jakub@redhat.com>
4946 * testsuite/libgomp.c/pr34513.c: New test.
4947 * testsuite/libgomp.c++/pr34513.C: New test.
4949 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
4952 * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
4954 2007-12-04 Jakub Jelinek <jakub@redhat.com>
4956 * omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes.
4958 2007-12-03 Jakub Jelinek <jakub@redhat.com>
4960 * testsuite/libgomp.c/private-1.c: New test.
4962 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
4963 Paolo Bonzini <bonzini@gnu.org>
4965 * Makefile.am: Use space as vpath separator. Use 'vpath %'
4966 instead of 'VPATH ='.
4967 * Makefile.in: Regenerate.
4969 2007-11-23 Matthias Klose <doko@ubuntu.com>
4971 * configure.ac: Adjust makeinfo version check.
4972 * configure: Regenerate.
4974 2007-11-10 Jakub Jelinek <jakub@redhat.com>
4977 * testsuite/libgomp.fortran/pr34020.f90: New test.
4979 2007-11-06 Jakub Jelinek <jakub@redhat.com>
4982 * testsuite/libgomp.c++/atomic-1.C: New test.
4984 2007-10-25 Jakub Jelinek <jakub@redhat.com>
4987 * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
4988 Make x and y integers rather than (implicit) reals. Add private (j)
4989 clause to the last omp parallel.
4991 2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
4993 * configure: Regenerate following changes to ../config/tls.m4.
4995 2007-09-28 Jakub Jelinek <jakub@redhat.com>
4997 * testsuite/libgomp.fortran/stack.f90: New test.
4999 2007-09-10 Danny Smith <dannysmith@users.sourceforge.net>
5001 * config/mingw32/proc.c: New file.
5003 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
5005 * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
5006 (main): Use __get_cpuid to get i386 target fetaures.
5007 * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
5008 (main): Use __get_cpuid to get x86_64 target fetaures.
5010 2007-08-15 Jack Howarth <howarth@bromo.med.uc.edu>
5013 * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
5014 * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
5016 2007-07-12 Jakub Jelinek <jakub@redhat.com>
5019 * testsuite/libgomp.fortran/pr32550.f90: New test.
5020 * testsuite/libgomp.fortran/crayptr2.f90: New test.
5022 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
5024 * aclocal.m4: Regenerated.
5026 2007-07-05 Tobias Burnus <burnus@net-b.de>
5029 * testsuite/libgomp.fortran/pr32359.f90: New.
5031 2007-07-02 Jakub Jelinek <jakub@redhat.com>
5034 * sections.c (GOMP_parallel_sections_start): Only decrease
5035 number of threads to COUNT if dyn_var is true.
5036 * testsuite/libgomp.c/pr32468.c: New test.
5038 2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5041 * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
5043 2007-06-21 Jakub Jelinek <jakub@redhat.com>
5046 * testsuite/libgomp.c/pr32362-1.c: New test.
5047 * testsuite/libgomp.c/pr32362-2.c: New test.
5048 * testsuite/libgomp.c/pr32362-3.c: New test.
5050 2007-06-07 Jakub Jelinek <jakub@redhat.com>
5052 * team.c (gomp_team_start): Fix setting up thread_attr
5055 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
5057 * configure: Regenerate.
5059 2007-05-23 Steve Ellcey <sje@cup.hp.com>
5061 * Makefile.in: Regenerate.
5062 * configure: Regenerate.
5063 * aclocal.m4: Regenerate.
5064 * testsuite/Makefile.in: Regenerate.
5066 2007-05-04 Jakub Jelinek <jakub@redhat.com>
5068 * config/linux/proc.c: New file.
5071 * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
5073 2007-04-19 Daniel Franke <franke.daniel@gmail.com>
5075 * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
5077 2007-04-16 Matthias Klose <doko@debian.org>
5079 * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
5080 flags if not building with -m64.
5081 * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
5082 flag for i?86-*-* targets, if current target matches -m64.
5084 2007-04-14 Steve Ellcey <sje@cup.hp.com>
5086 * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
5087 * Makefile.in: Regenerate.
5089 2007-04-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5092 * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
5094 * testsuite/libgomp.fortran/fortran.exp: Likewise.
5096 2007-04-04 Jakub Jelinek <jakub@redhat.com>
5098 * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
5100 (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
5101 * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
5102 (parse_affinity): New function.
5103 (initialize_env): Call it and gomp_init_affinity.
5104 * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
5105 create new pthread_attr_t and call gomp_init_thread_affinity
5106 on it for each thread before passing the attribute to pthread_create.
5107 * config/linux/affinity.c: New file.
5108 * config/posix/affinity.c: New file.
5109 * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
5110 * configure: Rebuilt.
5111 * config.h.in: Rebuilt.
5112 * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
5113 * Makefile.in: Rebuilt.
5115 2007-03-23 Andreas Tobler <a.tobler@schweiz.org>
5117 * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
5119 * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
5120 and use it if found.
5122 2007-03-18 Uros Bizjak <ubizjak@gmail.com>
5124 * testsuite/config/default.exp: New file.
5125 * testsuite/lib/libgomp.exp: New file.
5126 * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
5127 libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
5128 load_lib *, load_gcc_lib *): Move to libgomp.exp.
5129 (libgomp_load): Remove.
5130 * testsuite/lib/libgomp.exp (libgomp_init): Compute
5131 always_ld_library_path, not ld_library_path. Set additional_flags
5132 to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
5133 (target_compile): Do not call libgomp_init. Append lang_library_path
5134 and lang_link_flags to options.
5135 * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set
5136 ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH
5138 * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
5139 always_ld_library_path. Set LD_LIBRARY_PATH here.
5140 * testsuite/libgomp.fortran/fortran.exp: Ditto.
5141 * testsuite/libgomp.c/atomic-1.c: Set dg-options to
5142 "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
5144 * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
5145 lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
5146 * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
5147 * testsuite/libgomp.c/pr29947-1.c: Ditto.
5148 * testsuite/libgomp.c/atomic-10.c: Ditto.
5150 2007-03-21 Jakub Jelinek <jakub@redhat.com>
5152 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
5153 dg-final cleanup-modules line.
5154 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
5155 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
5156 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
5157 * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
5158 * testsuite/libgomp.fortran/reduction5.f90: Likewise.
5159 * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
5160 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
5162 2007-03-18 Andreas Schwab <schwab@suse.de>
5164 * acinclude.m4: Adjust regular expression for ld version
5166 * configure: Regenerate.
5168 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
5170 * Makefile.am: Add install-pdf target as copied from
5171 automake v1.10 rules.
5172 * Makefile.in: Regenerate
5174 2007-02-07 Jakub Jelinek <jakub@redhat.com>
5177 * configure: Regenerate.
5180 * testsuite/libgomp.c++/pr30703.C: New test.
5182 2007-02-02 Jakub Jelinek <jakub@redhat.com>
5185 2006-07-05 Eric Christopher <echristo@apple.com>
5186 * configure.ac: Depend addition of -pthread on host OS.
5187 * configure: Regenerate.
5189 2007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5191 * libgomp.texi: Fix spacing after abbreviations.
5193 2007-01-31 Daniel Franke <franke.daniel@gmail.com>
5196 * configure.ac: Add check for makeinfo
5197 * Makefile.am: Redefined target libgomp.info, build libgomp.info only
5198 if an appropiate version of makeinfo is found.
5199 * aclocal.m4: Regenerated.
5200 * configure: Regenerated.
5201 * Makefile.in: Regenerated.
5202 * testsuite/Makefile.in: Regenerated.
5204 2007-01-29 Daniel Franke <franke.daniel@gmail.com>
5207 * libgomp.texi: More about implementation-dependent settings.
5209 2007-01-26 Tobias Burnus <burnus@net-b.de>
5211 * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
5213 2007-01-24 Jakub Jelinek <jakub@redhat.com>
5216 * testsuite/libgomp.c/pr30494.c: New test.
5218 2007-01-15 Tom Tromey <tromey@redhat.com>
5220 * configure: Rebuilt.
5221 * configure.ac: Fixed comment.
5223 2007-01-14 Daniel Franke <franke.daniel@gmail.com>
5225 * libgomp.texi: Document implementation specific default values of
5226 environment variables.
5228 2006-12-21 Daniel Franke <franke.daniel@gmail.com>
5231 * libgomp.texi: New file.
5232 * configure.ac: Add --enable-generated-files-in-srcdir option.
5233 * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
5235 * Makefile.in: Regenerated.
5236 * config.h.in: Regenerated.
5237 * testsuite/Makefile.in: Regenerated.
5240 2006-12-04 Daniel Franke <franke.daniel@gmail.com>
5243 * env.c (omp_set_num_threads): Set illegal thread count to 1.
5245 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
5247 * configure: Regenerate.
5249 2006-12-04 Jakub Jelinek <jakub@redhat.com>
5252 * loop.c (gomp_loop_init): Make parameters signed. Set ws->end to
5253 start if there shouldn't be any loop iterations.
5254 (gomp_loop_ordered_static_start): Remove start == end test.
5255 * testsuite/libgomp.c/pr29947-1.c: New test.
5256 * testsuite/libgomp.c/pr29947-2.c: New test.
5258 2006-12-02 Eric Botcazou <ebotcazou@libertysurf.fr>
5260 * configure.tgt: Force initial-exec TLS model on Linux only.
5262 2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
5264 * configure: Regenerated.
5266 2006-11-09 Uros Bizjak <ubizjak@gmail.com>
5268 * env.c (parse_schedule): Reject out of range values.
5269 (parse_unsigned_long): Reject out of range, negative or zero values.
5271 2006-10-29 Jakub Jelinek <jakub@redhat.com>
5274 * testsuite/libgomp.fortran/pr29629.f90: New test.
5276 2006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr>
5279 * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
5280 * config/posix95: New directory.
5281 * config/posix95/omp-lock.h: New file.
5282 * config/posix95/lock.c: Likewise.
5284 2006-10-14 Geoffrey Keating <geoffk@apple.com>
5286 * aclocal.m4: Regenerate.
5287 * configure: Regenerate.
5289 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
5291 * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
5294 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
5296 * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
5298 * configure: Regenerate.
5299 * fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
5301 2006-09-26 Jakub Jelinek <jakub@redhat.com>
5305 * testsuite/libgomp.c/nestedfn-4.c: New test.
5306 * testsuite/libgomp.c/nestedfn-5.c: New test.
5307 * testsuite/libgomp.fortran/nestedfn3.f90: New test.
5310 * testsuite/libgomp.fortran/condinc1.f: New test.
5311 * testsuite/libgomp.fortran/condinc2.f: New test.
5312 * testsuite/libgomp.fortran/condinc3.f90: New test.
5313 * testsuite/libgomp.fortran/condinc4.f90: New test.
5314 * testsuite/libgomp.fortran/condinc1.inc: New file.
5316 2006-09-18 Tom Tromey <tromey@redhat.com>
5318 * configure: Rebuilt.
5320 2006-09-13 Joseph S. Myers <joseph@codesourcery.com>
5323 PR preprocessor/14634
5324 * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
5326 * configure: Regenerate.
5328 2006-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
5330 * testsuite/libgomp.fortran/reduction3.f90: Change
5331 -2147483648 to -huge(i)-1 to avoid overflow.
5332 * testsuite/libgomp.fortran/reduction4.f90: Change
5333 Z'ffffffff' to not(0) to avoid overflow.
5335 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
5338 * Makefile.am (libsubincludedir): New.
5339 (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
5340 * Makefile.in: Regenerate.
5342 2006-08-17 Jakub Jelinek <jakub@redhat.com>
5345 * env.c: Include ctype.h.
5346 (parse_schedule, parse_unsigned_long, parse_boolean): Allow
5347 leading and/or trailing whitespace and compare strings case
5350 2006-07-16 Jakub Jelinek <jakub@redhat.com>
5353 * testsuite/libgomp.fortran/pr28390.f: New test.
5355 2006-07-05 Eric Christopher <echristo@apple.com>
5357 * configure.ac: Depend addition of -pthread on host OS.
5358 * configure: Regenerate.
5360 2006-06-21 Jakub Jelinek <jakub@redhat.com>
5362 * critical.c (GOMP_critical_name_start): Fix *pptr initialization
5363 when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
5366 2006-06-20 Jakub Jelinek <jakub@redhat.com>
5370 * configure.ac: If neither --enable-linux-futex nor
5371 --disable-linux-futex is passed, determine the default by checking
5372 for compiling and/or running against NPTL. With --enable-linux-futex,
5373 check if SYS_gettid and SYS_futex are defined.
5374 * configure: Rebuilt.
5376 2006-06-14 Richard Henderson <rth@redhat.com>
5379 * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
5380 undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
5382 2006-06-09 Richard Henderson <rth@redhat.com>
5384 * env.c (gomp_nthreads_var): Change to unsigned long.
5385 (gomp_run_sched_chunk): Likewise.
5386 (parse_unsigned_long): Rename from parse_num_threads and generalize.
5387 (initialize_env): Initialize gomp_thread_attr.
5388 * libgomp.h (gomp_nthreads_var): Update decl.
5389 (gomp_run_sched_chunk): Likewise.
5390 (gomp_thread_attr): Declare.
5391 * team.c (gomp_thread_attr): Export.
5392 (initialize_team): Don't initialize it.
5394 2006-06-09 Jakub Jelinek <jakub@redhat.com>
5397 * testsuite/libgomp.fortran/pr27916-1.f90: New test.
5398 * testsuite/libgomp.fortran/pr27916-2.f90: New test.
5400 2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
5402 * config/mingw32/time.c: New file.
5403 * configure.tgt: Use it.
5405 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
5407 * Makefile.am: Add install-html target. Add install-html to .PHONY
5408 * Makefile.in: Regenerate.
5410 2006-05-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5413 * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
5414 * testsuite/libgomp.c/critical-1.c: Likewise.
5415 * testsuite/libgomp.c/loop-1.c: Likewise.
5416 * testsuite/libgomp.c/loop-2.c: Likewise.
5417 * testsuite/libgomp.c/single-1.c: Likewise.
5418 * testsuite/libgomp.c/ordered-1.c: Likewise.
5419 * testsuite/libgomp.c/ordered-2.c: Likewise.
5421 2006-05-15 Jakub Jelinek <jakub@redhat.com>
5424 * libgomp.fortran/pr27416-1.f90: New test.
5426 2006-05-03 Jakub Jelinek <jakub@redhat.com>
5429 * testsuite/libgomp.fortran/pr27395-1.f90: New test.
5430 * testsuite/libgomp.fortran/pr27395-2.f90: New test.
5432 2006-05-02 Jakub Jelinek <jakub@redhat.com>
5435 * testsuite/libgomp.c/pr26943-1.c: New test.
5436 * testsuite/libgomp.c/pr26943-2.c: New test.
5437 * testsuite/libgomp.c/pr26943-3.c: New test.
5438 * testsuite/libgomp.c/pr26943-4.c: New test.
5439 * testsuite/libgomp.c++/pr27337.C: Remove barrier.
5440 * testsuite/libgomp.c++/pr26943.C: New test.
5442 2006-05-02 Jakub Jelinek <jakub@redhat.com>
5445 * testsuite/libgomp.c++/pr27337.C: New test.
5447 2006-04-26 Jakub Jelinek <jakub@redhat.com>
5450 * testsuite/libgomp.c/pr26171.c: New test.
5452 2006-04-25 Richard Henderson <rth@redhat.com>
5455 * configure.ac: Use GCC_CHECK_TLS.
5456 * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
5457 * Makefile.in, aclocal.m4, configure: Regenerate.
5459 2006-04-10 Matthias Klose <doko@debian.org>
5461 * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
5462 directory names containing underscores.
5464 2006-03-21 Jakub Jelinek <jakub@redhat.com>
5467 * testsuite/libgomp.c++/pr26691.C: New test.
5469 2006-03-13 Jakub Jelinek <jakub@redhat.com>
5471 * testsuite/libgomp.fortran/retval2.f90: New test.
5473 2006-03-09 Diego Novillo <dnovillo@redhat.com>
5475 * testsuite/libgomp.c++: New directory.
5477 2006-02-25 Shantonu Sen <ssen@opendarwin.org>
5479 * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
5480 * config/posix/sem.c: Implement the above.
5482 2006-02-25 Andreas Tobler <a.tobler@schweiz.ch>
5484 * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
5485 define HAVE_BROKEN_POSIX_SEMAPHORES.
5486 * configure: Rebuilt.
5487 * config.h.in: Rebuilt.
5489 2006-02-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
5492 * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
5493 for the other pthread check.
5494 * configure: Regenerate.
5495 * config.h.in: Regenerate.
5497 2006-02-15 Jakub Jelinek <jakub@redhat.com>
5501 * Makefile.am (fincludedir): New variable.
5502 (nodist_include_HEADERS): Remove Fortran files.
5503 (nodist_finclude_HEADERS): New variable.
5504 * Makefile.in: Regenerated.
5506 2006-02-13 Jakub Jelinek <jakub@redhat.com>
5508 * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
5509 Remove tests for returning assumed character length arrays.
5511 2006-02-12 Roger Sayle <roger@eyesopen.com>
5512 John David Anglin <dave@hiauly1.hia.nrc.ca>
5515 * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
5517 2006-02-08 Ulrich Weigand <uweigand@de.ibm.com>
5519 * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
5521 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
5523 * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
5524 part of LD_LIBRARY_PATH manually.
5526 2006-02-03 H.J. Lu <hongjiu.lu@intel.com>
5529 * testsuite/lib/libgomp-dg.exp (blddir): Set it in
5532 2005-01-25 Paolo Bonzini <bonzini@gnu.org>
5535 * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
5536 * configure.ac (PERL): Don't set.
5537 (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
5538 (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
5539 OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
5540 * omp.h.in: Wrap the new configure substitutions with @ characters.
5541 * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
5542 * aclocal.m4, configure, Makefile.in: Regenerate.
5543 * mkomp_h.pl: Delete.
5545 2005-01-24 Paolo Bonzini <bonzini@gnu.org>
5548 * configure.ac: Use GCC_HEADER_STDINT.
5549 * libgomp.h: Include gstdint.h.
5550 * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
5551 * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
5553 2006-01-24 Richard Henderson <rth@redhat.com>
5556 * configure.ac: Add AM_MAINTAINER_MODE.
5557 * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
5559 2006-01-24 Diego Novillo <dnovillo@redhat.com>
5561 * Makefile.in: Regenerate.
5562 * testsuite/Makefile.in: Regenerate.
5563 * aclocal.m4: Regenerate.
5565 2006-01-23 Andreas Tobler <a.tobler@schweiz.ch>
5567 * config/posix/proc.c: Conditional include of sys/loadavg.h for
5569 * configure.ac: Add check for loadavg.h.
5570 (link_gomp): Adjust comment.
5571 * configure: Regenerate.
5572 * config.h.in: Regenerate.
5574 2006-01-21 Steve Ellcey <sje@cup.hp.com>
5577 * configure.ac: Remove check for alloca.h.
5578 * configure: Regenerate.
5579 * config.h.in: Regenerate.
5580 * libgomp.h: define gomp_alloca to be __builtin_alloca.
5581 * team.c: Remove use of alloca.h.
5582 Call gomp_alloca instead of alloca.
5584 2006-01-20 Steve Ellcey <sje@cup.hp.com>
5587 * team.c: Add include of alloca.h.
5588 * configure.ac: Add check for alloca.h.
5589 * configure: Regenerate.
5590 * config.h.in: Regenerate.
5592 2006-01-17 Jakub Jelinek <jakub@redhat.com>
5595 * testsuite/libgomp.fortran/pr25219.f90: New test.
5597 2005-12-05 Uros Bizjak <uros@kss-loka.si>
5599 * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
5600 testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
5601 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
5602 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
5603 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
5604 testsuite/libgomp.fortran/threadprivate1.f90,
5605 testsuite/libgomp.fortran/threadprivate2.f90,
5606 testsuite/libgomp.fortran/threadprivate3.f90,
5607 testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
5608 testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
5609 testsuite/libgomp.fortran/omp_parse3.f90: Change required
5610 effective-target to TLS runtime.
5612 * testsuite/libgomp.fortran/pr25162.f: Require
5613 effective-target TLS runtime.
5615 2005-12-01 Jakub Jelinek <jakub@redhat.com>
5617 * testsuite/libgomp.fortran/nestedfn2.f90: New test.
5618 * testsuite/libgomp.c/nestedfn-3.c: New test.
5620 2005-11-30 Jakub Jelinek <jakub@redhat.com>
5623 * testsuite/libgomp.fortran/pr25162.f: New test.
5625 2005-11-28 Jakub Jelinek <jakub@redhat.com>
5627 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
5628 CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
5630 2005-11-25 Jakub Jelinek <jakub@redhat.com>
5632 * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
5633 libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
5634 omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
5635 single.c, team.c, work.c, config/linux/alpha/futex.h,
5636 config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
5637 config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
5638 config/linux/powerpc/futex.h, config/linux/s390/futex.h,
5639 config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
5640 config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
5641 config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
5642 config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
5645 2005-11-18 Jakub Jelinek <jakub@redhat.com>
5647 * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
5648 to nodist_noinst_HEADERS.
5649 * Makefile.in: Rebuilt.
5651 * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
5652 add integer count field.
5653 * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
5654 omp_nest_lock_t type change.
5655 (omp_init_nest_lock): Likewise. Initialize count to 0.
5656 (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
5658 (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
5660 (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
5661 Increment count if successful and return the new nesting level.
5662 * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
5663 * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
5664 * testsuite/libgomp.c/lib-1.c: New test.
5665 * testsuite/libgomp.fortran/lib1.f90: New test.
5666 * testsuite/libgomp.fortran/lib2.f: New test.
5667 * testsuite/libgomp.fortran/lib3.f: New test.
5669 2005-11-17 Richard Henderson <rth@redhat.com>
5672 * Makefile.am (nodist_toolexeclib_HEADERS): New.
5673 * configure.ac (link_gomp): New. Substitute it.
5674 (AC_CONFIG_FILES): Add libgomp.spec.
5675 * libgomp.spec.in: New file.
5676 * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
5677 * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
5679 2005-11-18 Jakub Jelinek <jakub@redhat.com>
5681 * testsuite/libgomp.fortran/reduction1.f90: Adjust for
5682 reduction(-:var) behaving the same as reduction(+:var).
5683 * testsuite/libgomp.c/reduction-4.c: New test.
5685 2005-11-15 Uros Bizjak <uros@kss-loka.si>
5687 * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
5688 testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
5689 testsuite/libgomp.c/copyin-3.c,
5690 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
5691 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
5692 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
5693 testsuite/libgomp.c++/pr24455.C,
5694 testsuite/libgomp.fortran/threadprivate1.f90,
5695 testsuite/libgomp.fortran/threadprivate2.f90,
5696 testsuite/libgomp.fortran/threadprivate3.f90,
5697 testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
5698 testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
5699 testsuite/libgomp.fortran/omp_parse3.f90: Require
5700 effective-target TLS.
5702 2005-11-14 Diego Novillo <dnovillo@redhat.com>
5706 2005-11-13 Jakub Jelinek <jakub@redhat.com>
5709 * team.c (initialize_team): Pass NULL rather than free as
5710 pthread_key_create destructor. Initialize thread specific data
5711 pointer in initial thread to a static local variable rather than
5714 2005-11-11 Uros Bizjak <uros@kss-loka.si>
5716 * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
5717 its location to ld_library_path.
5719 2005-11-10 Diego Novillo <dnovillo@redhat.com>
5721 * testsuite/libgomp.c/c.exp: Rename from dg.exp.
5723 2005-11-10 Diego Novillo <dnovillo@redhat.com>
5725 * testsuite/libgomp.c: Rename from libgomp.dg.
5727 2005-11-09 Diego Novillo <dnovillo@redhat.com>
5729 * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
5730 threadprivate variable 'i'.
5732 2005-11-09 Jakub Jelinek <jakub@redhat.com>
5734 * config/linux/s390/futex.h: New file.
5735 * configure.tgt: Use it.
5737 * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
5738 before the parallel.
5740 2005-11-08 Jakub Jelinek <jakub@redhat.com>
5743 * testsuite/libgomp.c++/master-1.C: New test.
5745 2005-11-07 Jakub Jelinek <jakub@redhat.com>
5747 * testsuite/libgomp.dg/copyin-3.c: New test.
5749 2005-11-07 Jakub Jelinek <jakub@redhat.com>
5751 * testsuite/libgomp.fortran/retval1.f90: New test.
5752 * testsuite/libgomp.fortran/vla7.f90: New test.
5754 2005-11-06 Jakub Jelinek <jakub@redhat.com>
5756 * testsuite/libgomp.fortran/vla2.f90: New test.
5757 * testsuite/libgomp.fortran/vla3.f90: New test.
5758 * testsuite/libgomp.fortran/vla4.f90: New test.
5759 * testsuite/libgomp.fortran/vla5.f90: New test.
5760 * testsuite/libgomp.fortran/vla6.f90: New test.
5762 2005-11-01 Jakub Jelinek <jakub@redhat.com>
5764 * config/linux/sparc/futex.h: New file.
5765 * configure.tgt: Use it.
5766 * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
5768 * critical.c: Include stdlib.h.
5769 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
5770 ignoring return value.
5771 * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
5772 LIBGOMP_CHECK_SYNC_BUILTINS check.
5773 * configure: Rebuilt.
5775 2005-10-31 Jakub Jelinek <jakub@redhat.com>
5777 * testsuite/libgomp.fortran/vla1.f90: New test.
5779 2005-10-31 Richard Henderson <rth@redhat.com>
5781 * testsuite/libgomp.fortran/character2.f90: Fix race condition
5782 setting 's' in different threads.
5784 2005-10-31 Jakub Jelinek <jakub@redhat.com>
5786 * libgomp.h (attribute_hidden, ialias): Define.
5787 * config/posix/proc.c (omp_get_num_procs): Add ialias.
5788 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
5789 * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
5790 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
5791 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
5792 omp_test_lock, omp_test_nest_lock): Likewise.
5793 * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
5794 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
5795 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
5796 omp_test_lock, omp_test_nest_lock): Likewise.
5797 * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
5798 omp_get_dynamic, omp_get_nested): Likewise.
5799 * parallel.c (omp_get_num_threads, omp_get_max_threads,
5800 omp_get_thread_num, omp_in_parallel): Likewise.
5801 * fortran.c (ialias_redirect): Define.
5802 (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
5803 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
5804 omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
5805 omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
5806 omp_set_num_threads, omp_get_dynamic, omp_get_nested,
5807 omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
5808 omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
5809 omp_get_wtime): Add ialias_redirect.
5811 2005-10-30 Jakub Jelinek <jakub@redhat.com>
5813 * fortran.c: Include stdlib.h.
5815 2005-10-29 Jakub Jelinek <jakub@redhat.com>
5817 * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
5818 * Makefile.in: Regenerated.
5820 2005-10-28 Jakub Jelinek <jakub@redhat.com>
5822 * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
5823 * libgomp_f.h.in (omp_check_defines): New function.
5824 * env.c: Include libgomp_f.h.
5825 (initialize_env): Call omp_check_defines.
5827 * testsuite/libgomp.dg/copyin-2.c: New test.
5828 * testsuite/libgomp.c++/copyin-2.C: New test.
5829 * testsuite/libgomp.fortran/threadprivate3.f90: New test.
5831 * testsuite/libgomp.fortran/threadprivate2.f90: New test.
5832 * testsuite/libgomp.fortran/sharing2.f90: New test.
5834 * testsuite/libgomp.dg/copyin-1.c: New test.
5835 * testsuite/libgomp.c++/copyin-1.C: New test.
5837 2005-10-26 Jakub Jelinek <jakub@redhat.com>
5839 * testsuite/libgomp.fortran/crayptr1.f90: New test.
5841 * testsuite/libgomp.fortran/workshare1.f90: New test.
5843 * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
5845 * libgomp.fortran/sharing1.f90: New test.
5847 2005-10-24 Jakub Jelinek <jakub@redhat.com>
5850 * testsuite/libgomp.c++/loop-7.C: New test.
5852 * testsuite/libgomp.dg/nestedfn-2.c: New test.
5854 * testsuite/libgomp.dg/nestedfn-1.c: New test.
5855 * testsuite/libgomp.fortran/reduction6.f90: New test.
5856 * testsuite/libgomp.fortran/nestedfn1.f90: New test.
5858 2005-10-23 Richard Henderson <rth@redhat.com>
5860 * testsuite/libgomp.c++/ctor-1.C: New.
5861 * testsuite/libgomp.c++/ctor-2.C: New.
5862 * testsuite/libgomp.c++/ctor-3.C: New.
5863 * testsuite/libgomp.c++/ctor-4.C: New.
5864 * testsuite/libgomp.c++/ctor-5.C: New.
5865 * testsuite/libgomp.c++/ctor-6.C: New.
5866 * testsuite/libgomp.c++/ctor-7.C: New.
5867 * testsuite/libgomp.c++/ctor-8.C: New.
5868 * testsuite/libgomp.c++/ctor-9.C: New.
5870 2005-10-21 Diego Novillo <dnovillo@redhat.com>
5873 * testsuite/libgomp.c++/pr24455-1.C: New test.
5874 * testsuite/libgomp.c++/pr24455.C: New test.
5875 * testsuite/libgomp.dg/pr24455-1.c: New test.
5876 * testsuite/libgomp.dg/pr24455.c: New test.
5878 2005-10-20 Richard Henderson <rth@redhat.com>
5880 * testsuite/libgomp.c++/loop-6.C: New.
5881 * testsuite/libgomp.dg/loop-3.c: New.
5883 2005-10-20 Jakub Jelinek <jakub@redhat.com>
5885 * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
5887 * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
5890 2005-10-19 Diego Novillo <dnovillo@redhat.com>
5892 * testsuite/libgomp.fortran/jacobi.f: New test.
5894 2005-10-19 Richard Henderson <rth@redhat.com>
5896 * configure.tgt (i?86-linux): Default to with_arch instead of
5897 CFLAGS. Add -mtune to match target_cpu.
5898 (x86_64-linux): Tune to i686.
5900 * fortran.c (omp_test_nest_lock_): Fix typo.
5902 2005-10-19 Jakub Jelinek <jakub@redhat.com>
5904 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
5905 gomp_ordered_sync): Do nothing if team->nthreads == 1.
5906 * testsuite/libgomp.dg/ordered-3.c: New test.
5908 * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
5909 Remove volatile keyword.
5911 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
5912 in COMMON block to avoid warnings on 64-bit targets.
5914 2005-10-18 Diego Novillo <dnovillo@redhat.com>
5916 * testsuite/libgomp.dg/shared-3.c: New test.
5918 2005-10-18 Jakub Jelinek <jakub@redhat.com>
5920 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
5921 * testsuite/libgomp.fortran/reduction5.f90: New test.
5923 2005-10-18 Jakub Jelinek <jakub@redhat.com>
5925 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
5927 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable
5928 flush loop now that __sync_synchronize has proper memory barrier.
5929 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
5930 Add -ffixed-form to dg-options.
5932 2005-10-17 Diego Novillo <dnovillo@redhat.com>
5934 * testsuite/libgomp.fortran/fortran.exp: Also gather tests
5935 from subdirectories.
5936 * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
5937 * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
5938 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
5939 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
5940 * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
5941 * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
5942 * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
5943 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
5944 * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
5945 * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
5946 * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
5947 * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
5948 * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
5949 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
5950 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
5951 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
5952 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
5953 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
5954 * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
5955 * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
5956 * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
5957 * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
5958 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
5959 * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
5960 * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
5962 2005-10-17 Jakub Jelinek <jakub@redhat.com>
5964 * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
5965 lang_library_path exists. Use find instead of glob to gather tests.
5966 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
5968 2005-10-17 Diego Novillo <dnovillo@redhat.com>
5970 * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
5971 * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
5972 * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
5973 * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
5974 * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
5975 * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
5976 * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
5977 * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
5978 * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
5979 * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
5980 * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
5981 * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
5982 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
5984 2005-10-15 Jakub Jelinek <jakub@redhat.com>
5986 * testsuite/libgomp.dg/vla-1.c: New test.
5988 * testsuite/libgomp.fortran/reference2.f90: New test.
5990 * testsuite/libgomp.fortran/character2.f90: Remove explicit
5991 declaration of omp_get_thread_num.
5992 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add
5995 * testsuite/libgomp.fortran/reduction1.f90: New test.
5996 * testsuite/libgomp.fortran/reduction2.f90: New test.
5997 * testsuite/libgomp.fortran/reduction3.f90: New test.
5998 * testsuite/libgomp.fortran/reduction4.f90: New test.
6000 2005-10-13 Richard Henderson <rth@redhat.com>
6002 * Makefile.am (libgomp_la_SOURCES): Add bar.c.
6003 * Makefile.in: Regenerate.
6004 * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
6005 * libgomp.h: Include bar.h.
6006 (struct gomp_barrier): Remove.
6007 (struct gomp_team): Add barrier. Replace master_barrier with
6008 master_release. Replace threads with ordered_release.
6009 (struct gomp_thread): Replace barrier with release.
6010 * ordered.c (gomp_ordered_first): Update for ordered_release change.
6011 (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
6012 gomp_ordered_static_next, gomp_ordered_sync): Likewise.
6013 * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
6014 (GOMP_single_copy_end): Likewise.
6015 * team.c (gomp_threads_dock): New.
6016 (gomp_barrier_init, gomp_barrier_destroy): Remove.
6017 (gomp_thread_start): Use gomp_barrier_wait.
6018 (new_team, free_team): Update for gomp_team changes.
6019 (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
6020 (gomp_team_end): Use gomp_barrier_wait.
6021 (initialize_team): Update for gomp_thread changes.
6022 * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
6023 (gomp_work_share_end_nowait): Use atomic ops when available.
6024 * config/linux/bar.c, config/linux/bar.h: New files.
6025 * config/posix/bar.c, config/posix/bar.h: New files.
6027 2005-10-13 Jakub Jelinek <jakub@redhat.com>
6029 * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
6030 * testsuite/libgomp.dg/single-2.c: New test.
6032 * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
6033 lang_link_flags): Unset, so that they aren't inherited from previously
6036 * testsuite/libgomp.fortran/threadprivate1.f90: New test.
6038 2005-10-12 Richard Henderson <rth@redhat.com>
6040 * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
6041 (libgomp_init): Use lang_test_file, lang_library_path, and
6042 lang_link_flags, set by the subdirectory files. Add -fopenmp here.
6044 * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
6045 (lang_test_file, lang_link_flags): New.
6046 (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
6048 * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
6049 testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
6050 testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
6051 testsuite/libgomp.c++/parallel-1.C,
6052 testsuite/libgomp.c++/reduction-1.C,
6053 testsuite/libgomp.c++/reduction-2.C,
6054 testsuite/libgomp.c++/reduction-3.C,
6055 testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
6056 testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
6057 testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
6058 New files, largely cribbed from the C testsuite.
6060 2005-10-12 Jakub Jelinek <jakub@redhat.com>
6062 * testsuite/libgomp.fortran/character1.f90: New test.
6063 * testsuite/libgomp.fortran/character2.f90: New test.
6065 * testsuite/libgomp.dg/nested-1.c: New test.
6066 * testsuite/libgomp.dg/nested-2.c: New test.
6067 * testsuite/libgomp.fortran/do1.f90: New test.
6068 * testsuite/libgomp.fortran/do2.f90: New test.
6070 * testsuite/libgomp.fortran/reference1.f90: New test.
6072 2005-10-11 Jakub Jelinek <jakub@redhat.com>
6074 * testsuite/libgomp.dg/reduction-1.c: New test.
6075 * testsuite/libgomp.dg/reduction-2.c: New test.
6076 * testsuite/libgomp.dg/reduction-3.c: New test.
6078 2005-10-10 Jakub Jelinek <jakub@redhat.com>
6080 * testsuite/libgomp.dg/atomic-1.c: New test.
6081 * testsuite/libgomp.dg/atomic-2.c: New test.
6083 2005-10-09 Richard Henderson <rth@redhat.com>
6085 * critical.c (atomic_lock): New.
6086 (initialize_critical): Initialize it.
6087 (GOMP_atomic_start, GOMP_atomic_end): New.
6088 * libgomp.map: Export them.
6089 * libgomp_g.h: Declare them.
6091 * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
6093 2005-10-02 Richard Henderson <rth@redhat.com>
6095 * configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror
6096 to XCFLAGS instead of CFLAGS.
6098 2005-09-30 Richard Henderson <rth@redhat.com>
6100 * configure.ac: Determine whether -pthread or -lpthread is needed.
6101 * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
6102 * Makefine.in, configure: Rebuild.
6104 2005-09-28 Richard Henderson <rth@redhat.com>
6106 * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
6107 * testsuite/libgomp.dg/omp-single-3.c: New test.
6109 2005-09-28 Diego Novillo <dnovillo@redhat.com>
6111 * testsuite/libgomp.dg/omp-single-2.c: New test.
6112 * testsuite/libgomp.dg/shared-2.c: Fix return code.
6114 2005-09-27 Richard Henderson <rth@redhat.com>
6116 * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
6117 * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
6119 2005-09-27 Jakub Jelinek <jakub@redhat.com>
6121 * testsuite/libgomp.dg/omp-loop03.c: New test.
6123 2005-09-27 Diego Novillo <dnovillo@redhat.com>
6125 * testsuite/libgomp.dg/omp-parallel-for.c: New test.
6127 2005-09-27 Diego Novillo <dnovillo@redhat.com>
6129 * testsuite/libgomp.dg/omp-single-1.c: New test.
6130 * testsuite/libgomp.dg/shared-1.c: Return 0.
6131 Add prototype for abort.
6132 * testsuite/libgomp.dg/shared-2.c: Likewise.
6134 2005-09-26 Jakub Jelinek <jakub@redhat.com>
6136 * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
6139 2005-09-26 Diego Novillo <dnovillo@redhat.com>
6141 * testsuite/libgomp.dg/shared-1.c: New test.
6142 * testsuite/libgomp.dg/shared-2.c: New test.
6144 2005-09-24 Richard Henderson <rth@redhat.com>
6146 * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
6148 2005-09-24 Richard Henderson <rth@redhat.com>
6150 * iter.c (gomp_iter_static_next): Round up when computing number
6151 of iterations. Don't bother distributing a remainder equally.
6153 * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
6154 Don't call srand. Zero b before testing.
6157 2005-09-24 Jakub Jelinek <jakub@redhat.com>
6159 * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
6160 * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
6162 2005-09-23 Jakub Jelinek <jakub@redhat.com>
6164 * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
6165 without !$omp end do, followed immediately by subroutine end.
6167 2005-09-23 Diego Novillo <dnovillo@redhat.com>
6169 * testsuite/libgomp.dg/omp-parallel-if.c: New test.
6171 2005-09-22 Richard Henderson <rth@redhat.com>
6173 * critical.c (GOMP_critical_name_start): Change argument to void**.
6174 Reuse the pointer space if the mutex fits.
6175 (GOMP_critical_name_end): Likewise.
6176 (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
6177 * libgomp_g.h (GOMP_critical_name_start): Update decl.
6178 (GOMP_critical_name_end): Likewise.
6179 * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
6180 * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
6182 2005-09-20 Richard Henderson <rth@redhat.com>
6184 * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
6185 (create_lock_lock): New.
6186 (initialize_critical): Initialize it.
6187 * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
6188 * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
6190 2005-09-20 Diego Novillo <dnovillo@redhat.com>
6192 * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
6194 2005-09-20 Diego Novillo <dnovillo@redhat.com>
6196 * testsuite/libgomp.dg/omp-loop01.c: New test.
6197 * testsuite/libgomp.dg/omp-loop02.c: New test.
6199 2005-09-20 Jakub Jelinek <jakub@redhat.com>
6201 * configure.ac (AC_PROG_FC): Add.
6202 (USE_FORTRAN): New automake conditional.
6203 * configure: Rebuilt.
6204 * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
6205 (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
6206 If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
6207 Add rules to build them.
6208 * Makefile.in: Rebuilt.
6209 * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
6211 * libgomp.map: Add Fortran wrappers.
6212 * libgomp_f.h.in: New file.
6213 * omp_lib.h.in: New file.
6214 * omp_lib.f90.in: New file.
6215 * fortran.c: New file.
6216 * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
6217 Append libgfortran directory to LD_LIBRARY_PATH if it exists.
6218 Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
6219 libgfortran has been built.
6220 * testsuite/libgomp.fortran/fortran.exp: New file.
6221 * testsuite/libgomp.fortran/omp_cond1.f: New test.
6222 * testsuite/libgomp.fortran/omp_cond2.f: New test.
6223 * testsuite/libgomp.fortran/omp_cond3.F90: New test.
6224 * testsuite/libgomp.fortran/omp_cond4.F90: New test.
6225 * testsuite/libgomp.fortran/omp_hello.f: New test.
6226 * testsuite/libgomp.fortran/omp_orphan.f: New test.
6227 * testsuite/libgomp.fortran/omp_parse1.f90: New test.
6228 * testsuite/libgomp.fortran/omp_parse2.f90: New test.
6229 * testsuite/libgomp.fortran/omp_parse3.f90: New test.
6230 * testsuite/libgomp.fortran/omp_parse4.f90: New test.
6231 * testsuite/libgomp.fortran/omp_reduction.f: New test.
6232 * testsuite/libgomp.fortran/omp_workshare1.f: New test.
6233 * testsuite/libgomp.fortran/omp_workshare2.f: New test.
6235 2005-08-30 Richard Henderson <rth@redhat.com>
6237 * loop.c (GOMP_loop_static_start): Provide fallback wrapper
6238 function for when aliases are not usable.
6239 (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
6240 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
6241 GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
6242 GOMP_loop_dynamic_next, GOMP_loop_guided_next,
6243 GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
6244 GOMP_loop_ordered_guided_next): Likewise.
6245 * ordered.c (GOMP_ordered_start): Likewise.
6247 2005-08-01 Diego Novillo <dnovillo@redhat.com>
6249 * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
6250 * testsuite/libgomp.dg/omp_hello.c: Fix return code
6251 * testsuite/libgomp.dg/omp_matvec.c: Likewise.
6252 * testsuite/libgomp.dg/omp_orphan.c: Likewise
6253 * testsuite/libgomp.dg/omp_reduction.c: Likewise
6254 * testsuite/libgomp.dg/omp_workshare1.c: Likewise
6255 * testsuite/libgomp.dg/omp_workshare2.c: Likewise
6256 * testsuite/libgomp.dg/omp_workshare3.c: Likewise
6257 * testsuite/libgomp.dg/omp_workshare4.c: Likewise
6259 2005-07-07 Eric Christopher <echristo@redhat.com>
6260 Diego Novillo <dnovillo@redhat.com>
6262 * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
6263 * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
6265 * testsuite/libgomp.dg/omp_matvec.c: Ditto.
6266 * testsuite/libgomp.dg/omp_orphan.c: Ditto.
6267 * testsuite/libgomp.dg/omp_reduction.c: Ditto.
6268 * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
6269 * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
6270 * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
6271 * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
6273 2005-06-13 Diego Novillo <dnovillo@redhat.com>
6275 * TOPLEVEL.patch: Remove.
6277 2005-05-16 Richard Henderson <rth@redhat.com>
6279 * configure.ac: Test for clock_gettime.
6280 * config.h.in, configure: Rebuild.
6281 * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
6282 (omp_get_wtime): Use clock_gettime if available.
6283 (omp_get_wtick): Use clock_getres if available.
6285 2005-05-11 Richard Henderson <rth@redhat.com>
6287 * config/linux/ia64/futex.h: New file.
6288 * configure.tgt: Use it.
6290 * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
6292 2005-05-07 Richard Henderson <rth@redhat.com>
6294 * config/linux/powerpc/futex.h: New file.
6295 * configure.tgt: Use it.
6297 * config/linux/i486/futex.h: Merge ...
6298 * config/linux/x86_64/futex.h: ... into ...
6299 * config/linux/x86/futex.h: ... here.
6300 * configure.tgt: Update to match.
6302 2005-05-06 Richard Henderson <rth@redhat.com>
6304 * config/linux/alpha/futex.h: Conditionally define SYS_futex.
6305 * config/linux/i486/futex.h: Likewise.
6306 * config/linux/x86_64/futex.h: Likewise.
6308 * config/linux/lock.c: New file.
6309 * config/linux/omp-lock.h: New file.
6311 * critical.c, env.h: Don't include omp.h
6312 * config/posix/lock.c: Include libgomp.h instead of omp.h.
6313 * config/posix/time.c: Likewise.
6314 * config/posix/omp-lock.h: New file.
6315 * libgomp.h: Include omp-lock.h and omp.h.
6316 * Makefile.am (nodist_include_HEADERS): New.
6318 * configure.ac (PERL): New.
6319 * mkomp_h.pl: New file.
6320 * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
6322 * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
6324 * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
6325 build directory. Re-add -march=i486 hack.
6327 * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
6328 (libgomp_link_flags): Remove.
6329 (libgomp_initialized): Remove.
6330 (libgomp_init): Don't protect from reinitialization. Copy code
6331 from libstdc++ for getting the multilib set correctly.
6333 2005-05-05 Richard Henderson <rth@redhat.com>
6335 * config/linux/alpha/futex.h: New file.
6336 * configure.tgt (alpha*-*-linux*): Use it.
6338 * config/posix/mutex.c: New file.
6339 * config/posix/sem.c: Use libgomp.h.
6341 * configure.tgt (x86_64-linux): Also test CC for -m32.
6342 * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
6344 * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
6347 * Makefile.am (SUBDIRS): New.
6348 (libgomp_la_LDFLAGS): Add -lpthread.
6349 * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
6350 * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
6352 * libgomp_g.h: New file.
6353 * libgomp.h: Split out all public declarations to libgomp_g.h.
6354 Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
6355 * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
6356 * config/linux/sem.h: Likewise.
6357 * config/posix/sem.h: Likewise.
6359 * Makefile.am (AM_LDFLAGS): New.
6360 (libgomp_version_script): Split out from ...
6361 (libgomp_la_LDFLAGS): ... here.
6362 (libgomp_version_info): New.
6363 * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
6364 (LIBGOMP_ENABLE): New.
6365 (LIBGOMP_CHECK_LINKER_FEATURES): New.
6366 (LIBGOMP_ENABLE_SYMVERS): New.
6367 * configure.ac (AC_INIT): Version 1.0.
6368 (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
6369 (enable-linux-futex): Likewise. Rename from enable-futex.
6370 (libtool_VERSION): New.
6371 (LIBGOMP_ENABLE_SYMVERS): Use it.
6372 * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
6373 * Makefile.in, aclocal.m4, configure: Rebuild.
6375 * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
6376 (gomp_mutex_unlock_slow): Fix typo.
6377 * config/linux/sem.c: Similarly.
6378 (gomp_sem_post_slow): Fix typo.
6379 * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
6380 * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
6381 [__PIC__] (sys_futex0): Don't use tmp output in asm.
6383 * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
6384 (libgomp_la_LDFLAGS): Add top_srcdir to path.
6385 * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
6386 * configure.ac: Check for getloadavg. Substitute XCFLAGS and
6387 XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
6388 * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
6389 LDFLAGS. Pull enable_futex check to top-level.
6390 * libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN.
6391 * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
6393 First attempt at real configury.
6394 * Makefile, config.h: Remove file.
6395 * Makefile.am, Makefile.in: New file.
6396 * acinclude.m4 aclocal.m4: New file.
6397 * configure.ac, configure.tgt, configure: New file.
6399 * config/posix/lock.c: Rename from sys-lock.c.
6400 * config/posix/mutex.h: Rename from sys-mutex.h.
6401 * config/posix/sem.c: Rename from sys-sem.c.
6402 * config/posix/sem.h: Rename from sys-sem.h.
6403 * config/posix/proc.c: Rename from sys-proc.c.
6404 * config/posix/time.c: Rename from sys-proc.c.
6406 * config/linux/mutex.c: New file.
6407 * config/linux/mutex.h: New file.
6408 * config/linux/sem.c: New file.
6409 * config/linux/sem.h: New file.
6410 * config/linux/i486/futex.h: New file.
6411 * config/linux/x86_64/futex.h: New file.
6413 2005-05-04 Richard Henderson <rth@redhat.com>
6415 * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
6416 * libgomp.h: Declare them.
6417 * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
6418 gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
6420 2005-05-04 Richard Henderson <rth@redhat.com>
6422 * libgomp-1 code drop
6424 2005-05-04 Richard Henderson <rth@redhat.com>
6426 * iter.c (gomp_iter_static_next): Return tri-state on 0.
6427 * ordered.c (gomp_ordered_static_next): Remove not_last argument.
6428 * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
6429 (gomp_iter_static_next): Update.
6430 (gomp_ordered_static_next): Update.
6431 * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
6432 (gomp_loop_ordered_static_start): Likewise. Exit early for a
6433 totally empty range.
6434 (gomp_loop_ordered_static_next): Refine test for calling
6435 gomp_ordered_static_next.
6436 * testsuite/ordered-1.c: Add case for more threads than iterations.
6438 * iter.c (gomp_iter_runtime_next_locked): Remove.
6439 * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
6440 gomp_loop_guided_start, gomp_loop_ordered_static_start,
6441 gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
6442 gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
6443 gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
6444 gomp_loop_ordered_guided_next): Downcase name, make static, add
6445 an external alias with the old name.
6446 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
6447 GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
6448 switch and call one of the above static functions.
6449 * libgomp.h: Update.
6451 * work.c (gomp_work_share_start): Lock the mutex for !first too.
6452 * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
6453 GOMP_loop_guided_start, GOMP_loop_runtime_start,
6454 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
6455 GOMP_loop_ordered_guided_start): Update to match.
6456 * sections.c (GOMP_sections_start): Likewise.
6457 * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
6459 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
6460 gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
6461 Use bounds check instead of modulus.
6462 (gomp_ordered_sync): Split out of GOMP_ordered_start.
6463 (gomp_ordered_last): Don't sync with ordered_owner here.
6464 (gomp_ordered_next): Likewise.
6465 (gomp_ordered_static_loop_next): Likewise.
6466 * loop.c, libgomp.h: Update to match.
6468 * libgomp.h (GOMP_barrier): Declare.
6470 * testsuite/barrier-1.c: New file.
6471 * testsuite/critical-1.c: New file.
6472 * testsuite/ordered-2.c: New file.
6473 * testsuite/ordered-1.c: New file.
6474 * testsuite/sections-1.c: New file.
6475 * testsuite/single-1.c: New file.
6476 * testsuite/Makefile (TESTS): Add them.
6478 2005-05-04 Richard Henderson <rth@redhat.com>
6480 * libgomp.h (struct gomp_work_share): Add ordered_owner.
6481 * loop.c (GOMP_loop_static_start): If not the startup thread,
6482 acquire the mutex to wait for initialization complete.
6483 (GOMP_loop_ordered_static_start): Likewise.
6484 (GOMP_loop_ordered_runtime_start): Likewise.
6485 (GOMP_loop_ordered_static_first): Remove.
6486 (GOMP_loop_ordered_dynamic_first): Remove.
6487 (GOMP_loop_ordered_guided_first): Remove.
6488 (GOMP_loop_ordered_runtime_first): Remove.
6489 * ordered.c (gomp_ordered_loop_first): Post to own release when
6490 we're the first thread.
6491 (gomp_ordered_loop_last): Wait on release if not owner.
6492 (gomp_ordered_loop_next): Likewise.
6493 (gomp_ordered_static_loop_init): New.
6494 (gomp_ordered_static_loop_next): Use ordered_owner.
6495 (GOMP_ordered_start): Likewise.
6496 * work.c (gomp_new_work_share): Initialize ordered_owner.
6498 2005-05-03 Richard Henderson <rth@redhat.com>
6500 * Makefile (OPT): New.
6503 * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
6504 * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
6505 * libgomp.h, libgomp.map, NOTES: Update to match.
6507 * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
6508 Add initialized and thr members.
6509 (gomp_thread_start): Pause when initially spawned to wait for
6510 the whole team to be created.
6511 (gomp_team_start): Release team members at the end.
6513 * testsuite/loop-1.c (N): New. Use it instead of hardcoded 100.
6514 (f_foo_1): Use GOMP_loop_end.
6515 (f_foo_2): Use GOMP_loop_end_nowait.
6517 * testsuite/loop-2.c: New file.
6518 * testsuite/Makefile (TESTS): Add it.
6520 2005-05-03 Richard Henderson <rth@redhat.com>
6522 * iter.c (gomp_iter_static_next): Fix overflow check typo.
6523 (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
6524 * team.c (new_team): Initialize oldest_live_gen to 1 if no
6527 * testsuite/Makefile: New file.
6528 * testsuite/loop-1.c: New file.
6530 2005-05-03 Richard Henderson <rth@redhat.com>
6532 Initial implementation and checkin.