Remove a layer of indirection from hash_table
[gcc.git] / libgomp / ChangeLog
1 2014-06-24 Jakub Jelinek <jakub@redhat.com>
2
3 * testsuite/libgomp.c/for-2.c: Define SC to static for
4 #pragma omp for simd testing.
5 * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
6 (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
7 SC macro.
8 * testsuite/libgomp.c/simd-14.c: New test.
9 * testsuite/libgomp.c/simd-15.c: New test.
10 * testsuite/libgomp.c/simd-16.c: New test.
11 * testsuite/libgomp.c/simd-17.c: New test.
12 * testsuite/libgomp.c++/for-10.C: Define SC to static for
13 #pragma omp for simd testing.
14 * testsuite/libgomp.c++/simd10.C: New test.
15 * testsuite/libgomp.c++/simd11.C: New test.
16 * testsuite/libgomp.c++/simd12.C: New test.
17 * testsuite/libgomp.c++/simd13.C: New test.
18
19 * testsuite/libgomp.fortran/aligned1.f03: New test.
20 * testsuite/libgomp.fortran/nestedfn5.f90: New test.
21 * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
22 tasks with !$omp parallel !$omp single.
23 * testsuite/libgomp.fortran/target8.f90: New test.
24 * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
25 not to use trim in the combiner, instead call elemental function.
26 (fn): New elemental function.
27 * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
28 Make elemental.
29 * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
30 omp_in): Likewise.
31 * testsuite/libgomp.fortran/udr12.f90: New test.
32 * testsuite/libgomp.fortran/udr13.f90: New test.
33 * testsuite/libgomp.fortran/udr14.f90: New test.
34 * testsuite/libgomp.fortran/udr15.f90: New test.
35
36 2014-06-18 Jakub Jelinek <jakub@redhat.com>
37
38 * omp_lib.f90.in (openmp_version): Set to 201307.
39 * omp_lib.h.in (openmp_version): Likewise.
40 * testsuite/libgomp.c/target-8.c: New test.
41 * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
42 and inbranch clauses.
43 * testsuite/libgomp.fortran/depend-3.f90: New test.
44 * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
45 openmp_version.
46 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
47 * testsuite/libgomp.fortran/target1.f90: New test.
48 * testsuite/libgomp.fortran/target2.f90: New test.
49 * testsuite/libgomp.fortran/target3.f90: New test.
50 * testsuite/libgomp.fortran/target4.f90: New test.
51 * testsuite/libgomp.fortran/target5.f90: New test.
52 * testsuite/libgomp.fortran/target6.f90: New test.
53 * testsuite/libgomp.fortran/target7.f90: New test.
54
55 2014-06-10 Jakub Jelinek <jakub@redhat.com>
56
57 PR fortran/60928
58 * testsuite/libgomp.fortran/allocatable9.f90: New test.
59 * testsuite/libgomp.fortran/allocatable10.f90: New test.
60 * testsuite/libgomp.fortran/allocatable11.f90: New test.
61 * testsuite/libgomp.fortran/allocatable12.f90: New test.
62 * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
63 * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
64 * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
65 * testsuite/libgomp.fortran/associate1.f90: New test.
66 * testsuite/libgomp.fortran/associate2.f90: New test.
67 * testsuite/libgomp.fortran/procptr1.f90: New test.
68
69 2014-06-06 Jakub Jelinek <jakub@redhat.com>
70
71 * testsuite/libgomp.fortran/simd1.f90: New test.
72 * testsuite/libgomp.fortran/udr1.f90: New test.
73 * testsuite/libgomp.fortran/udr2.f90: New test.
74 * testsuite/libgomp.fortran/udr3.f90: New test.
75 * testsuite/libgomp.fortran/udr4.f90: New test.
76 * testsuite/libgomp.fortran/udr5.f90: New test.
77 * testsuite/libgomp.fortran/udr6.f90: New test.
78 * testsuite/libgomp.fortran/udr7.f90: New test.
79 * testsuite/libgomp.fortran/udr8.f90: New test.
80 * testsuite/libgomp.fortran/udr9.f90: New test.
81 * testsuite/libgomp.fortran/udr10.f90: New test.
82 * testsuite/libgomp.fortran/udr11.f90: New test.
83
84 2014-05-27 Uros Bizjak <ubizjak@gmail.com>
85
86 * testsuite/libgomp.fortran/declare-simd-1.f90: Require
87 vect_simd_clones effective target.
88 * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
89
90 2014-05-21 Jakub Jelinek <jakub@redhat.com>
91
92 PR middle-end/61252
93 * testsuite/libgomp.c++/simd-9.C: New test.
94
95 2014-05-18 Uros Bizjak <ubizjak@gmail.com>
96
97 * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
98 (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
99 texts according to their @menu entry positions.
100
101 2014-05-11 Jakub Jelinek <jakub@redhat.com>
102
103 * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
104 * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
105 * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
106 * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
107 * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
108 * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
109 * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
110 * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
111 * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
112 * testsuite/libgomp.fortran/depend-1.f90: New test.
113 * testsuite/libgomp.fortran/depend-2.f90: New test.
114 * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
115 * testsuite/libgomp.fortran/simd1.f90: New test.
116 * testsuite/libgomp.fortran/simd2.f90: New test.
117 * testsuite/libgomp.fortran/simd3.f90: New test.
118 * testsuite/libgomp.fortran/simd4.f90: New test.
119 * testsuite/libgomp.fortran/taskgroup1.f90: New test.
120
121 2014-05-02 Jakub Jelinek <jakub@redhat.com>
122
123 * testsuite/libgomp.c/simd-10.c: New test.
124 * testsuite/libgomp.c/simd-11.c: New test.
125 * testsuite/libgomp.c/simd-12.c: New test.
126 * testsuite/libgomp.c/simd-13.c: New test.
127
128 2014-04-24 Jakub Jelinek <jakub@redhat.com>
129
130 * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
131 atomic type clauses in any order and optional comma in between.
132 * testsuite/libgomp.c++/atomic-15.C: Likewise.
133 * testsuite/libgomp.c/atomic-17.c: Likewise.
134
135 * testsuite/libgomp.c/simd-7.c: New test.
136 * testsuite/libgomp.c/simd-8.c: New test.
137 * testsuite/libgomp.c/simd-9.c: New test.
138 * testsuite/libgomp.c/loop-16.c: New test.
139
140 2014-04-02 Richard Henderson <rth@redhat.com>
141
142 * config/linux/futex.h (futex_wait): Get error value from errno.
143 (futex_wake): Likewise.
144
145 2014-03-25 Jakub Jelinek <jakub@redhat.com>
146
147 PR c++/60331
148 * testsuite/libgomp.c++/udr-11.C: New test.
149 * testsuite/libgomp.c++/udr-12.C: New test.
150 * testsuite/libgomp.c++/udr-13.C: New test.
151 * testsuite/libgomp.c++/udr-14.C: New test.
152 * testsuite/libgomp.c++/udr-15.C: New test.
153 * testsuite/libgomp.c++/udr-16.C: New test.
154 * testsuite/libgomp.c++/udr-17.C: New test.
155 * testsuite/libgomp.c++/udr-18.C: New test.
156 * testsuite/libgomp.c++/udr-19.C: New test.
157
158 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
159
160 Update copyright years
161
162 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
163
164 * hashtab.h: Use the standard form for the copyright notice.
165
166 2014-01-02 Tobias Burnus <burnus@net-b.de>
167
168 * libgomp.texi: Bump @copying's copyright year.
169
170 2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>
171
172 * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
173 alloca () with __builtin_alloca ().
174 * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
175 * testsuite/libgomp.c/lock-3.c: Likewise.
176 * testsuite/libgomp.c/pr48591.c: Likewise.
177
178 2013-12-17 Jakub Jelinek <jakub@redhat.com>
179
180 PR testsuite/59534
181 * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
182 comparisons.
183
184 2013-12-16 Jakub Jelinek <jakub@redhat.com>
185
186 PR libgomp/58756
187 * testsuite/libgomp.c/pr58756.c: New test.
188
189 2013-12-12 Jakub Jelinek <jakub@redhat.com>
190
191 PR libgomp/59467
192 * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
193 !$omp parallel.
194
195 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
196
197 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
198 ALWAYS_CFLAGS.
199 * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
200 * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
201 * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
202 * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
203 Likewise.
204
205 * libgomp_g.h: Include <stddef.h> for size_t.
206
207 * libgomp.spec.in: Update comment about libgomp's dependencies.
208 * configure.ac: Likewise.
209 * configure: Regenerate.
210
211 2013-10-16 Tobias Burnus <burnus@net-b.de>
212
213 * libgomp.texi: (Runtime Library Routines): Update references for
214 OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
215 omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
216 omp_get_team_num, omp_is_initial_device, omp_set_default_device.
217 (Environment Variables): Update references for OpenMP 4.0. Add
218 OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
219 Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
220 order.
221
222 2013-10-14 Jakub Jelinek <jakub@redhat.com>
223
224 * env.c (parse_bind_var): Initialize value to avoid
225 (false positive) warning.
226
227 2013-10-12 Jakub Jelinek <jakub@redhat.com>
228
229 PR libgomp/58691
230 * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
231 to check variable.
232 (gomp_init_num_threads): Move i variable declaration into
233 #ifdef CPU_ALLOC_SIZE block.
234 * config/linux/affinity.c (gomp_affinity_init_level): Test
235 gomp_places_list_len == 0 rather than gomp_places_list == 0
236 when checking for topology reading error.
237 * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
238 * env.c (parse_affinity): Add ignore argument, if true, don't populate
239 gomp_places_list, only parse env var and always return false.
240 (parse_places_var): Likewise. Don't check gomp_global_icv.bind_var.
241 (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
242 vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
243 and either of these variables were parsed correctly into a places
244 list.
245
246 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
247 Jakub Jelinek <jakub@redhat.com>
248
249 * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
250 of 5 loopfn matches.
251 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
252 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
253 * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
254 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
255 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
256 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
257 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
258 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
259
260 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
261
262 * Makefile.am (omp_lib.mod): Streamline rule.
263 * Makefile.in: Regenerate.
264
265 * libgomp.texi (Runtime Library Routines): C linkage, don't throw
266 exceptions.
267
268 * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
269 * testsuite/libgomp.fortran/lib1.f90: Likewise.
270 * testsuite/libgomp.fortran/lib2.f: Likewise.
271 * testsuite/libgomp.fortran/lib3.f: Likewise.
272
273 * configure.ac: Typo fix.
274 * configure: Regenerate.
275
276 * testsuite/libgomp.fortran/openmp_version-1.f: New file.
277 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
278
279 * omp.h.in: Don't touch the user's namespace.
280
281 2013-10-11 Jakub Jelinek <jakub@redhat.com>
282 Tobias Burnus <burnus@net-b.de>
283 Richard Henderson <rth@redhat.com>
284
285 * target.c: New file.
286 * Makefile.am (libgomp_la_SOURCES): Add target.c.
287 * Makefile.in: Regenerated.
288 * libgomp_g.h (GOMP_task): Add depend argument.
289 (GOMP_barrier_cancel, GOMP_loop_end_cancel,
290 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
291 GOMP_target_end_data, GOMP_target_update, GOMP_teams,
292 GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
293 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
294 GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
295 GOMP_taskgroup_start, GOMP_taskgroup_end,
296 GOMP_parallel_sections): New prototypes.
297 * fortran.c (omp_is_initial_device): Add ialias_redirect.
298 (omp_is_initial_device_): New function.
299 (ULP, STR1, STR2, ialias_redirect): Removed.
300 (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
301 omp_set_default_device_8_, omp_get_default_device_,
302 omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
303 functions.
304 * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
305 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
306 GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
307 @@GOMP_4.0.
308 (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
309 omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
310 omp_set_default_device, omp_set_default_device_,
311 omp_set_default_device_8_, omp_get_default_device,
312 omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
313 omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
314 omp_get_team_num_): Export @@OMP_4.0.
315 * team.c (struct gomp_thread_start_data): Add place field.
316 (gomp_thread_start): Clear thr->thread_pool and
317 thr->task before returning. Use gomp_team_barrier_wait_final
318 instead of gomp_team_barrier_wait. Initialize thr->place.
319 (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
320 team_cancelled and task_queued_count fields.
321 (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
322 before calling pthread_exit.
323 (gomp_free_thread): No longer static. Use
324 gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
325 (gomp_team_start): Add flags argument. Set
326 thr->thread_pool->threads_busy to nthreads immediately after creating
327 new pool. Use gomp_managed_threads_lock instead of
328 gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
329 (gomp_team_end): Use gomp_managed_threads_lock instead of
330 gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
331 of gomp_team_barrier_wait. If team->team_cancelled, call
332 gomp_fini_worshare on ws chain starting at team->work_shares_to_free
333 rather than thr->ts.work_share.
334 (initialize_team): Don't call gomp_sem_init here.
335 * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
336 caller.
337 (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
338 * env.c (gomp_global_icv): Add default_device_var, target_data and
339 bind_var initializers.
340 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
341 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
342 gomp_places_list_len): New variables.
343 (parse_bind_var, parse_one_place, parse_places_var): New functions.
344 (parse_affinity): Rewritten to construct OMP_PLACES list with unit
345 sized places.
346 (gomp_cancel_var): New global variable.
347 (parse_int): New function.
348 (handle_omp_display_env): New function.
349 (initialize_env): Use it. Initialize default_device_var.
350 Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
351 OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
352 OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
353 been successfully parsed (and call gomp_init_affinity in that case).
354 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
355 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
356 omp_get_team_num, omp_is_initial_device): New functions.
357 * libgomp.h: Include stdlib.h.
358 (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
359 Define.
360 (struct target_mem_desc): Forward declare.
361 (struct gomp_task_icv): Add default_device_var, target_data, bind_var
362 and thread_limit_var fields.
363 (gomp_get_num_devices): New prototype.
364 (gomp_cancel_var): New extern decl.
365 (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
366 team_cancelled and task_queued_count fields. Add comments about
367 task_{,queued_,running_}count.
368 (gomp_cancel_kind): New enum.
369 (gomp_work_share_end_cancel): New prototype.
370 (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
371 copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
372 and depend fields.
373 (struct gomp_taskgroup): New type.
374 (struct gomp_task_depend_entry,
375 struct gomp_dependers_vec): New types.
376 (gomp_finish_task): Free depend_hash if non-NULL.
377 (struct gomp_team_state): Add place_partition_off
378 and place_partition_len fields.
379 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
380 gomp_places_list_len): New extern decls.
381 (struct gomp_thread): Add place field.
382 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
383 (gomp_init_thread_affinity): Add place argument.
384 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
385 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
386 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
387 gomp_affinity_init_level, gomp_affinity_print_place): New
388 prototypes.
389 (gomp_team_start): Add flags argument.
390 (gomp_thread_limit_var, gomp_remaining_threads_count,
391 gomp_remaining_threads_lock): Remove.
392 (gomp_managed_threads_lock): New variable.
393 (struct gomp_thread_pool): Add threads_busy field.
394 (gomp_free_thread): New prototype.
395 * task.c: Include hashtab.h.
396 (hash_entry_type): New typedef.
397 (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
398 (gomp_init_task): Clear dependers, depend_hash, depend_count,
399 copy_ctors_done and taskgroup fields.
400 (GOMP_task): Add depend argument, handle depend clauses. If
401 gomp_team_barrier_cancelled or if it's taskgroup has been
402 cancelled, don't queue or start new tasks. Set copy_ctors_done
403 field if needed. Initialize taskgroup field. If copy_ctors_done
404 and already cancelled, don't discard the task. If taskgroup is
405 non-NULL, enqueue the task into taskgroup queue. Increment
406 num_children field in taskgroup. Increment task_queued_count.
407 (gomp_task_run_pre, gomp_task_run_post_remove_parent,
408 gomp_task_run_post_remove_taskgroup): New inline functions.
409 (gomp_task_run_post_handle_depend_hash,
410 gomp_task_run_post_handle_dependers,
411 gomp_task_run_post_handle_depend): New functions.
412 (GOMP_taskwait): Use them. If more than one new tasks
413 have been queued, wake other threads if needed.
414 (gomp_barrier_handle_tasks): Likewise. If
415 gomp_team_barrier_cancelled, don't start any new tasks, just free
416 all tasks.
417 (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
418 * omp_lib.f90.in
419 (omp_proc_bind_kind, omp_proc_bind_false,
420 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
421 omp_proc_bind_spread): New params.
422 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
423 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
424 omp_get_team_num, omp_is_initial_device): New interfaces.
425 (omp_get_dynamic, omp_get_nested, omp_in_parallel,
426 omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
427 omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
428 omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
429 omp_get_team_size, omp_get_active_level, omp_in_final): Remove
430 useless use omp_lib_kinds.
431 * omp.h.in (omp_proc_bind_t): New typedef.
432 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
433 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
434 omp_get_team_num, omp_is_initial_device): New prototypes.
435 * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
436 through to gomp_team_start.
437 (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
438 GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
439 Adjust gomp_parallel_loop_start callers.
440 (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
441 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
442 GOMP_loop_end_cancel): New functions.
443 (GOMP_parallel_end): Add ialias_redirect.
444 * hashtab.h: New file.
445 * libgomp.texi (Environment Variables): Minor cleanup,
446 update section refs to OpenMP 4.0rc2.
447 (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
448 environment variables.
449 * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
450 team->work_shares_to_free to thr->ts.work_share before calling
451 free_work_share.
452 (gomp_work_share_end_cancel): New function.
453 * config/linux/proc.c: Include errno.h.
454 (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
455 (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
456 sizeof (cpu_set_t) to determine number of iterations. Fix up check
457 extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
458 gomp_cpuset_size is sizeof (cpu_set_t).
459 (gomp_init_num_threads): Initialize gomp_cpuset_size,
460 gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
461 of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
462 to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
463 contain any logical CPUs.
464 (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
465 is NULL. Use gomp_cpusetp instead of &cpuset and pass
466 gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
467 pthread_getaffinity_np. Check gomp_places_list instead of
468 gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
469 * config/linux/bar.c (gomp_barrier_wait_end,
470 gomp_barrier_wait_last): Use BAR_* defines.
471 (gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
472 from state where needed. Set work_share_cancelled to 0 on last
473 thread.
474 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
475 gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
476 functions.
477 * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
478 Add cpusetsize argument.
479 (gomp_cpuset_size, gomp_cpusetp): Declare.
480 * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
481 (affinity_counter): Remove.
482 (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
483 if CPU_ALLOC_SIZE isn't defined.
484 (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
485 silently create OMP_PLACES=threads, if it is non-NULL afterwards,
486 bind current thread to the first place.
487 (gomp_init_thread_affinity): Rewritten. Add place argument, just
488 pthread_setaffinity_np to gomp_places_list[place].
489 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
490 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
491 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
492 gomp_affinity_init_level, gomp_affinity_print_place): New functions.
493 * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
494 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
495 (gomp_barrier_t): Add awaited_final field.
496 (gomp_barrier_init): Initialize awaited_final field.
497 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
498 gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
499 prototypes.
500 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
501 defines.
502 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
503 gomp_team_barrier_cancelled): New inline functions.
504 (gomp_barrier_last_thread,
505 gomp_team_barrier_set_task_pending,
506 gomp_team_barrier_clear_task_pending,
507 gomp_team_barrier_set_waiting_for_tasks,
508 gomp_team_barrier_waiting_for_tasks,
509 gomp_team_barrier_done): Use BAR_* defines.
510 * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
511 (gomp_barrier_wait_end): Use BAR_* defines.
512 (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
513 Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
514 Use BAR_* defines.
515 (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
516 gomp_team_barrier_cancel): New functions.
517 * config/posix/affinity.c (gomp_init_thread_affinity): Add place
518 argument.
519 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
520 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
521 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
522 gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
523 * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
524 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
525 (gomp_barrier_t): Add cancellable field.
526 (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
527 gomp_team_barrier_cancel): New prototypes.
528 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
529 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
530 gomp_team_barrier_cancelled): New inline functions.
531 (gomp_barrier_wait_start, gomp_barrier_last_thread,
532 gomp_team_barrier_set_task_pending,
533 gomp_team_barrier_clear_task_pending,
534 gomp_team_barrier_set_waiting_for_tasks,
535 gomp_team_barrier_waiting_for_tasks,
536 gomp_team_barrier_done): Use BAR_* defines.
537 * barrier.c (GOMP_barrier_cancel): New function.
538 * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
539 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
540 omp_proc_bind_spread): New params.
541 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
542 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
543 omp_get_team_num, omp_is_initial_device): New externals.
544 * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
545 New functions.
546 (gomp_resolve_num_threads): Adjust for thread_limit now being in
547 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
548 infinity. If not nested, just return minimum of max_num_threads
549 and icv->thread_limit_var and if thr->thread_pool, set threads_busy
550 to the returned value. Otherwise, don't update atomically
551 gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
552 (GOMP_parallel_end): Adjust for thread_limit now being in
553 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
554 infinity. Adjust threads_busy in the pool rather than
555 gomp_remaining_threads_count. Remember team->nthreads and call
556 gomp_team_end before adjusting threads_busy, if not nested
557 afterwards, just set it to 1 non-atomically. Add ialias.
558 (GOMP_parallel_start): Adjust gomp_team_start caller.
559 * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
560 * testsuite/libgomp.c/affinity-1.c: New test.
561 * testsuite/libgomp.c/atomic-15.c: New test.
562 * testsuite/libgomp.c/atomic-16.c: New test.
563 * testsuite/libgomp.c/atomic-17.c: New test.
564 * testsuite/libgomp.c/cancel-for-1.c: New test.
565 * testsuite/libgomp.c/cancel-for-2.c: New test.
566 * testsuite/libgomp.c/cancel-parallel-1.c: New test.
567 * testsuite/libgomp.c/cancel-parallel-2.c: New test.
568 * testsuite/libgomp.c/cancel-parallel-3.c: New test.
569 * testsuite/libgomp.c/cancel-sections-1.c: New test.
570 * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
571 * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
572 * testsuite/libgomp.c/depend-1.c: New test.
573 * testsuite/libgomp.c/depend-2.c: New test.
574 * testsuite/libgomp.c/depend-3.c: New test.
575 * testsuite/libgomp.c/depend-4.c: New test.
576 * testsuite/libgomp.c/for-1.c: New test.
577 * testsuite/libgomp.c/for-1.h: New file.
578 * testsuite/libgomp.c/for-2.c: New test.
579 * testsuite/libgomp.c/for-2.h: New file.
580 * testsuite/libgomp.c/for-3.c: New test.
581 * testsuite/libgomp.c/pr58392.c: New test.
582 * testsuite/libgomp.c/simd-1.c: New test.
583 * testsuite/libgomp.c/simd-2.c: New test.
584 * testsuite/libgomp.c/simd-3.c: New test.
585 * testsuite/libgomp.c/simd-4.c: New test.
586 * testsuite/libgomp.c/simd-5.c: New test.
587 * testsuite/libgomp.c/simd-6.c: New test.
588 * testsuite/libgomp.c/target-1.c: New test.
589 * testsuite/libgomp.c/target-2.c: New test.
590 * testsuite/libgomp.c/target-3.c: New test.
591 * testsuite/libgomp.c/target-4.c: New test.
592 * testsuite/libgomp.c/target-5.c: New test.
593 * testsuite/libgomp.c/target-6.c: New test.
594 * testsuite/libgomp.c/target-7.c: New test.
595 * testsuite/libgomp.c/taskgroup-1.c: New test.
596 * testsuite/libgomp.c/thread-limit-1.c: New test.
597 * testsuite/libgomp.c/thread-limit-2.c: New test.
598 * testsuite/libgomp.c/thread-limit-3.c: New test.
599 * testsuite/libgomp.c/udr-1.c: New test.
600 * testsuite/libgomp.c/udr-2.c: New test.
601 * testsuite/libgomp.c/udr-3.c: New test.
602 * testsuite/libgomp.c++/affinity-1.C: New test.
603 * testsuite/libgomp.c++/atomic-10.C: New test.
604 * testsuite/libgomp.c++/atomic-11.C: New test.
605 * testsuite/libgomp.c++/atomic-12.C: New test.
606 * testsuite/libgomp.c++/atomic-13.C: New test.
607 * testsuite/libgomp.c++/atomic-14.C: New test.
608 * testsuite/libgomp.c++/atomic-15.C: New test.
609 * testsuite/libgomp.c++/cancel-for-1.C: New test.
610 * testsuite/libgomp.c++/cancel-for-2.C: New test.
611 * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
612 * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
613 * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
614 * testsuite/libgomp.c++/cancel-sections-1.C: New test.
615 * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
616 * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
617 * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
618 * testsuite/libgomp.c++/cancel-test.h: New file.
619 * testsuite/libgomp.c++/for-9.C: New test.
620 * testsuite/libgomp.c++/for-10.C: New test.
621 * testsuite/libgomp.c++/for-11.C: New test.
622 * testsuite/libgomp.c++/simd-1.C: New test.
623 * testsuite/libgomp.c++/simd-2.C: New test.
624 * testsuite/libgomp.c++/simd-3.C: New test.
625 * testsuite/libgomp.c++/simd-4.C: New test.
626 * testsuite/libgomp.c++/simd-5.C: New test.
627 * testsuite/libgomp.c++/simd-6.C: New test.
628 * testsuite/libgomp.c++/simd-7.C: New test.
629 * testsuite/libgomp.c++/simd-8.C: New test.
630 * testsuite/libgomp.c++/target-1.C: New test.
631 * testsuite/libgomp.c++/target-2.C: New test.
632 * testsuite/libgomp.c++/target-2-aux.cc: New file.
633 * testsuite/libgomp.c++/target-3.C: New test.
634 * testsuite/libgomp.c++/taskgroup-1.C: New test.
635 * testsuite/libgomp.c++/udr-1.C: New test.
636 * testsuite/libgomp.c++/udr-2.C: New test.
637 * testsuite/libgomp.c++/udr-3.C: New test.
638 * testsuite/libgomp.c++/udr-4.C: New test.
639 * testsuite/libgomp.c++/udr-5.C: New test.
640 * testsuite/libgomp.c++/udr-6.C: New test.
641 * testsuite/libgomp.c++/udr-7.C: New test.
642 * testsuite/libgomp.c++/udr-8.C: New test.
643 * testsuite/libgomp.c++/udr-9.C: New test.
644
645 2013-09-20 Jakub Jelinek <jakub@redhat.com>
646
647 PR testsuite/57605
648 * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
649 ALWAYS_CFLAGS.
650
651 2013-09-20 Alan Modra <amodra@gmail.com>
652
653 * configure: Regenerate.
654
655 2013-09-19 Jakub Jelinek <jakub@redhat.com>
656
657 * testsuite/libgomp.c/sections-2.c: New test.
658
659 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
660
661 * testsuite/libgomp.fortran/strassen.f90:
662 Add dg-skip-if aarch64_tiny.
663
664 2013-06-20 Iain Sandoe <iain@codesourcery.com>
665 Cesar Philippidis <cesar@codesourcery.com>
666
667 * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
668 Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
669 * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
670 * testsuite/libgomp.fortran/fortran.exp: Likewise.
671 * testsuite/libgomp.graphite/graphite.exp: Likewise.
672 * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
673 Use dg-runtest rather than gfortran-dg-runtest.
674
675 2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
676
677 * testsuite/libgomp.c/icv-2.c: Extend current handling of
678 Linux-based x86 systems to cover all GNU systems.
679 * testsuite/libgomp.c/lock-3.c: Likewise.
680 * testsuite/libgomp.c/pr48591.c: Likewise.
681
682 2013-06-06 Thomas Schwinge <thomas@codesourcery.com>
683
684 * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
685 GNU/Hurd, as done for Linux-based systems.
686
687 * config/posix/ptrlock.h: Fix comment.
688
689 2013-05-27 Tobias Burnus <burnus@net-b.de>
690
691 PR fortran/57423
692 * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
693 omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
694 omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
695 omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
696 omp_destroy_nest_lock): Correct arguments to match the one in
697 the OpenMP spec.
698 * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
699 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
700 omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
701 omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
702
703 2013-05-16 Jakub Jelinek <jakub@redhat.com>
704
705 * testsuite/libgomp.c/loop-13.c: New test.
706 * testsuite/libgomp.c/loop-14.c: New test.
707 * testsuite/libgomp.c/loop-15.c: New test.
708 * testsuite/libgomp.c++/loop-13.C: New test.
709 * testsuite/libgomp.c++/loop-14.C: New test.
710 * testsuite/libgomp.c++/loop-15.C: New test.
711
712 2013-02-06 Jakub Jelinek <jakub@redhat.com>
713
714 PR middle-end/56217
715 * testsuite/libgomp.c++/pr56217.C: New test.
716
717 2013-02-01 Alan Modra <amodra@gmail.com>
718
719 * task.c (GOMP_task, GOMP_taskwait): Comment.
720
721 2013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org>
722 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
723
724 PR libgomp/55561
725 * config/linux/wait.h (do_spin): Use atomic load for addr.
726 * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
727 for intptr and ptrlock.
728 * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
729 for ptrlock.
730
731 2013-01-22 Alan Modra <amodra@gmail.com>
732
733 PR libgomp/51376
734 PR libgomp/56073
735 * task.c (GOMP_task): Revert 2011-12-09 change.
736 (GOMP_taskwait): Likewise. Instead use atomic load with acquire
737 barrier to read task->children..
738 (gomp_barrier_handle_tasks): ..and matching atomic store with
739 release barrier here when setting parent->children to NULL.
740
741 2013-01-16 Jakub Jelinek <jakub@redhat.com>
742 Tobias Burnus <burnus@net-b.de>
743
744 PR driver/55884
745 * testsuite/libgomp.fortran/fortran.exp: Use
746 -fintrinsic-modules-path= instead of
747 -fintrinsic-modules-path.
748
749 2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
750
751 Update copyright years.
752
753 2012-12-19 Tobias Burnus <burnus@net-b.de>
754
755 * testsuite/libgomp.fortran/fortran.exp: Set
756 -fintrinsic-modules-path.
757
758 2012-12-19 Tobias Burnus <burnus@net-b.de>
759
760 * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
761 from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
762
763 2012-11-21 Jakub Jelinek <jakub@redhat.com>
764
765 PR libgomp/55411
766 * team.c (gomp_free_thread): Decrease gomp_managed_threads
767 if pool had any threads_used.
768
769 2012-11-07 Jack Howarth <howarth@bromo.med.uc.edu>
770
771 * testsuite/libgomp.c++/pr24455.C: Use
772 -Wl,-undefined,dynamic_lookup on darwin.
773
774 2012-11-07 David Edelsohn <dje.gcc@gmail.com>
775
776 * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
777
778 2012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr>
779
780 * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
781
782 2012-10-23 Ian Bolton <ian.bolton@arm.com>
783 Jim MacArthur <jim.macarthur@arm.com>
784 Marcus Shawcroft <marcus.shawcroft@arm.com>
785 Nigel Stephens <nigel.stephens@arm.com>
786 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
787 Richard Earnshaw <rearnsha@arm.com>
788 Sofiane Naci <sofiane.naci@arm.com>
789 Stephen Thomas <stephen.thomas@arm.com>
790 Tejas Belagod <tejas.belagod@arm.com>
791 Yufeng Zhang <yufeng.zhang@arm.com>
792
793 * configure.tgt: Add AArch64.
794
795 2012-10-04 Jason Merrill <jason@redhat.com>
796
797 * testsuite/libgomp.c++/tls-init1.C: New.
798
799 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
800
801 * configure: Regenerated.
802
803 2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
804
805 * config/linux/mips/futex.h (sys_futex0): Change to static
806 function with noinline, nomips16 attributes under MIPS16. Adjust
807 asm statement to place 'li v0,SYS_futex' immediately before
808 syscall insn.
809
810 2012-07-04 Sandra Loosemore <sandra@codesourcery.com>
811
812 * libgomp.texi (Library Index): Renamed from "Index" to prevent
813 conflict with index.html on case-insensitive file systems.
814
815 2012-07-03 Uros Bizjak <ubizjak@gmail.com>
816
817 * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
818 * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
819
820 2012-07-02 Richard Guenther <rguenther@suse.de>
821 Michael Matz <matz@suse.de>
822 Tobias Grosser <tobias@grosser.es>
823 Sebastian Pop <sebpop@gmail.com>
824
825 * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
826 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
827 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
828 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
829
830 2012-06-28 Andreas Schwab <schwab@linux-m68k.org>
831
832 * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
833
834 2012-06-22 Richard Guenther <rguenther@suse.de>
835
836 Merge from graphite branch
837 2012-01-13 Tobias Grosser <tobias@grosser.es>
838
839 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
840 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
841
842 2012-06-07 Jakub Jelinek <jakub@redhat.com>
843
844 PR middle-end/53580
845 * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
846 use GOMP_barrier () call instead.
847 * testsuite/libgomp.c/pr26943-3.c: Likewise.
848 * testsuite/libgomp.c/pr26943-4.c: Likewise.
849 * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
850 call GOMP_barrier instead.
851 * testsuite/libgomp.fortran/vla5.f90: Likewise.
852
853 2012-06-06 Jakub Jelinek <jakub@redhat.com>
854
855 PR libgomp/52993
856 * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
857 argument to memset call.
858
859 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
860
861 * configure: Regenerated.
862
863 2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
864
865 * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
866
867 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
868
869 PR bootstrap/52812
870 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
871
872 2012-03-22 Jakub Jelinek <jakub@redhat.com>
873
874 PR middle-end/52547
875 * testsuite/libgomp.c/pr52547.c: New test.
876
877 2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
878
879 * testsuite/lib/libgomp.exp: load fortran-modules.exp
880
881 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
882
883 * configure.tgt (mips-sgi-irix6*): Remove.
884
885 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
886
887 * configure.tgt (alpha*-dec-osf*): Remove.
888
889 * config/osf/sem.h: Remove.
890 * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
891
892 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
893
894 * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
895
896 2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
897
898 PR libstdc++/52188
899 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
900 Remove ENABLE_SYMVERS_SOL2.
901 * configure: Regenerate.
902 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
903 (PREPROCESS): New variable.
904 (libgomp.ver): New target.
905 [LIBGOMP_BUILD_VERSIONED_SHLIB &&
906 LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
907 LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
908 Use libgomp.ver.
909 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
910 * Makefile.in: Regenerate.
911
912 2012-02-14 Walter Lee <walt@tilera.com>
913
914 * configure.tgt: Handle tilegx and tilepro.
915 * config/linux/tile/futex.h: New file.
916
917 2012-02-08 Richard Guenther <rguenther@suse.de>
918
919 PR tree-optimization/46886
920 * testsuite/libgomp.c/pr46886.c: New testcase.
921
922 2012-01-25 Matthias Klose <doko@ubuntu.com>
923
924 * config/linux/arm: Remove empty directory.
925 * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
926
927 2011-12-09 Alan Modra <amodra@gmail.com>
928
929 PR libgomp/51376
930 * task.c (GOMP_taskwait): Don't access task->children outside of
931 task_lock mutex region.
932 (GOMP_task): Likewise.
933
934 2011-12-06 Jakub Jelinek <jakub@redhat.com>
935
936 PR libgomp/51132
937 * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
938 to file scope.
939 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
940 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
941 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
942 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
943 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
944
945 2011-12-02 Alan Modra <amodra@gmail.com>
946
947 * config/linux/affinity.c: Use atomic rather than sync builtin.
948 * config/linux/lock.c: Likewise.
949 * config/linux/ptrlock.h: Likewise.
950 * config/linux/ptrlock.c: Likewise.
951 * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
952 * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
953 * config/linux/futex.h (atomic_write_barrier): Delete unused function.
954 * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
955 * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
956 * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
957 * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
958 * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
959 * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
960 * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
961
962 2011-11-30 Alan Modra <amodra@gmail.com>
963
964 PR libgomp/51298
965 * config/linux/bar.h: Use atomic rather than sync builtins.
966 * config/linux/bar.c: Likewise. Add missing acquire
967 synchronisation on generation field.
968 * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
969 double unlock.
970
971 2011-11-30 Alan Modra <amodra@gmail.com>
972
973 * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
974 * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
975 * config/linux/mutex.h: Use atomic rather than sync builtins.
976 * config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state.
977 * config/linux/omp-lock.h: Comment fix.
978 * config/linux/arm/mutex.h: Delete.
979 * config/linux/powerpc/mutex.h: Delete.
980 * config/linux/ia64/mutex.h: Delete.
981 * config/linux/mips/mutex.h: Delete.
982
983 2011-11-30 Alan Modra <amodra@gmail.com>
984
985 PR libgomp/51249
986 * config/linux/sem.h: Rewrite.
987 * config/linux/sem.c: Rewrite.
988
989 2011-11-28 Richard Henderson <rth@redhat.com>
990
991 * libgomp.h (enum memmodel): New.
992
993 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
994
995 * configure: Regenerate.
996
997 2011-10-10 Matthias Klose <doko@ubuntu.com>
998
999 * config/posix95: Remove empty directory.
1000
1001 2011-08-26 Jakub Jelinek <jakub@redhat.com>
1002
1003 * testsuite/libgomp.fortran/threadprivate4.f90: New test.
1004
1005 2011-08-19 Jakub Jelinek <jakub@redhat.com>
1006
1007 PR fortran/49792
1008 * testsuite/libgomp.fortran/pr49792-1.f90: New test.
1009 * testsuite/libgomp.fortran/pr49792-2.f90: New test.
1010
1011 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1012
1013 * config/posix95/lock.c, posix95/omp-lock.h: Remove.
1014
1015 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1016
1017 PR libgomp/49965
1018 * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
1019
1020 2011-08-03 Uros Bizjak <ubizjak@gmail.com>
1021
1022 * config/linux/proc.h: New.
1023 * config/linux/proc.c: Include "proc.h". Do not include <sched.h>.
1024 (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static.
1025 (gomp_init_num_threads): Update call to cpuset_popcount.
1026 (get_num_procs): Ditto.
1027 * config/linux/affinity.c (gomp_init_affinity): Call
1028 gomp_cpuset_popcount.
1029
1030 2011-08-02 Jakub Jelinek <jakub@redhat.com>
1031
1032 PR fortran/42041
1033 PR fortran/46752
1034 * omp.h.in (omp_in_final): New prototype.
1035 * omp_lib.f90.in (omp_in_final): New interface.
1036 (omp_integer_kind, omp_logical_kind): Remove
1037 and replace all its uses in the module with 4.
1038 (openmp_version): Change to 201107.
1039 * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
1040 omp_sched_guided, omp_sched_auto): Use omp_sched_kind
1041 kind for the parameters.
1042 (omp_in_final): New external.
1043 (openmp_version): Change to 201107.
1044 * task.c (omp_in_final): New function.
1045 (gomp_init_task): Initialize final_task.
1046 (GOMP_task): Remove unused attribute from flags. Handle final
1047 tasks.
1048 (GOMP_taskyield): New function.
1049 (omp_in_final): Return true if if (false) or final (true) task
1050 or descendant of final (true).
1051 * fortran.c (omp_in_final_): New function.
1052 * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
1053 (GOMP_3.0): Export GOMP_taskyield.
1054 * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
1055 variables.
1056 (parse_unsigned_long_list): New function.
1057 (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
1058 with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
1059 even if parse_affinity returned false.
1060 * config/linux/affinity.c (gomp_init_affinity): Handle
1061 gomp_cpu_affinity_len == 0.
1062 * libgomp_g.h (GOMP_taskyield): New prototype.
1063 * libgomp.h (struct gomp_task): Add final_task field.
1064 (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
1065 * team.c (gomp_team_start): Override new task's nthreads_var icv
1066 if list form OMP_NUM_THREADS has been used and it has value for
1067 the new nesting level.
1068
1069 * testsuite/libgomp.c/atomic-11.c: New test.
1070 * testsuite/libgomp.c/atomic-12.c: New test.
1071 * testsuite/libgomp.c/atomic-13.c: New test.
1072 * testsuite/libgomp.c/atomic-14.c: New test.
1073 * testsuite/libgomp.c/reduction-6.c: New test.
1074 * testsuite/libgomp.c/task-5.c: New test.
1075 * testsuite/libgomp.c++/atomic-2.C: New test.
1076 * testsuite/libgomp.c++/atomic-3.C: New test.
1077 * testsuite/libgomp.c++/atomic-4.C: New test.
1078 * testsuite/libgomp.c++/atomic-5.C: New test.
1079 * testsuite/libgomp.c++/atomic-6.C: New test.
1080 * testsuite/libgomp.c++/atomic-7.C: New test.
1081 * testsuite/libgomp.c++/atomic-8.C: New test.
1082 * testsuite/libgomp.c++/atomic-9.C: New test.
1083 * testsuite/libgomp.c++/task-8.C: New test.
1084 * testsuite/libgomp.c++/reduction-4.C: New test.
1085 * testsuite/libgomp.fortran/allocatable7.f90: New test.
1086 * testsuite/libgomp.fortran/allocatable8.f90: New test.
1087 * testsuite/libgomp.fortran/crayptr3.f90: New test.
1088 * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
1089 * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
1090 * testsuite/libgomp.fortran/pointer1.f90: New test.
1091 * testsuite/libgomp.fortran/pointer2.f90: New test.
1092 * testsuite/libgomp.fortran/task4.f90: New test.
1093
1094 2011-08-02 Tobias Burnus <burnus@net-b.de>
1095
1096 * libgomp.texi: Update OpenMP spec references to 3.1.
1097 (omp_in_final,OMP_PROC_BIND): New sections.
1098 (OMP_NUM_THREADS): Document that the value can be now a list.
1099 (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1100
1101 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
1102
1103 * config/linux/x86/futex.h: Check __x86_64__ instead of
1104 __LP64__.
1105
1106 2011-07-29 Jakub Jelinek <jakub@redhat.com>
1107
1108 PR middle-end/49897
1109 PR middle-end/49898
1110 * testsuite/libgomp.c/pr49897-1.c: New test.
1111 * testsuite/libgomp.c/pr49897-2.c: New test.
1112 * testsuite/libgomp.c/pr49898-1.c: New test.
1113 * testsuite/libgomp.c/pr49898-2.c: New test.
1114
1115 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1116
1117 * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1118 for ia32 instead of ilp32.
1119
1120 * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1121 * testsuite/libgomp.c/atomic-6.c: Likewise.
1122
1123 2011-07-23 Sebastian Pop <sebastian.pop@amd.com>
1124
1125 * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1126 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1127
1128 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1129
1130 PR libgomp/45351
1131 * config/osf/sem.h: New file.
1132 * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1133
1134 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1135
1136 PR target/49541
1137 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1138 ldflags.
1139
1140 2011-07-15 Jakub Jelinek <jakub@redhat.com>
1141
1142 * config/linux/wait.h (do_spin): New inline, largely copied
1143 from do_wait, just don't do futex_wait here, instead return true if
1144 it should be done.
1145 (do_wait): Implement using do_spin.
1146 * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1147 to prototype.
1148 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1149 __sync_bool_compare_and_swap, pass the oldval to
1150 gomp_mutex_lock_slow.
1151 * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1152 If all mutex contenders are just spinning and not sleeping, don't
1153 change state to 2 unnecessarily. Optimize the loop when state has
1154 already become 2 to use just one atomic operation per loop instead
1155 of two.
1156 * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1157 to prototype.
1158 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1159 __sync_bool_compare_and_swap, pass the oldval to
1160 gomp_mutex_lock_slow.
1161
1162 2011-06-22 Jakub Jelinek <jakub@redhat.com>
1163
1164 PR libgomp/49490
1165 * iter.c (gomp_iter_static_next): For chunk size 0
1166 only use n ceil/ nthreads size for the first
1167 n % nthreads threads in the team instead of
1168 all threads except for the last few ones which
1169 get less work or none at all.
1170 * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1171 * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1172 chunk argument, set run_sched_modifier to 0 for static
1173 resp. 1 for other kinds. If chunk argument is 0
1174 and not static, set value to 1.
1175
1176 2011-05-19 Jakub Jelinek <jakub@redhat.com>
1177
1178 PR c++/49043
1179 * testsuite/libgomp.c++/pr49043.C: New test.
1180
1181 PR c++/48869
1182 * testsuite/libgomp.c++/pr48869.C: New test.
1183
1184 2011-05-06 Jakub Jelinek <jakub@redhat.com>
1185
1186 PR fortran/48894
1187 * fortran.c: Include limits.h.
1188 (TO_INT): Define.
1189 (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1190 *set.
1191 (omp_set_num_threads_8_, omp_set_schedule_8_,
1192 omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1193 omp_get_team_size_8_): Use TO_INT macro.
1194 * testsuite/libgomp.fortran/pr48894.f90: New test.
1195
1196 2011-04-13 Jakub Jelinek <jakub@redhat.com>
1197
1198 PR middle-end/48591
1199 * testsuite/libgomp.c/pr48591.c: New test.
1200
1201 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1202
1203 PR bootstrap/48135
1204 * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1205 * configure: Regenerate.
1206
1207 2011-02-27 Jakub Jelinek <jakub@redhat.com>
1208
1209 PR fortran/47886
1210 * testsuite/libgomp.fortran/task3.f90: New test.
1211
1212 2011-02-24 Tobias Burnus <burnus@net-b.de>
1213
1214 * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1215
1216 2011-02-23 Jakub Jelinek <jakub@redhat.com>
1217
1218 PR libgomp/47854
1219 * libgomp.texi (omp_get_wtime): Don't say time in the past
1220 must be Unix Epoch.
1221
1222 2011-02-18 Jakub Jelinek <jakub@redhat.com>
1223
1224 PR libgomp/47804
1225 * testsuite/libgomp.fortran/fortran.exp: Check for both
1226 libquadmath.a and libquadmath.${shlib_ext}. If neither exists,
1227 but $blddir != "", still append ${blddir}/${lang_library_path}
1228 to ld_library_path.
1229
1230 2011-02-16 Tobias Burnus <burnus@net-b.de>
1231
1232 PR libgomp/47758
1233 * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1234 of libquadmath.a before adding its libpath to ldflags.
1235
1236 2011-02-14 Jakub Jelinek <jakub@redhat.com>
1237
1238 PR libgomp/47731
1239 * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1240 to FUTEX_WAIT futex syscall.
1241 * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1242
1243 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1244
1245 * configure: Regenerate.
1246
1247 2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
1248
1249 PR libstdc++/36104
1250 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1251
1252 2011-01-16 Gerald Pfeifer
1253
1254 * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1255
1256 2010-12-14 Jakub Jelinek <jakub@redhat.com>
1257
1258 PR fortran/46874
1259 * libgomp.fortran/allocatable6.f90: New test.
1260
1261 2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1262
1263 * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1264 * configure: Regenerate.
1265
1266 2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com>
1267
1268 PR target/40125
1269 PR lto/46695
1270 * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1271 * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1272 * aclocal.m4: Regenerate.
1273 * configure: Regenerate.
1274 * Makefile.in: Regenerate.
1275 * testsuite/Makefile.in: Regenerate.
1276
1277 2010-12-02 Jakub Jelinek <jakub@redhat.com>
1278
1279 PR fortran/46753
1280 * libgomp.fortran/pr46753.f90: New test.
1281
1282 PR libgomp/43706
1283 * env.c (initialize_env): Default to spin count 300000
1284 instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1285 is specified.
1286
1287 PR libgomp/45240
1288 * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1289 at the end if sync builtins aren't supported.
1290
1291 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1292
1293 * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1294
1295 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1296
1297 * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1298
1299 2010-11-24 Iain Sandoe <iains@gcc.gnu.org>
1300
1301 * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1302
1303 2010-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1304 Tobias Burnus <burnus@net-b.de>
1305
1306 PR fortran/32049
1307 * configure.ac:
1308 * configure: Regenerate.
1309
1310 2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
1311
1312 * config/linux/futex.h: New.
1313 * config/linux/arm/mutex.h: New.
1314 * configure.tgt (arm*-*-linux*): Add config path.
1315
1316 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
1317
1318 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1319
1320 2010-09-23 Tobias Burnus <burnus@net-b.de>
1321
1322 * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
1323 Change Fortran datatype to LOGICAL.
1324 (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
1325 omp_unset_nested_lock): Use intent(inout) instead of intent(out).
1326
1327 2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1328
1329 * configure: Regenerate.
1330
1331 2010-07-26 Jakub Jelinek <jakub@redhat.com>
1332
1333 * libgomp.texi: Add function keyword to a couple of Fortran
1334 interfaces, use integer instead of int for Fortran.
1335
1336 2010-07-26 Aldy Hernandez <aldyh@redhat.com>
1337
1338 * libgomp.texi: Fix spelling and pasto problems throughout.
1339 Adjust prototypes to match code.
1340
1341 2010-07-24 Tobias Burnus <burnus@net-b.de>
1342
1343 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
1344 silence -fwhole-file warning.
1345
1346 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1347
1348 * configure.tgt (*-*-solaris2.[56]*): Removed.
1349
1350 2010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1351
1352 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
1353 Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
1354 LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
1355 (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
1356 targetting solaris2*.
1357 * configure: Regenerate.
1358 * config.h.in: Regenerate.
1359
1360 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
1361 libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
1362 Add libgomp_version_dep.
1363 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
1364 versioning.
1365 [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
1366 (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
1367 * Makefile.in: Regenerate.
1368
1369 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
1370 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1371 * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
1372 to common block, protected by
1373 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1374
1375 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
1376
1377 * libgomp.texi: Move to GFDL version 1.3. Update copyright years.
1378
1379 2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
1380
1381 PR bootstrap/43170
1382 * configure: Regenerate.
1383
1384 2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1385
1386 PR other/43620
1387 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
1388 * configure: Regenerate.
1389 * Makefile.in: Regenerate.
1390 * testsuite/Makefile.in: Regenerate.
1391
1392 2010-04-26 Jakub Jelinek <jakub@redhat.com>
1393
1394 PR c/43893
1395 * testsuite/libgomp.c/pr43893.c: New test.
1396 * testsuite/libgomp.c++/pr43893.C: New test.
1397
1398 2010-04-21 Jakub Jelinek <jakub@redhat.com>
1399
1400 PR middle-end/43570
1401 * testsuite/libgomp.fortran/vla8.f90: New test.
1402
1403 2010-04-20 Jakub Jelinek <jakub@redhat.com>
1404
1405 PR libgomp/43706
1406 * config/linux/affinity.c (gomp_init_affinity): Decrease
1407 gomp_available_cpus if affinity mask confines the process to fewer
1408 CPUs.
1409 * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
1410 non-NULL, just return gomp_available_cpus.
1411
1412 PR libgomp/43569
1413 * sections.c (gomp_sections_init): Initialize ws->mode.
1414
1415 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
1416
1417 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
1418 not unused bar variable.
1419 * configure: Regenerate.
1420
1421 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1422
1423 * Makefile.in: Regenerate.
1424 * aclocal.m4: Regenerate.
1425 * testsuite/Makefile.in: Regenerate.
1426
1427 2010-03-22 Jakub Jelinek <jakub@redhat.com>
1428
1429 PR libgomp/42942
1430 * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
1431 (initialize_env): Adjust callers.
1432 (omp_set_max_active_levels): Set gomp_max_active_levels_var even
1433 when the argument is 0.
1434
1435 * testsuite/libgomp.c/pr42942.c: New test.
1436
1437 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
1438
1439 PR middle-end/42644
1440 PR middle-end/42130
1441 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1442 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
1443
1444 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1445
1446 * testsuite/libgomp.c++/task-1.C: Renamed err to e.
1447 * testsuite/libgomp.c++/task-6.C: Likewise.
1448
1449 2010-01-28 Steve Ellcey <sje@cup.hp.com>
1450
1451 * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
1452
1453 2010-01-26 Paolo Bonzini <bonzini@gnu.org>
1454
1455 * configure.ac: Test for executability of _the first word_ of GFORTRAN.
1456 * configure: Regenerate.
1457
1458 2010-01-26 Jakub Jelinek <jakub@redhat.com>
1459
1460 PR fortran/42866
1461 * testsuite/libgomp.fortran/allocatable5.f90: New test.
1462
1463 2010-01-20 Paolo Bonzini <bonzini@gnu.org>
1464
1465 * configure.ac: Test for executability of GFORTRAN.
1466 * configure: Regenerate.
1467
1468 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1469
1470 * configure: Regenerate.
1471
1472 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
1473
1474 PR libgomp/42602
1475 * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
1476
1477 2010-01-03 Richard Guenther <rguenther@suse.de>
1478
1479 * testsuite/libgomp.fortran/recursion1.f90: New testcase.
1480
1481 2009-12-23 Sebastian Pop <sebpop@gmail.com>
1482
1483 * testsuite/libgomp.graphite/pr4118.c: New.
1484
1485 2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1486
1487 * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
1488 for darwin, protect the test with require-effective-target tls_runtime.
1489 * testsuite/libgomp.fortran/pr32550.f90: Ditto.
1490
1491 2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1492
1493 PR target/41605
1494 * testsuite/lib/libgomp.exp: Provide -B options to allow for
1495 link spec %s substitutions for static libraries.
1496
1497 2009-12-18 Jack Howarth <howarth@bromo.med.uc.edu>
1498
1499 PR testsuite/42135
1500 * libgomp.graphite/force-parallel-2.c: Reduce array size.
1501
1502 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1503
1504 * Makefile.in: Regenerate.
1505 * configure: Regenerate.
1506 * testsuite/Makefile.in: Regenerate.
1507
1508 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
1509
1510 * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
1511 settings for LC_ALL and LANG.
1512
1513 2009-11-25 Jakub Jelinek <jakub@redhat.com>
1514
1515 PR fortran/42162
1516 * testsuite/libgomp.fortran/pr42162.f90: New test.
1517
1518 2009-11-13 Jakub Jelinek <jakub@redhat.com>
1519
1520 PR middle-end/42029
1521 * testsuite/libgomp.c/pr42029.c: New test.
1522
1523 2009-10-26 Jakub Jelinek <jakub@redhat.com>
1524
1525 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
1526 *s. Accept ld version without text in ()s.
1527 * configure: Regenerated.
1528
1529 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
1530
1531 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
1532
1533 2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1534
1535 PR libgomp/41418
1536 * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
1537 or a hyphen (happens with fortran language disabled).
1538 * configure: Regenerate.
1539
1540 2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1541
1542 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
1543 use sed script portable to Solaris /bin/sed for extracting ld
1544 version.
1545 * configure: Regenerate.
1546
1547 2009-09-17 Alexander Monakov <amonakov@ispras.ru>
1548
1549 * testsuite/libgomp.graphite/bounds.c: New test.
1550
1551 2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1552
1553 * Makefile.am (libgomp_la_LINK): New.
1554 * Makefile.in: Regenerate.
1555
1556 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1557
1558 * configure.ac (AC_PREREQ): Bump to 2.64.
1559
1560 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1561
1562 * Makefile.am (install-html, install-pdf): Remove.
1563 * Makefile.in: Regenerate.
1564
1565 * Makefile.in: Regenerate.
1566 * aclocal.m4: Regenerate.
1567 * config.h.in: Regenerate.
1568 * configure: Regenerate.
1569 * testsuite/Makefile.in: Regenerate.
1570
1571 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1572
1573 * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
1574 * Makefile.in: Regenerate.
1575
1576 2009-08-20 Dave Korn <dave.korn.cygwin@gmail.com>
1577
1578 * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
1579 * Makefile.in: Regenerate.
1580
1581 2009-08-19 Tobias Burnus <burnus@net-b.de>
1582
1583 PR fortran/41102
1584 omp_lib.h.in: Fix -std=f95 errors.
1585
1586
1587 2009-08-14 David Edelsohn <edelsohn@gnu.org>
1588
1589 * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
1590 * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
1591 * testsuite/libgomp.graphite/graphite.exp: New.
1592
1593 2009-08-05 Andreas Tobler <a.tobler@schweiz.org>
1594
1595 * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
1596 only build.
1597
1598 2009-08-04 David Daney <ddaney@caviumnetworks.com>
1599
1600 * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
1601 needed memory barrier semantics.
1602 * config/linux/mips/mutex.h: New file.
1603
1604 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1605
1606 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1607
1608 2009-07-16 Joseph Myers <joseph@codesourcery.com>
1609
1610 * configure: Regenerate.
1611
1612 2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1613
1614 PR testsuite/40699
1615 PR testsuite/40707
1616 PR testsuite/40709
1617 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
1618 * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
1619 testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
1620
1621 2009-07-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1622
1623 * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
1624 options when choosing a multilib.
1625
1626 2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1627
1628 * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
1629 ld_library_path. Use add_path. Add just find_libgcc_s to
1630 ld_library_path, not every libgcc multilib directory.
1631 * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
1632 gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
1633 * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
1634 Use add_path.
1635 * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
1636
1637 2009-06-09 Nathan Froyd <froydnj@codesourcery.com>
1638
1639 * Makefile.am (LTLDFLAGS): Define.
1640 (LINK): Define.
1641 * Makefile.in: Regenerate.
1642
1643 2009-05-27 Janne Blomqvist <jb@gcc.gnu.org>
1644
1645 PR fortran/39718
1646 * testsuite/libgomp.fortran/fortran.exp: Don't link with
1647 libgfortranbegin, check existence of libgfortran.a instead of
1648 libgfortranbegin.a.
1649
1650 2009-05-20 Jakub Jelinek <jakub@redhat.com>
1651
1652 PR libgomp/40174
1653 * team.c (gomp_thread_start): Destroy thr->release semaphore.
1654 (gomp_free_pool_helper): Likewise.
1655
1656 2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
1657 Jakub Jelinek <jakub@redhat.com>
1658
1659 PR fortran/35423
1660 * testsuite/libgomp.fortran/workshare2.f90: New test.
1661
1662 2009-04-09 Nick Clifton <nickc@redhat.com>
1663
1664 * iter.c: Change copyright header to refer to version 3 of the
1665 GNU General Public License with version 3.1 of the GCC Runtime
1666 Library Exception and to point readers at the COPYING3 and
1667 COPYING3.RUNTIME files and the FSF's license web page.
1668 * alloc.c: Likewise.
1669 * barrier.c: Likewise.
1670 * config/bsd/proc.c: Likewise.
1671 * config/linux/affinity.c: Likewise.
1672 * config/linux/alpha/futex.h: Likewise.
1673 * config/linux/bar.c: Likewise.
1674 * config/linux/bar.h: Likewise.
1675 * config/linux/ia64/futex.h: Likewise.
1676 * config/linux/ia64/mutex.h: Likewise.
1677 * config/linux/lock.c: Likewise.
1678 * config/linux/mips/futex.h: Likewise.
1679 * config/linux/mutex.c: Likewise.
1680 * config/linux/mutex.h: Likewise.
1681 * config/linux/powerpc/futex.h: Likewise.
1682 * config/linux/proc.c: Likewise.
1683 * config/linux/ptrlock.c: Likewise.
1684 * config/linux/ptrlock.h: Likewise.
1685 * config/linux/s390/futex.h: Likewise.
1686 * config/linux/sem.c: Likewise.
1687 * config/linux/sem.h: Likewise.
1688 * config/linux/sparc/futex.h: Likewise.
1689 * config/linux/wait.h: Likewise.
1690 * config/linux/x86/futex.h: Likewise.
1691 * config/mingw32/proc.c: Likewise.
1692 * config/mingw32/time.c: Likewise.
1693 * config/posix/affinity.c: Likewise.
1694 * config/posix/bar.c: Likewise.
1695 * config/posix/bar.h: Likewise.
1696 * config/posix/lock.c: Likewise.
1697 * config/posix/mutex.h: Likewise.
1698 * config/posix/proc.c: Likewise.
1699 * config/posix/ptrlock.h: Likewise.
1700 * config/posix/sem.c: Likewise.
1701 * config/posix/sem.h: Likewise.
1702 * config/posix/time.c: Likewise.
1703 * config/posix95/lock.c: Likewise.
1704 * critical.c: Likewise.
1705 * env.c: Likewise.
1706 * error.c: Likewise.
1707 * fortran.c: Likewise.
1708 * iter_ull.c: Likewise.
1709 * libgomp.h: Likewise.
1710 * libgomp_f.h.in: Likewise.
1711 * libgomp_g.h: Likewise.
1712 * loop.c: Likewise.
1713 * loop_ull.c: Likewise.
1714 * omp.h.in: Likewise.
1715 * omp_lib.f90.in: Likewise.
1716 * omp_lib.h.in: Likewise.
1717 * ordered.c: Likewise.
1718 * parallel.c: Likewise.
1719 * sections.c: Likewise.
1720 * single.c: Likewise.
1721 * task.c: Likewise.
1722 * team.c: Likewise.
1723 * work.c: Likewise.
1724
1725 2009-04-09 Jakub Jelinek <jakub@redhat.com>
1726
1727 * testsuite/config/default.exp: Change copyright header to refer to
1728 version 3 of the GNU General Public License and to point readers
1729 at the COPYING3 file and the FSF's license web page.
1730
1731 2009-04-08 Jakub Jelinek <jakub@redhat.com>
1732
1733 PR middle-end/39573
1734 * libgomp.c++/pr39573.C: New test.
1735
1736 2009-04-01 Jakub Jelinek <jakub@redhat.com>
1737
1738 PR other/39591
1739 * testsuite/libgomp.c/pr39591-1.c: New test.
1740 * testsuite/libgomp.c/pr39591-2.c: New test.
1741 * testsuite/libgomp.c/pr39591-3.c: New test.
1742
1743 2009-03-25 Uros Bizjak <ubizjak@gmail.com>
1744
1745 * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
1746 * testsuite/libgomp.c/atomic-6.c: Ditto.
1747
1748 2009-03-23 Jakub Jelinek <jakub@redhat.com>
1749
1750 PR c/39495
1751 * testsuite/libgomp.c/loop-12.c: New test.
1752 * testsuite/libgomp.c/loop-11.c: New test.
1753 * testsuite/libgomp.c++/loop-11.C: New test.
1754 * testsuite/libgomp.c++/loop-12.C: New test.
1755 * testsuite/libgomp.c++/for-8.C: New test.
1756
1757 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1758
1759 * configure: Regenerate.
1760
1761 2009-02-11 Jakub Jelinek <jakub@redhat.com>
1762
1763 PR middle-end/39154
1764 * testsuite/libgomp.c/pr39154.c: New test.
1765
1766 2009-01-30 Ian Lance Taylor <iant@google.com>
1767
1768 * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
1769 libgomp_ld_is_gold. Get gold version number.
1770 (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
1771 * configure: Rebuild.
1772
1773 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1774
1775 * testsuite/lib/libgomp.exp: Add -B option for targets that
1776 use libgfortran.a%s in their specs.
1777
1778 2009-01-07 Jakub Jelinek <jakub@redhat.com>
1779
1780 PR libgomp/38086
1781 * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
1782 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
1783 HAVE_AS_SYMVER_DIRECTIVE is not defined.
1784 * configure: Regenerated.
1785 * config.h.in: Likewise.
1786
1787 2008-12-28 Jakub Jelinek <jakub@redhat.com>
1788
1789 PR c++/38650
1790 * testsuite/libgomp.c/pr38650.c: New test.
1791 * testsuite/libgomp.c++/pr38650.C: New test.
1792
1793 2008-12-27 Jakub Jelinek <jakub@redhat.com>
1794
1795 * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
1796
1797 2008-12-26 Uros Bizjak <ubizjak@gmail.com>
1798
1799 * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
1800
1801 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1802
1803 * configure: Regenerate.
1804
1805 2008-12-08 Jakub Jelinek <jakub@redhat.com>
1806
1807 PR middle-end/36802
1808 * testsuite/libgomp.c/pr36802-1.c: New test.
1809 * testsuite/libgomp.c/pr36802-2.c: New test.
1810 * testsuite/libgomp.c/pr36802-3.c: New test.
1811
1812 2008-12-01 Janis Johnson <janis187@us.ibm.com>
1813
1814 PR libgomp/38270
1815 * config/linux/powerpc/mutex.h: New.
1816
1817 2008-12-01 Jakub Jelinek <jakub@redhat.com>
1818
1819 PR c++/38257
1820 * testsuite/libgomp.c++/for-7.C: New test.
1821
1822 PR c++/38348
1823 * testsuite/libgomp.c++/for-6.C: New test.
1824
1825 2008-11-26 Janis Johnson <janis187@us.ibm.com>
1826
1827 PR testsuite/28870
1828 * testsuite/lib/libgomp.exp: Include new timeout library files.
1829 (libgomp_target_compile): Set timeout value from new proc.
1830
1831 2008-11-13 Steve Ellcey <sje@cup.hp.com>
1832
1833 PR libgomp/37938
1834 * config/linux/ia64/mutex.h: New.
1835
1836 2008-11-04 Tobias Burnus <burnus@net-b.de>
1837
1838 PR libgomp/37935
1839 * libgomp.texi (Runtime library routines, environment variables):
1840 Update for OpenMP version 3.0.
1841
1842 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
1843 Steve Ellcey <sje@cup.hp.com>
1844
1845 * configure: Regenerate for new libtool.
1846 * Makefile.in: Ditto.
1847 * testsuite/Makefile.in: Ditto.
1848
1849 2008-09-19 Jakub Jelinek <jakub@redhat.com>
1850 Andreas Tobler <a.tobler@schweiz.org>
1851
1852 * config/bsd/proc.c: New file.
1853 * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
1854 * configure.ac: Check for header <sys/sysctl.h>
1855 * configure: Regenerate.
1856 * config.h.in: Likewise.
1857
1858 2008-09-05 Janis Johnson <janis187@us.ibm.com>
1859
1860 * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
1861
1862 2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1863
1864 * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
1865 * Makefile.in: Regenerated.
1866 * testsuite/Makefile.in: Regenerated.
1867
1868 2008-08-21 Nathan Froyd <froydnj@codesourcery.com>
1869
1870 * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
1871 depend on blddir if blddir exists.
1872 (libgomp_target_compile): Likewise.
1873 * testsuite/libgomp.c++/c++.exp: Likewise.
1874 * testsuite/libgomp.fortran/fortran.exp: Likewise.
1875
1876 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1877
1878 * libgomp.texi: Update to GFDL 1.2. Update copyright years.
1879 Do not list GPL as Invariant Section.
1880
1881 2008-07-28 Ilie Garbacea <ilie@mips.com>
1882 Chao-ying Fu <fu@mips.com>
1883
1884 * configure.tgt: Enable futex for MIPS.
1885 * config/linux/mips/futex.h: New file.
1886
1887 2008-07-16 Jakub Jelinek <jakub@redhat.com>
1888
1889 * team.c (gomp_team_end): Free team immediately if it has
1890 just one thread.
1891
1892 2008-07-08 David Edelsohn <edelsohn@gnu.org>
1893
1894 * testsuite/libgomp.c++/c++.exp: Append multilib library path.
1895 * testsuite/libgomp.fortran/fortran.exp: Same.
1896 * testsuite/libgomp.c/c.exp: Same.
1897 * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
1898 directory to library path first.
1899
1900 2008-06-29 Krister Walfridsson <krister.walfridsson@gmail.com>
1901
1902 * env.c (parse_stacksize): Add cast to avoid warning.
1903 (parse_spincount): Likewise.
1904
1905 2008-06-27 Jakub Jelinek <jakub@redhat.com>
1906
1907 * testsuite/libgomp.c/loop-10.c: New test.
1908 * libgomp.c/loop-3.c (main): Add lastprivate clause.
1909 * libgomp.c++/loop-6.C (main): Likewise.
1910
1911 PR debug/36617
1912 * testsuite/libgomp.c/debug-1.c: New test.
1913
1914 2008-06-19 Jakub Jelinek <jakub@redhat.com>
1915
1916 * testsuite/libgomp.c/nqueens-1.c: New test.
1917
1918 PR c++/36523
1919 * testsuite/libgomp.c++/task-7.C: New function.
1920
1921 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1922
1923 * configure: Regenerate.
1924
1925 2008-06-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1926
1927 * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
1928 mutex when HAVE_SYNC_BUILTINS isn't defined.
1929
1930 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1931
1932 * libgomp.texi (omp_test_lock): Fix typo.
1933
1934 2008-06-12 Tobias Burnus <burnus@net-b.de>
1935
1936 * omp_lib.f90.in: Add "implicit none".
1937
1938 2008-06-12 Jakub Jelinek <jakub@redhat.com>
1939
1940 PR middle-end/36506
1941 * testsuite/libgomp.c/reduction-5.c: New test.
1942
1943 2008-06-11 Jakub Jelinek <jakub@redhat.com>
1944
1945 * libgomp.h (struct gomp_task): Add in_tied_task field.
1946 * task.c (gomp_init_task): Initialize it.
1947 (GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending
1948 unconditionally. Don't call gomp_team_barrier_wake if
1949 current task is implicit or if(0) from implicit and number of
1950 running tasks is equal to nthreads - 1.
1951
1952 PR libgomp/36471
1953 * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
1954 omp_get_team_size_8): Fix pastos.
1955
1956 PR libgomp/36469
1957 * configure.ac: Add AC_CHECK_FUNCS (strtoull).
1958 * configure: Regenerated.
1959 * config.h.in: Regenerated.
1960 * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
1961 defined.
1962
1963 2008-06-06 Andreas Tobler <a.tobler@schweiz.org>
1964
1965 PR bootstrap/36452
1966 * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
1967 (GOMP_loop_ull_dynamic_start): Likewise.
1968 (GOMP_loop_ull_guided_start): Likewise.
1969 (GOMP_loop_ull_ordered_static_start): Likewise.
1970 (GOMP_loop_ull_ordered_dynamic_start): Likewise.
1971 (GOMP_loop_ull_ordered_guided_start): Likewise.
1972
1973 2008-06-06 Jakub Jelinek <jakub@redhat.com>
1974 Richard Henderson <rth@redhat.com>
1975 Ulrich Drepper <drepper@redhat.com>
1976 Jakob Blomer <jakob.blomer@ira.uka.de>
1977
1978 * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
1979 Substitute also OMP_*LOCK_25*.
1980 * configure: Regenerated.
1981 * config.h.in: Regenerated.
1982 * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
1983 ptrlock.c and task.c.
1984 * Makefile.in: Regenerated.
1985 * testsuite/Makefile.in: Regenerated.
1986 * task.c: New file.
1987 * loop_ull.c: New file.
1988 * iter_ull.c: New file.
1989 * libgomp.h: Include ptrlock.h.
1990 (enum gomp_task_kind): New type.
1991 (struct gomp_team): Add task_lock, task_queue, task_count,
1992 task_running_count, single_count fields. Add
1993 work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
1994 Remove work_share_lock, generation_mask,
1995 oldest_live_gen, num_live_gen and init_work_shares fields, add
1996 work work_share_list_alloc, work_share_list_free and work_share_chunk
1997 fields. Change work_shares from pointer to pointers into an array.
1998 Change ordered_release field into gomp_sem_t ** from flexible array
1999 member. Add implicit_task and initial_work_shares fields.
2000 Move close to the end of the struct.
2001 (struct gomp_team_state): Add single_count, last_work_share,
2002 active_level and level fields, remove work_share_generation.
2003 (gomp_barrier_handle_tasks): New prototype.
2004 (gomp_finish_task): New inline function.
2005 (struct gomp_work_share): Move chunk_size, end, incr into
2006 transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
2007 next_ll fields. Reshuffle fields. Add next_alloc,
2008 next_ws, next_free and inline_ordered_team_ids fields, change
2009 ordered_team_ids into pointer from flexible array member.
2010 Add mode field. Put lock and next into a different cache line
2011 from most of the write-once fields.
2012 (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
2013 gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
2014 gomp_iter_ull_guided_next): New prototypes.
2015 (gomp_new_icv): New prototype.
2016 (struct gomp_thread): Add thread_pool and task fields.
2017 (struct gomp_thread_pool): New type.
2018 (gomp_new_team): New prototype.
2019 (gomp_team_start): Change type of last argument.
2020 (gomp_new_work_share): Removed.
2021 (gomp_init_work_share, gomp_fini_work_share): New prototypes.
2022 (gomp_work_share_init_done): New static inline.
2023 (gomp_throttled_spin_count_var, gomp_available_cpus,
2024 gomp_managed_threads): New extern decls.
2025 (gomp_init_task): New prototype.
2026 (gomp_spin_count_var): New extern var decl.
2027 (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
2028 or no alias support, or if not PIC.
2029 (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
2030 gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
2031 gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
2032 gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
2033 gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
2034 gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
2035 gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
2036 gomp_test_nest_lock_25): New prototypes.
2037 (omp_lock_symver, strong_alias): Define.
2038 (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
2039 decls.
2040 (gomp_end_task): New.
2041 (struct gomp_task_icv, gomp_global_icv): New.
2042 (gomp_thread_limit_var, gomp_max_active_levels_var): New.
2043 (struct gomp_task): New.
2044 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2045 gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2046 (gomp_icv): New.
2047 (gomp_schedule_type): Reorder enum to match
2048 omp_sched_t.
2049 * team.c (struct gomp_thread_start_data): Add thread_pool and task
2050 fields.
2051 (gomp_thread_start): Add gomp_team_barrier_wait call.
2052 For non-nested case remove clearing of docked thread thr fields.
2053 Use pool fields instead of global gomp_* variables. Use
2054 gomp_barrier_wait_last when needed. Initialize ts.active_level.
2055 Create tasks for each member thread.
2056 (free_team): Only destroy team barrier, task_lock here and free it.
2057 (gomp_free_thread): Free last_team if non-NULL.
2058 (gomp_team_end): Call gomp_team_barrier_wait instead of
2059 gomp_barrier_wait. For nested case call one extra
2060 gomp_barrier_wait. Move here some destruction from free_team.
2061 Call free_team on pool->last_team if any, rather than freeing
2062 current team. Destroy work_share_list_free_lock ifndef
2063 HAVE_SYNC_BUILTINS.
2064 (gomp_new_icv): New function.
2065 (gomp_threads, gomp_threads_size, gomp_threads_used,
2066 gomp_threads_dock): Removed.
2067 (gomp_thread_destructor): New variable.
2068 (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
2069 functions.
2070 (gomp_team_start): Create new pool if current thread doesn't have
2071 one. Use pool fields instead of global gomp_* variables.
2072 Initialize thread_pool field for new threads. Clear single_count.
2073 Change last argument from ws to team, don't create
2074 new team, set ts.work_share to &team->work_shares[0] and clear
2075 ts.last_work_share. Don't clear ts.work_share_generation.
2076 If number of threads changed, adjust atomically gomp_managed_threads.
2077 Use gomp_init_task instead of gomp_new_task,
2078 set thr->task to the corresponding implicit_task array entry.
2079 Create tasks for each member thread. Initialize ts.level.
2080 (initialize_team): Call pthread_key_create on
2081 gomp_thread_destructor.
2082 (team_destructor): New function.
2083 (new_team): Removed.
2084 (gomp_new_team): New function.
2085 (free_team): Free gomp_work_share blocks chained through next_alloc,
2086 instead of freeing work_shares and destroying work_share_lock.
2087 (gomp_team_end): Call gomp_fini_work_share. If number of threads
2088 changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
2089 * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
2090 of gomp_barrier_wait.
2091 * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
2092 instead of gomp_barrier_wait. Call gomp_work_share_init_done
2093 if gomp_work_share_start returned true. Don't unlock ws->lock.
2094 (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
2095 of gomp_barrier_wait.
2096 (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
2097 gomp_work_share_init_done if gomp_work_share_start returned true.
2098 Don't unlock ws->lock.
2099 * work.c: Include stddef.h.
2100 (free_work_share): Use work_share_list_free_lock instead
2101 of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
2102 Call gomp_fini_work_share and then either free ws if orphaned, or
2103 put it into work_share_list_free list of the current team.
2104 (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2105 functions.
2106 (gomp_work_share_start, gomp_work_share_end,
2107 gomp_work_share_end_nowait): Rewritten.
2108 * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2109 (openmp_version): Set to 200805.
2110 (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2111 omp_sched_guided, omp_sched_auto): New parameters.
2112 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2113 omp_set_max_active_levels, omp_get_max_active_levels,
2114 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2115 omp_get_active_level): New interfaces.
2116 * omp_lib.h.in (openmp_version): Set to 200805.
2117 (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2118 omp_sched_guided, omp_sched_auto): New parameters.
2119 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2120 omp_set_max_active_levels, omp_get_max_active_levels,
2121 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2122 omp_get_active_level): New externals.
2123 * loop.c: Include limits.h.
2124 (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2125 GFS_AUTO.
2126 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2127 Likewise. Use gomp_icv.
2128 (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2129 ts.static_trip here.
2130 (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2131 gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
2132 (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2133 gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
2134 don't unlock ws->lock, otherwise lock it.
2135 (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2136 gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
2137 (gomp_parallel_loop_start): Call gomp_new_team instead of
2138 gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
2139 Adjust gomp_team_start caller. Pass 0 as second argument to
2140 gomp_resolve_num_threads.
2141 (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2142 If adding ws->chunk_size nthreads + 1 times after end won't
2143 overflow, set ws->mode to 1.
2144 * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2145 GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2146 GOMP_loop_ull_ordered_static_start,
2147 GOMP_loop_ull_ordered_dynamic_start,
2148 GOMP_loop_ull_ordered_guided_start,
2149 GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2150 GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2151 GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2152 GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2153 GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2154 prototypes.
2155 * libgomp.map: Export lock routines also @@OMP_2.0.
2156 (GOMP_loop_ordered_dynamic_first,
2157 GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2158 GOMP_loop_ordered_static_first): Remove.
2159 (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2160 GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2161 GOMP_loop_ull_ordered_dynamic_next,
2162 GOMP_loop_ull_ordered_dynamic_start,
2163 GOMP_loop_ull_ordered_guided_next,
2164 GOMP_loop_ull_ordered_guided_start,
2165 GOMP_loop_ull_ordered_runtime_next,
2166 GOMP_loop_ull_ordered_runtime_start,
2167 GOMP_loop_ull_ordered_static_next,
2168 GOMP_loop_ull_ordered_static_start,
2169 GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2170 GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2171 GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2172 (omp_set_schedule, omp_get_schedule,
2173 omp_get_thread_limit, omp_set_max_active_levels,
2174 omp_get_max_active_levels, omp_get_level,
2175 omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2176 omp_set_schedule_, omp_set_schedule_8_,
2177 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2178 omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2179 omp_get_max_active_levels_, omp_get_level_,
2180 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2181 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2182 New exports @@OMP_3.0.
2183 * omp.h.in (omp_sched_t): New type.
2184 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2185 omp_set_max_active_levels, omp_get_max_active_levels,
2186 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2187 omp_get_active_level): New prototypes.
2188 * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2189 gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2190 gomp_thread_limit_var, gomp_remaining_threads_count,
2191 gomp_remaining_threads_lock): New variables.
2192 (parse_spincount): New function.
2193 (initialize_env): Call gomp_init_num_threads unconditionally.
2194 Initialize gomp_available_cpus. Call parse_spincount,
2195 initialize gomp_{,throttled_}spin_count_var
2196 depending on presence and value of OMP_WAIT_POLICY and
2197 GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
2198 Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2199 OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
2200 for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
2201 gomp_remaining_threads_lock if needed. Use gomp_global_icv.
2202 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2203 gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2204 (gomp_global_icv): New.
2205 (parse_schedule): Use it. Parse "auto".
2206 (omp_set_num_threads): Use gomp_icv.
2207 (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2208 Likewise.
2209 (omp_get_max_threads): Move from parallel.c.
2210 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2211 omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2212 add ialias.
2213 (parse_stacksize, parse_wait_policy): New functions.
2214 * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2215 both wrappers for compatibility and new locks.
2216 (omp_set_schedule, omp_get_schedule,
2217 omp_get_thread_limit, omp_set_max_active_levels,
2218 omp_get_max_active_levels, omp_get_level,
2219 omp_get_ancestor_thread_num, omp_get_team_size,
2220 omp_get_active_level): New ialias_redirect.
2221 (omp_set_schedule_, omp_set_schedule_8_,
2222 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2223 omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2224 omp_get_max_active_levels_, omp_get_level_,
2225 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2226 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2227 New functions.
2228 * parallel.c: Include limits.h.
2229 (gomp_resolve_num_threads): Add count argument. Rewritten.
2230 (GOMP_parallel_start): Call gomp_new_team and pass that as last
2231 argument to gomp_team_start. Pass 0 as second argument to
2232 gomp_resolve_num_threads.
2233 (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2234 if gomp_thread_limit_var != ULONG_MAX.
2235 (omp_in_parallel): Implement using ts.active_level.
2236 (omp_get_max_threads): Move to env.c.
2237 (omp_get_level, omp_get_ancestor_thread_num,
2238 omp_get_team_size, omp_get_active_level): New functions,
2239 add ialias.
2240 * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2241 after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
2242 gomp_iter_dynamic_next instead of the _locked variant and don't take
2243 lock around it, otherwise acquire it before calling
2244 gomp_iter_dynamic_next_locked.
2245 (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2246 gomp_iter_dynamic_next instead of the _locked variant and don't take
2247 lock around it.
2248 (GOMP_parallel_sections_start): Call gomp_new_team instead of
2249 gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
2250 Adjust gomp_team_start caller. Pass count as second argument to
2251 gomp_resolve_num_threads, don't adjust num_threads after the call.
2252 Use gomp_icv.
2253 * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2254 ws->chunk_size by incr.
2255 (gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
2256 code.
2257 * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2258 types.
2259 (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2260 (omp_check_defines): Check even the compat defines.
2261 * config/linux/ptrlock.c: New file.
2262 * config/linux/ptrlock.h: New file.
2263 * config/linux/wait.h: New file.
2264 * config/posix/ptrlock.c: New file.
2265 * config/posix/ptrlock.h: New file.
2266 * config/linux/bar.h (gomp_team_barrier_wait,
2267 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2268 (gomp_team_barrier_set_task_pending,
2269 gomp_team_barrier_clear_task_pending,
2270 gomp_team_barrier_set_waiting_for_tasks,
2271 gomp_team_barrier_waiting_for_tasks,
2272 gomp_team_barrier_done): New inlines.
2273 (gomp_barrier_t): Rewritten.
2274 (gomp_barrier_state_t): New typedef.
2275 (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2276 gomp_barrier_wait_start): Rewritten.
2277 (gomp_barrier_wait_end): Change second argument to
2278 gomp_barrier_state_t.
2279 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2280 inlines.
2281 * config/linux/bar.c: Include wait.h instead of libgomp.h and
2282 futex.h.
2283 (gomp_barrier_wait_end): Rewritten.
2284 (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2285 gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2286 * config/posix/bar.h (gomp_barrier_t): Add generation field.
2287 (gomp_barrier_state_t): New typedef.
2288 (gomp_team_barrier_wait,
2289 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2290 (gomp_barrier_wait_start): Or all but low 2 bits from generation
2291 into the return value. Return gomp_barrier_state_t.
2292 (gomp_team_barrier_set_task_pending,
2293 gomp_team_barrier_clear_task_pending,
2294 gomp_team_barrier_set_waiting_for_tasks,
2295 gomp_team_barrier_waiting_for_tasks,
2296 gomp_team_barrier_done): New inlines.
2297 (gomp_barrier_wait_end): Change second argument to
2298 gomp_barrier_state_t.
2299 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2300 inlines.
2301 * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2302 (gomp_barrier_wait_end): Change second argument to
2303 gomp_barrier_state_t.
2304 (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2305 gomp_team_barrier_wake): New functions.
2306 * config/linux/mutex.c: Include wait.h instead of libgomp.h and
2307 futex.h.
2308 (gomp_futex_wake, gomp_futex_wait): New variables.
2309 (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
2310 * config/linux/lock.c: Rewrite to make locks task owned,
2311 for backwards compatibility provide the old entrypoints
2312 if symbol versioning. Include wait.h instead of libgomp.h and
2313 futex.h.
2314 (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
2315 * config/posix95/lock.c: Rewrite to make locks task owned,
2316 for backwards compatibility provide the old entrypoints
2317 if symbol versioning.
2318 * config/posix/lock.c: Rewrite to make locks task owned,
2319 for backwards compatibility provide the old entrypoints
2320 if symbol versioning.
2321 * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
2322 (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
2323 * config/posix/proc.c, config/mingw32/proc.c: Similarly.
2324 * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2325 (sys_futex0): Return error code.
2326 (futex_wake, futex_wait): If ENOSYS was returned, clear
2327 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2328 (cpu_relax, atomic_write_barrier): New static inlines.
2329 * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2330 (futex_wake, futex_wait): If ENOSYS was returned, clear
2331 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2332 (cpu_relax, atomic_write_barrier): New static inlines.
2333 * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2334 (sys_futex0): Return error code.
2335 (futex_wake, futex_wait): If ENOSYS was returned, clear
2336 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2337 (cpu_relax, atomic_write_barrier): New static inlines.
2338 * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2339 (sys_futex0): Return error code.
2340 (futex_wake, futex_wait): If ENOSYS was returned, clear
2341 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2342 (cpu_relax, atomic_write_barrier): New static inlines.
2343 * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2344 (sys_futex0): Return error code.
2345 (futex_wake, futex_wait): If ENOSYS was returned, clear
2346 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2347 (cpu_relax, atomic_write_barrier): New static inlines.
2348 * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2349 (sys_futex0): Return error code.
2350 (futex_wake, futex_wait): If ENOSYS was returned, clear
2351 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2352 (cpu_relax, atomic_write_barrier): New static inlines.
2353 * config/linux/sem.c: Include wait.h instead of libgomp.h and
2354 futex.h.
2355 (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
2356 * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
2357 * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
2358 types.
2359 (omp_nest_lock_t): Change owner into void *, add lock field.
2360 * config/posix95/omp-lock.h: Include semaphore.h.
2361 (omp_lock_25_t, omp_nest_lock_25_t): New types.
2362 (omp_lock_t): Use sem_t instead of mutex if semaphores
2363 aren't broken.
2364 (omp_nest_lock_t): Likewise. Change owner to void *.
2365 * config/posix/omp-lock.h: Include semaphore.h.
2366 (omp_lock_25_t, omp_nest_lock_25_t): New types.
2367 (omp_lock_t): Use sem_t instead of mutex if semaphores
2368 aren't broken.
2369 (omp_nest_lock_t): Likewise. Add owner field.
2370
2371 2008-06-06 Jakub Jelinek <jakub@redhat.com>
2372
2373 * testsuite/libgomp.c/collapse-1.c: New test.
2374 * testsuite/libgomp.c/collapse-2.c: New test.
2375 * testsuite/libgomp.c/collapse-3.c: New test.
2376 * testsuite/libgomp.c/icv-1.c: New test.
2377 * testsuite/libgomp.c/icv-2.c: New test.
2378 * testsuite/libgomp.c/lib-2.c: New test.
2379 * testsuite/libgomp.c/lock-1.c: New test.
2380 * testsuite/libgomp.c/lock-2.c: New test.
2381 * testsuite/libgomp.c/lock-3.c: New test.
2382 * testsuite/libgomp.c/loop-4.c: New test.
2383 * testsuite/libgomp.c/loop-5.c: New test.
2384 * testsuite/libgomp.c/loop-6.c: New test.
2385 * testsuite/libgomp.c/loop-7.c: New test.
2386 * testsuite/libgomp.c/loop-8.c: New test.
2387 * testsuite/libgomp.c/loop-9.c: New test.
2388 * testsuite/libgomp.c/nested-3.c: New test.
2389 * testsuite/libgomp.c/nestedfn-6.c: New test.
2390 * testsuite/libgomp.c/sort-1.c: New test.
2391 * testsuite/libgomp.c/task-1.c: New test.
2392 * testsuite/libgomp.c/task-2.c: New test.
2393 * testsuite/libgomp.c/task-3.c: New test.
2394 * testsuite/libgomp.c/task-4.c: New test.
2395 * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
2396 to C++ testsuite default compiler options.
2397 * testsuite/libgomp.c++/collapse-1.C: New test.
2398 * testsuite/libgomp.c++/collapse-2.C: New test.
2399 * testsuite/libgomp.c++/ctor-10.C: New test.
2400 * testsuite/libgomp.c++/for-1.C: New test.
2401 * testsuite/libgomp.c++/for-2.C: New test.
2402 * testsuite/libgomp.c++/for-3.C: New test.
2403 * testsuite/libgomp.c++/for-4.C: New test.
2404 * testsuite/libgomp.c++/for-5.C: New test.
2405 * testsuite/libgomp.c++/loop-8.C: New test.
2406 * testsuite/libgomp.c++/loop-9.C: New test.
2407 * testsuite/libgomp.c++/loop-10.C: New test.
2408 * testsuite/libgomp.c++/task-1.C: New test.
2409 * testsuite/libgomp.c++/task-2.C: New test.
2410 * testsuite/libgomp.c++/task-3.C: New test.
2411 * testsuite/libgomp.c++/task-4.C: New test.
2412 * testsuite/libgomp.c++/task-5.C: New test.
2413 * testsuite/libgomp.c++/task-6.C: New test.
2414 * testsuite/libgomp.fortran/allocatable1.f90: New test.
2415 * testsuite/libgomp.fortran/allocatable2.f90: New test.
2416 * testsuite/libgomp.fortran/allocatable3.f90: New test.
2417 * testsuite/libgomp.fortran/allocatable4.f90: New test.
2418 * testsuite/libgomp.fortran/collapse1.f90: New test.
2419 * testsuite/libgomp.fortran/collapse2.f90: New test.
2420 * testsuite/libgomp.fortran/collapse3.f90: New test.
2421 * testsuite/libgomp.fortran/collapse4.f90: New test.
2422 * testsuite/libgomp.fortran/lastprivate1.f90: New test.
2423 * testsuite/libgomp.fortran/lastprivate2.f90: New test.
2424 * testsuite/libgomp.fortran/lib4.f90: New test.
2425 * testsuite/libgomp.fortran/lock-1.f90: New test.
2426 * testsuite/libgomp.fortran/lock-2.f90: New test.
2427 * testsuite/libgomp.fortran/nested1.f90: New test.
2428 * testsuite/libgomp.fortran/nestedfn4.f90: New test.
2429 * testsuite/libgomp.fortran/strassen.f90: New test.
2430 * testsuite/libgomp.fortran/tabs1.f90: New test.
2431 * testsuite/libgomp.fortran/tabs2.f: New test.
2432 * testsuite/libgomp.fortran/task1.f90: New test.
2433 * testsuite/libgomp.fortran/task2.f90: New test.
2434 * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
2435 * testsuite/libgomp.fortran/vla5.f90: Likewise.
2436 * testsuite/libgomp.c/pr26943-2.c: Likewise.
2437 * testsuite/libgomp.c/pr26943-3.c: Likewise.
2438 * testsuite/libgomp.c/pr26943-4.c: Likewise.
2439
2440 2008-05-23 Jakub Jelinek <jakub@redhat.com>
2441
2442 PR c++/36308
2443 * testsuite/libgomp.c++/ctor-11.C: New test.
2444 * testsuite/libgomp.c++/ctor-12.C: New test.
2445
2446 2008-05-15 Janis Johnson <janis187@us.ibm.com>
2447
2448 * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
2449
2450 2008-05-07 Jakub Jelinek <jakub@redhat.com>
2451
2452 PR middle-end/36106
2453 * testsuite/libgomp.c/atomic-5.c: New test.
2454 * testsuite/libgomp.c/atomic-6.c: New test.
2455 * testsuite/libgomp.c/autopar-1.c: New test.
2456
2457 2008-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2458
2459 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
2460 (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
2461 (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
2462 (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
2463 * configure: Regenerate.
2464 * Makefile.in, testsuite/Makefile.in: Likewise.
2465
2466 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
2467
2468 PR bootstrap/35457
2469 * aclocal.m4: Regenerate.
2470 * configure: Regenerate.
2471
2472 2008-03-18 Jakub Jelinek <jakub@redhat.com>
2473
2474 PR middle-end/35611
2475 * testsuite/libgomp.c/atomic-4.c: New test.
2476
2477 PR libgomp/35625
2478 * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
2479 (gomp_iter_guided_next): Likewise.
2480 * testsuite/libgomp.c/pr35625.c: New test.
2481
2482 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2483
2484 * aclocal.m4: Regenerate.
2485 * configure: Likewise.
2486 * Makefile.in: Likewise.
2487 * testsuite/Makefile.in: Likewise.
2488
2489 2008-03-13 Jakub Jelinek <jakub@redhat.com>
2490
2491 PR middle-end/35185
2492 * testsuite/libgomp.c++/pr35185.C: New test.
2493
2494 2008-03-12 Jakub Jelinek <jakub@redhat.com>
2495
2496 PR middle-end/35549
2497 * testsuite/libgomp.c/pr35549.c: New test.
2498
2499 2008-03-06 Jakub Jelinek <jakub@redhat.com>
2500
2501 * testsuite/libgomp.c/atomic-3.c: New test.
2502
2503 2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2504
2505 PR fortran/33197
2506 * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2507 .F08 file suffixes.
2508
2509 2008-03-03 Peter O'Gorman <pogma@thewrittenword.com>
2510
2511 PR libgomp/33131
2512 * configure.ac: Add ACX_HEADER_STRING.
2513 * env.c: Include strings.h.
2514 * aclocal.m4: Regenerate.
2515 * config.h.in: Regenerate.
2516 * configure: Regenerate.
2517 * Makefile.in: Regenerate.
2518 * testsuite/Makefile.in: Regenerate.
2519
2520 2008-02-15 Jakub Jelinek <jakub@redhat.com>
2521
2522 PR middle-end/35196
2523 * testsuite/libgomp.c/pr35196.c: New test.
2524
2525 PR middle-end/35130
2526 * testsuite/libgomp.fortran/pr35130.f90: New test.
2527 * testsuite/libgomp.c/pr35130.c: New test.
2528
2529 2008-01-25 Jakub Jelinek <jakub@redhat.com>
2530
2531 PR middle-end/33880
2532 * testsuite/libgomp.c/pr33880.c: New test.
2533 * testsuite/libgomp.fortran/pr33880.f90: New test.
2534
2535 2008-01-24 David Edelsohn <edelsohn@gnu.org>
2536
2537 * configure: Regenerate.
2538
2539 2008-01-08 Jakub Jelinek <jakub@redhat.com>
2540
2541 * configure.ac: Move futex checking into ../config/futex.m4.
2542 * configure: Rebuilt.
2543 * aclocal.m4: Rebuilt.
2544 * Makefile.in: Rebuilt.
2545
2546 * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
2547 2007-10-15 ../config/tls.m4 change.
2548
2549 2007-12-19 Jakub Jelinek <jakub@redhat.com>
2550
2551 PR c++/34513
2552 * testsuite/libgomp.c/pr34513.c: New test.
2553 * testsuite/libgomp.c++/pr34513.C: New test.
2554
2555 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
2556
2557 PR target/32765
2558 * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
2559
2560 2007-12-04 Jakub Jelinek <jakub@redhat.com>
2561
2562 * omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes.
2563
2564 2007-12-03 Jakub Jelinek <jakub@redhat.com>
2565
2566 * testsuite/libgomp.c/private-1.c: New test.
2567
2568 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
2569 Paolo Bonzini <bonzini@gnu.org>
2570
2571 * Makefile.am: Use space as vpath separator. Use 'vpath %'
2572 instead of 'VPATH ='.
2573 * Makefile.in: Regenerate.
2574
2575 2007-11-23 Matthias Klose <doko@ubuntu.com>
2576
2577 * configure.ac: Adjust makeinfo version check.
2578 * configure: Regenerate.
2579
2580 2007-11-10 Jakub Jelinek <jakub@redhat.com>
2581
2582 PR fortran/34020
2583 * testsuite/libgomp.fortran/pr34020.f90: New test.
2584
2585 2007-11-06 Jakub Jelinek <jakub@redhat.com>
2586
2587 PR c++/33894
2588 * testsuite/libgomp.c++/atomic-1.C: New test.
2589
2590 2007-10-25 Jakub Jelinek <jakub@redhat.com>
2591
2592 PR libgomp/33275
2593 * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
2594 Make x and y integers rather than (implicit) reals. Add private (j)
2595 clause to the last omp parallel.
2596
2597 2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
2598
2599 * configure: Regenerate following changes to ../config/tls.m4.
2600
2601 2007-09-28 Jakub Jelinek <jakub@redhat.com>
2602
2603 * testsuite/libgomp.fortran/stack.f90: New test.
2604
2605 2007-09-10 Danny Smith <dannysmith@users.sourceforge.net>
2606
2607 * config/mingw32/proc.c: New file.
2608
2609 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
2610
2611 * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
2612 (main): Use __get_cpuid to get i386 target fetaures.
2613 * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
2614 (main): Use __get_cpuid to get x86_64 target fetaures.
2615
2616 2007-08-15 Jack Howarth <howarth@bromo.med.uc.edu>
2617
2618 PR target/32765
2619 * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
2620 * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
2621
2622 2007-07-12 Jakub Jelinek <jakub@redhat.com>
2623
2624 PR fortran/32550
2625 * testsuite/libgomp.fortran/pr32550.f90: New test.
2626 * testsuite/libgomp.fortran/crayptr2.f90: New test.
2627
2628 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2629
2630 * aclocal.m4: Regenerated.
2631
2632 2007-07-05 Tobias Burnus <burnus@net-b.de>
2633
2634 PR fortran/32359
2635 * testsuite/libgomp.fortran/pr32359.f90: New.
2636
2637 2007-07-02 Jakub Jelinek <jakub@redhat.com>
2638
2639 PR libgomp/32468
2640 * sections.c (GOMP_parallel_sections_start): Only decrease
2641 number of threads to COUNT if dyn_var is true.
2642 * testsuite/libgomp.c/pr32468.c: New test.
2643
2644 2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2645
2646 PR libgomp/26308
2647 * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
2648
2649 2007-06-21 Jakub Jelinek <jakub@redhat.com>
2650
2651 PR middle-end/32362
2652 * testsuite/libgomp.c/pr32362-1.c: New test.
2653 * testsuite/libgomp.c/pr32362-2.c: New test.
2654 * testsuite/libgomp.c/pr32362-3.c: New test.
2655
2656 2007-06-07 Jakub Jelinek <jakub@redhat.com>
2657
2658 * team.c (gomp_team_start): Fix setting up thread_attr
2659 stack size.
2660
2661 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
2662
2663 * configure: Regenerate.
2664
2665 2007-05-23 Steve Ellcey <sje@cup.hp.com>
2666
2667 * Makefile.in: Regenerate.
2668 * configure: Regenerate.
2669 * aclocal.m4: Regenerate.
2670 * testsuite/Makefile.in: Regenerate.
2671
2672 2007-05-04 Jakub Jelinek <jakub@redhat.com>
2673
2674 * config/linux/proc.c: New file.
2675
2676 PR libgomp/28482
2677 * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
2678
2679 2007-04-19 Daniel Franke <franke.daniel@gmail.com>
2680
2681 * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
2682
2683 2007-04-16 Matthias Klose <doko@debian.org>
2684
2685 * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
2686 flags if not building with -m64.
2687 * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
2688 flag for i?86-*-* targets, if current target matches -m64.
2689
2690 2007-04-14 Steve Ellcey <sje@cup.hp.com>
2691
2692 * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
2693 * Makefile.in: Regenerate.
2694
2695 2007-04-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2696
2697 PR testsuite/31369
2698 * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
2699 ld_library_path.
2700 * testsuite/libgomp.fortran/fortran.exp: Likewise.
2701
2702 2007-04-04 Jakub Jelinek <jakub@redhat.com>
2703
2704 * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
2705 decls.
2706 (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
2707 * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
2708 (parse_affinity): New function.
2709 (initialize_env): Call it and gomp_init_affinity.
2710 * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
2711 create new pthread_attr_t and call gomp_init_thread_affinity
2712 on it for each thread before passing the attribute to pthread_create.
2713 * config/linux/affinity.c: New file.
2714 * config/posix/affinity.c: New file.
2715 * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
2716 * configure: Rebuilt.
2717 * config.h.in: Rebuilt.
2718 * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
2719 * Makefile.in: Rebuilt.
2720
2721 2007-03-23 Andreas Tobler <a.tobler@schweiz.org>
2722
2723 * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
2724 *-*-darwin*.
2725 * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
2726 and use it if found.
2727
2728 2007-03-18 Uros Bizjak <ubizjak@gmail.com>
2729
2730 * testsuite/config/default.exp: New file.
2731 * testsuite/lib/libgomp.exp: New file.
2732 * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
2733 libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
2734 load_lib *, load_gcc_lib *): Move to libgomp.exp.
2735 (libgomp_load): Remove.
2736 * testsuite/lib/libgomp.exp (libgomp_init): Compute
2737 always_ld_library_path, not ld_library_path. Set additional_flags
2738 to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
2739 (target_compile): Do not call libgomp_init. Append lang_library_path
2740 and lang_link_flags to options.
2741 * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set
2742 ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH
2743 here.
2744 * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
2745 always_ld_library_path. Set LD_LIBRARY_PATH here.
2746 * testsuite/libgomp.fortran/fortran.exp: Ditto.
2747 * testsuite/libgomp.c/atomic-1.c: Set dg-options to
2748 "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
2749 CX8 flag.
2750 * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
2751 lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
2752 * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
2753 * testsuite/libgomp.c/pr29947-1.c: Ditto.
2754 * testsuite/libgomp.c/atomic-10.c: Ditto.
2755
2756 2007-03-21 Jakub Jelinek <jakub@redhat.com>
2757
2758 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
2759 dg-final cleanup-modules line.
2760 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
2761 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
2762 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
2763 * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
2764 * testsuite/libgomp.fortran/reduction5.f90: Likewise.
2765 * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
2766 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
2767
2768 2007-03-18 Andreas Schwab <schwab@suse.de>
2769
2770 * acinclude.m4: Adjust regular expression for ld version
2771 extraction.
2772 * configure: Regenerate.
2773
2774 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2775
2776 * Makefile.am: Add install-pdf target as copied from
2777 automake v1.10 rules.
2778 * Makefile.in: Regenerate
2779
2780 2007-02-07 Jakub Jelinek <jakub@redhat.com>
2781
2782 PR libgomp/28486
2783 * configure: Regenerate.
2784
2785 PR c++/30703
2786 * testsuite/libgomp.c++/pr30703.C: New test.
2787
2788 2007-02-02 Jakub Jelinek <jakub@redhat.com>
2789
2790 Revert:
2791 2006-07-05 Eric Christopher <echristo@apple.com>
2792 * configure.ac: Depend addition of -pthread on host OS.
2793 * configure: Regenerate.
2794
2795 2007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2796
2797 * libgomp.texi: Fix spacing after abbreviations.
2798
2799 2007-01-31 Daniel Franke <franke.daniel@gmail.com>
2800
2801 PR libgomp/30546
2802 * configure.ac: Add check for makeinfo
2803 * Makefile.am: Redefined target libgomp.info, build libgomp.info only
2804 if an appropiate version of makeinfo is found.
2805 * aclocal.m4: Regenerated.
2806 * configure: Regenerated.
2807 * Makefile.in: Regenerated.
2808 * testsuite/Makefile.in: Regenerated.
2809
2810 2007-01-29 Daniel Franke <franke.daniel@gmail.com>
2811
2812 PR libgomp/30540
2813 * libgomp.texi: More about implementation-dependent settings.
2814
2815 2007-01-26 Tobias Burnus <burnus@net-b.de>
2816
2817 * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
2818
2819 2007-01-24 Jakub Jelinek <jakub@redhat.com>
2820
2821 PR middle-end/30494
2822 * testsuite/libgomp.c/pr30494.c: New test.
2823
2824 2007-01-15 Tom Tromey <tromey@redhat.com>
2825
2826 * configure: Rebuilt.
2827 * configure.ac: Fixed comment.
2828
2829 2007-01-14 Daniel Franke <franke.daniel@gmail.com>
2830
2831 * libgomp.texi: Document implementation specific default values of
2832 environment variables.
2833
2834 2006-12-21 Daniel Franke <franke.daniel@gmail.com>
2835
2836 PR libgomp/28209
2837 * libgomp.texi: New file.
2838 * configure.ac: Add --enable-generated-files-in-srcdir option.
2839 * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
2840 files to srcdir.
2841 * Makefile.in: Regenerated.
2842 * config.h.in: Regenerated.
2843 * testsuite/Makefile.in: Regenerated.
2844 * NOTES: Removed.
2845
2846 2006-12-04 Daniel Franke <franke.daniel@gmail.com>
2847
2848 PR libgomp/29949
2849 * env.c (omp_set_num_threads): Set illegal thread count to 1.
2850
2851 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2852
2853 * configure: Regenerate.
2854
2855 2006-12-04 Jakub Jelinek <jakub@redhat.com>
2856
2857 PR libgomp/29947
2858 * loop.c (gomp_loop_init): Make parameters signed. Set ws->end to
2859 start if there shouldn't be any loop iterations.
2860 (gomp_loop_ordered_static_start): Remove start == end test.
2861 * testsuite/libgomp.c/pr29947-1.c: New test.
2862 * testsuite/libgomp.c/pr29947-2.c: New test.
2863
2864 2006-12-02 Eric Botcazou <ebotcazou@libertysurf.fr>
2865
2866 * configure.tgt: Force initial-exec TLS model on Linux only.
2867
2868 2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
2869
2870 * configure: Regenerated.
2871
2872 2006-11-09 Uros Bizjak <ubizjak@gmail.com>
2873
2874 * env.c (parse_schedule): Reject out of range values.
2875 (parse_unsigned_long): Reject out of range, negative or zero values.
2876
2877 2006-10-29 Jakub Jelinek <jakub@redhat.com>
2878
2879 PR fortran/29629
2880 * testsuite/libgomp.fortran/pr29629.f90: New test.
2881
2882 2006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr>
2883
2884 PR libgomp/29494
2885 * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
2886 * config/posix95: New directory.
2887 * config/posix95/omp-lock.h: New file.
2888 * config/posix95/lock.c: Likewise.
2889
2890 2006-10-14 Geoffrey Keating <geoffk@apple.com>
2891
2892 * aclocal.m4: Regenerate.
2893 * configure: Regenerate.
2894
2895 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
2896
2897 * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
2898 '<' to '<='.
2899
2900 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
2901
2902 * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
2903 test.
2904 * configure: Regenerate.
2905 * fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
2906
2907 2006-09-26 Jakub Jelinek <jakub@redhat.com>
2908
2909 PR middle-end/25261
2910 PR middle-end/28790
2911 * testsuite/libgomp.c/nestedfn-4.c: New test.
2912 * testsuite/libgomp.c/nestedfn-5.c: New test.
2913 * testsuite/libgomp.fortran/nestedfn3.f90: New test.
2914
2915 PR fortran/29097
2916 * testsuite/libgomp.fortran/condinc1.f: New test.
2917 * testsuite/libgomp.fortran/condinc2.f: New test.
2918 * testsuite/libgomp.fortran/condinc3.f90: New test.
2919 * testsuite/libgomp.fortran/condinc4.f90: New test.
2920 * testsuite/libgomp.fortran/condinc1.inc: New file.
2921
2922 2006-09-18 Tom Tromey <tromey@redhat.com>
2923
2924 * configure: Rebuilt.
2925
2926 2006-09-13 Joseph S. Myers <joseph@codesourcery.com>
2927
2928 PR c/28768
2929 PR preprocessor/14634
2930 * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
2931 to AC_DEFINE.
2932 * configure: Regenerate.
2933
2934 2006-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
2935
2936 * testsuite/libgomp.fortran/reduction3.f90: Change
2937 -2147483648 to -huge(i)-1 to avoid overflow.
2938 * testsuite/libgomp.fortran/reduction4.f90: Change
2939 Z'ffffffff' to not(0) to avoid overflow.
2940
2941 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
2942
2943 PR libgomp/25938
2944 * Makefile.am (libsubincludedir): New.
2945 (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
2946 * Makefile.in: Regenerate.
2947
2948 2006-08-17 Jakub Jelinek <jakub@redhat.com>
2949
2950 PR libgomp/28725
2951 * env.c: Include ctype.h.
2952 (parse_schedule, parse_unsigned_long, parse_boolean): Allow
2953 leading and/or trailing whitespace and compare strings case
2954 insensitively.
2955
2956 2006-07-16 Jakub Jelinek <jakub@redhat.com>
2957
2958 PR fortran/28390
2959 * testsuite/libgomp.fortran/pr28390.f: New test.
2960
2961 2006-07-05 Eric Christopher <echristo@apple.com>
2962
2963 * configure.ac: Depend addition of -pthread on host OS.
2964 * configure: Regenerate.
2965
2966 2006-06-21 Jakub Jelinek <jakub@redhat.com>
2967
2968 * critical.c (GOMP_critical_name_start): Fix *pptr initialization
2969 when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
2970 defined.
2971
2972 2006-06-20 Jakub Jelinek <jakub@redhat.com>
2973
2974 PR libgomp/26175
2975 PR libgomp/26477
2976 * configure.ac: If neither --enable-linux-futex nor
2977 --disable-linux-futex is passed, determine the default by checking
2978 for compiling and/or running against NPTL. With --enable-linux-futex,
2979 check if SYS_gettid and SYS_futex are defined.
2980 * configure: Rebuilt.
2981
2982 2006-06-14 Richard Henderson <rth@redhat.com>
2983
2984 PR libgomp/28008
2985 * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
2986 undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
2987
2988 2006-06-09 Richard Henderson <rth@redhat.com>
2989
2990 * env.c (gomp_nthreads_var): Change to unsigned long.
2991 (gomp_run_sched_chunk): Likewise.
2992 (parse_unsigned_long): Rename from parse_num_threads and generalize.
2993 (initialize_env): Initialize gomp_thread_attr.
2994 * libgomp.h (gomp_nthreads_var): Update decl.
2995 (gomp_run_sched_chunk): Likewise.
2996 (gomp_thread_attr): Declare.
2997 * team.c (gomp_thread_attr): Export.
2998 (initialize_team): Don't initialize it.
2999
3000 2006-06-09 Jakub Jelinek <jakub@redhat.com>
3001
3002 PR fortran/27916
3003 * testsuite/libgomp.fortran/pr27916-1.f90: New test.
3004 * testsuite/libgomp.fortran/pr27916-2.f90: New test.
3005
3006 2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
3007
3008 * config/mingw32/time.c: New file.
3009 * configure.tgt: Use it.
3010
3011 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3012
3013 * Makefile.am: Add install-html target. Add install-html to .PHONY
3014 * Makefile.in: Regenerate.
3015
3016 2006-05-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3017
3018 PR libgomp/27612
3019 * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
3020 * testsuite/libgomp.c/critical-1.c: Likewise.
3021 * testsuite/libgomp.c/loop-1.c: Likewise.
3022 * testsuite/libgomp.c/loop-2.c: Likewise.
3023 * testsuite/libgomp.c/single-1.c: Likewise.
3024 * testsuite/libgomp.c/ordered-1.c: Likewise.
3025 * testsuite/libgomp.c/ordered-2.c: Likewise.
3026
3027 2006-05-15 Jakub Jelinek <jakub@redhat.com>
3028
3029 PR middle-end/27416
3030 * libgomp.fortran/pr27416-1.f90: New test.
3031
3032 2006-05-03 Jakub Jelinek <jakub@redhat.com>
3033
3034 PR fortran/27395
3035 * testsuite/libgomp.fortran/pr27395-1.f90: New test.
3036 * testsuite/libgomp.fortran/pr27395-2.f90: New test.
3037
3038 2006-05-02 Jakub Jelinek <jakub@redhat.com>
3039
3040 PR c++/26943
3041 * testsuite/libgomp.c/pr26943-1.c: New test.
3042 * testsuite/libgomp.c/pr26943-2.c: New test.
3043 * testsuite/libgomp.c/pr26943-3.c: New test.
3044 * testsuite/libgomp.c/pr26943-4.c: New test.
3045 * testsuite/libgomp.c++/pr27337.C: Remove barrier.
3046 * testsuite/libgomp.c++/pr26943.C: New test.
3047
3048 2006-05-02 Jakub Jelinek <jakub@redhat.com>
3049
3050 PR middle-end/27337
3051 * testsuite/libgomp.c++/pr27337.C: New test.
3052
3053 2006-04-26 Jakub Jelinek <jakub@redhat.com>
3054
3055 PR c/26171
3056 * testsuite/libgomp.c/pr26171.c: New test.
3057
3058 2006-04-25 Richard Henderson <rth@redhat.com>
3059
3060 PR libgomp/25865
3061 * configure.ac: Use GCC_CHECK_TLS.
3062 * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
3063 * Makefile.in, aclocal.m4, configure: Regenerate.
3064
3065 2006-04-10 Matthias Klose <doko@debian.org>
3066
3067 * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
3068 directory names containing underscores.
3069
3070 2006-03-21 Jakub Jelinek <jakub@redhat.com>
3071
3072 PR c++/26691
3073 * testsuite/libgomp.c++/pr26691.C: New test.
3074
3075 2006-03-13 Jakub Jelinek <jakub@redhat.com>
3076
3077 * testsuite/libgomp.fortran/retval2.f90: New test.
3078
3079 2006-03-09 Diego Novillo <dnovillo@redhat.com>
3080
3081 * testsuite/libgomp.c++: New directory.
3082
3083 2006-02-25 Shantonu Sen <ssen@opendarwin.org>
3084
3085 * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
3086 * config/posix/sem.c: Implement the above.
3087
3088 2006-02-25 Andreas Tobler <a.tobler@schweiz.ch>
3089
3090 * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
3091 define HAVE_BROKEN_POSIX_SEMAPHORES.
3092 * configure: Rebuilt.
3093 * config.h.in: Rebuilt.
3094
3095 2006-02-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
3096
3097 PR bootstrap/26161
3098 * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
3099 for the other pthread check.
3100 * configure: Regenerate.
3101 * config.h.in: Regenerate.
3102
3103 2006-02-15 Jakub Jelinek <jakub@redhat.com>
3104
3105 PR libgomp/25938
3106 PR libgomp/25984
3107 * Makefile.am (fincludedir): New variable.
3108 (nodist_include_HEADERS): Remove Fortran files.
3109 (nodist_finclude_HEADERS): New variable.
3110 * Makefile.in: Regenerated.
3111
3112 2006-02-13 Jakub Jelinek <jakub@redhat.com>
3113
3114 * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3115 Remove tests for returning assumed character length arrays.
3116
3117 2006-02-12 Roger Sayle <roger@eyesopen.com>
3118 John David Anglin <dave@hiauly1.hia.nrc.ca>
3119
3120 PR libgomp/25936
3121 * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3122
3123 2006-02-08 Ulrich Weigand <uweigand@de.ibm.com>
3124
3125 * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3126
3127 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
3128
3129 * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3130 part of LD_LIBRARY_PATH manually.
3131
3132 2006-02-03 H.J. Lu <hongjiu.lu@intel.com>
3133
3134 PR libgomp/25852
3135 * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3136 libgomp_init.
3137
3138 2005-01-25 Paolo Bonzini <bonzini@gnu.org>
3139
3140 PR libgomp/25884
3141 * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3142 * configure.ac (PERL): Don't set.
3143 (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3144 (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3145 OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3146 * omp.h.in: Wrap the new configure substitutions with @ characters.
3147 * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3148 * aclocal.m4, configure, Makefile.in: Regenerate.
3149 * mkomp_h.pl: Delete.
3150
3151 2005-01-24 Paolo Bonzini <bonzini@gnu.org>
3152
3153 PR libgomp/25259
3154 * configure.ac: Use GCC_HEADER_STDINT.
3155 * libgomp.h: Include gstdint.h.
3156 * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3157 * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3158
3159 2006-01-24 Richard Henderson <rth@redhat.com>
3160
3161 PR libgomp/25942
3162 * configure.ac: Add AM_MAINTAINER_MODE.
3163 * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3164
3165 2006-01-24 Diego Novillo <dnovillo@redhat.com>
3166
3167 * Makefile.in: Regenerate.
3168 * testsuite/Makefile.in: Regenerate.
3169 * aclocal.m4: Regenerate.
3170
3171 2006-01-23 Andreas Tobler <a.tobler@schweiz.ch>
3172
3173 * config/posix/proc.c: Conditional include of sys/loadavg.h for
3174 Solaris.
3175 * configure.ac: Add check for loadavg.h.
3176 (link_gomp): Adjust comment.
3177 * configure: Regenerate.
3178 * config.h.in: Regenerate.
3179
3180 2006-01-21 Steve Ellcey <sje@cup.hp.com>
3181
3182 PR libgomp/25877
3183 * configure.ac: Remove check for alloca.h.
3184 * configure: Regenerate.
3185 * config.h.in: Regenerate.
3186 * libgomp.h: define gomp_alloca to be __builtin_alloca.
3187 * team.c: Remove use of alloca.h.
3188 Call gomp_alloca instead of alloca.
3189
3190 2006-01-20 Steve Ellcey <sje@cup.hp.com>
3191
3192 PR libgomp/25877
3193 * team.c: Add include of alloca.h.
3194 * configure.ac: Add check for alloca.h.
3195 * configure: Regenerate.
3196 * config.h.in: Regenerate.
3197
3198 2006-01-17 Jakub Jelinek <jakub@redhat.com>
3199
3200 PR fortran/25219
3201 * testsuite/libgomp.fortran/pr25219.f90: New test.
3202
3203 2005-12-05 Uros Bizjak <uros@kss-loka.si>
3204
3205 * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3206 testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3207 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3208 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3209 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3210 testsuite/libgomp.fortran/threadprivate1.f90,
3211 testsuite/libgomp.fortran/threadprivate2.f90,
3212 testsuite/libgomp.fortran/threadprivate3.f90,
3213 testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3214 testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3215 testsuite/libgomp.fortran/omp_parse3.f90: Change required
3216 effective-target to TLS runtime.
3217
3218 * testsuite/libgomp.fortran/pr25162.f: Require
3219 effective-target TLS runtime.
3220
3221 2005-12-01 Jakub Jelinek <jakub@redhat.com>
3222
3223 * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3224 * testsuite/libgomp.c/nestedfn-3.c: New test.
3225
3226 2005-11-30 Jakub Jelinek <jakub@redhat.com>
3227
3228 PR fortran/25162
3229 * testsuite/libgomp.fortran/pr25162.f: New test.
3230
3231 2005-11-28 Jakub Jelinek <jakub@redhat.com>
3232
3233 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3234 CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3235
3236 2005-11-25 Jakub Jelinek <jakub@redhat.com>
3237
3238 * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3239 libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3240 omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3241 single.c, team.c, work.c, config/linux/alpha/futex.h,
3242 config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3243 config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3244 config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3245 config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3246 config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3247 config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3248 config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3249 FSF address.
3250
3251 2005-11-18 Jakub Jelinek <jakub@redhat.com>
3252
3253 * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3254 to nodist_noinst_HEADERS.
3255 * Makefile.in: Rebuilt.
3256
3257 * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3258 add integer count field.
3259 * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3260 omp_nest_lock_t type change.
3261 (omp_init_nest_lock): Likewise. Initialize count to 0.
3262 (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3263 Increment count.
3264 (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3265 Decrement count.
3266 (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3267 Increment count if successful and return the new nesting level.
3268 * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3269 * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3270 * testsuite/libgomp.c/lib-1.c: New test.
3271 * testsuite/libgomp.fortran/lib1.f90: New test.
3272 * testsuite/libgomp.fortran/lib2.f: New test.
3273 * testsuite/libgomp.fortran/lib3.f: New test.
3274
3275 2005-11-17 Richard Henderson <rth@redhat.com>
3276
3277 PR 24845
3278 * Makefile.am (nodist_toolexeclib_HEADERS): New.
3279 * configure.ac (link_gomp): New. Substitute it.
3280 (AC_CONFIG_FILES): Add libgomp.spec.
3281 * libgomp.spec.in: New file.
3282 * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3283 * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3284
3285 2005-11-18 Jakub Jelinek <jakub@redhat.com>
3286
3287 * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3288 reduction(-:var) behaving the same as reduction(+:var).
3289 * testsuite/libgomp.c/reduction-4.c: New test.
3290
3291 2005-11-15 Uros Bizjak <uros@kss-loka.si>
3292
3293 * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3294 testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3295 testsuite/libgomp.c/copyin-3.c,
3296 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3297 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3298 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3299 testsuite/libgomp.c++/pr24455.C,
3300 testsuite/libgomp.fortran/threadprivate1.f90,
3301 testsuite/libgomp.fortran/threadprivate2.f90,
3302 testsuite/libgomp.fortran/threadprivate3.f90,
3303 testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3304 testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3305 testsuite/libgomp.fortran/omp_parse3.f90: Require
3306 effective-target TLS.
3307
3308 2005-11-14 Diego Novillo <dnovillo@redhat.com>
3309
3310 * HEADER: Remove.
3311
3312 2005-11-13 Jakub Jelinek <jakub@redhat.com>
3313
3314 PR libgomp/24797
3315 * team.c (initialize_team): Pass NULL rather than free as
3316 pthread_key_create destructor. Initialize thread specific data
3317 pointer in initial thread to a static local variable rather than
3318 malloced memory.
3319
3320 2005-11-11 Uros Bizjak <uros@kss-loka.si>
3321
3322 * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
3323 its location to ld_library_path.
3324
3325 2005-11-10 Diego Novillo <dnovillo@redhat.com>
3326
3327 * testsuite/libgomp.c/c.exp: Rename from dg.exp.
3328
3329 2005-11-10 Diego Novillo <dnovillo@redhat.com>
3330
3331 * testsuite/libgomp.c: Rename from libgomp.dg.
3332
3333 2005-11-09 Diego Novillo <dnovillo@redhat.com>
3334
3335 * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
3336 threadprivate variable 'i'.
3337
3338 2005-11-09 Jakub Jelinek <jakub@redhat.com>
3339
3340 * config/linux/s390/futex.h: New file.
3341 * configure.tgt: Use it.
3342
3343 * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
3344 before the parallel.
3345
3346 2005-11-08 Jakub Jelinek <jakub@redhat.com>
3347
3348 PR c++/24734
3349 * testsuite/libgomp.c++/master-1.C: New test.
3350
3351 2005-11-07 Jakub Jelinek <jakub@redhat.com>
3352
3353 * testsuite/libgomp.dg/copyin-3.c: New test.
3354
3355 2005-11-07 Jakub Jelinek <jakub@redhat.com>
3356
3357 * testsuite/libgomp.fortran/retval1.f90: New test.
3358 * testsuite/libgomp.fortran/vla7.f90: New test.
3359
3360 2005-11-06 Jakub Jelinek <jakub@redhat.com>
3361
3362 * testsuite/libgomp.fortran/vla2.f90: New test.
3363 * testsuite/libgomp.fortran/vla3.f90: New test.
3364 * testsuite/libgomp.fortran/vla4.f90: New test.
3365 * testsuite/libgomp.fortran/vla5.f90: New test.
3366 * testsuite/libgomp.fortran/vla6.f90: New test.
3367
3368 2005-11-01 Jakub Jelinek <jakub@redhat.com>
3369
3370 * config/linux/sparc/futex.h: New file.
3371 * configure.tgt: Use it.
3372 * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
3373
3374 * critical.c: Include stdlib.h.
3375 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
3376 ignoring return value.
3377 * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
3378 LIBGOMP_CHECK_SYNC_BUILTINS check.
3379 * configure: Rebuilt.
3380
3381 2005-10-31 Jakub Jelinek <jakub@redhat.com>
3382
3383 * testsuite/libgomp.fortran/vla1.f90: New test.
3384
3385 2005-10-31 Richard Henderson <rth@redhat.com>
3386
3387 * testsuite/libgomp.fortran/character2.f90: Fix race condition
3388 setting 's' in different threads.
3389
3390 2005-10-31 Jakub Jelinek <jakub@redhat.com>
3391
3392 * libgomp.h (attribute_hidden, ialias): Define.
3393 * config/posix/proc.c (omp_get_num_procs): Add ialias.
3394 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
3395 * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
3396 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3397 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3398 omp_test_lock, omp_test_nest_lock): Likewise.
3399 * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
3400 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3401 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3402 omp_test_lock, omp_test_nest_lock): Likewise.
3403 * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
3404 omp_get_dynamic, omp_get_nested): Likewise.
3405 * parallel.c (omp_get_num_threads, omp_get_max_threads,
3406 omp_get_thread_num, omp_in_parallel): Likewise.
3407 * fortran.c (ialias_redirect): Define.
3408 (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
3409 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
3410 omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
3411 omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
3412 omp_set_num_threads, omp_get_dynamic, omp_get_nested,
3413 omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
3414 omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
3415 omp_get_wtime): Add ialias_redirect.
3416
3417 2005-10-30 Jakub Jelinek <jakub@redhat.com>
3418
3419 * fortran.c: Include stdlib.h.
3420
3421 2005-10-29 Jakub Jelinek <jakub@redhat.com>
3422
3423 * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
3424 * Makefile.in: Regenerated.
3425
3426 2005-10-28 Jakub Jelinek <jakub@redhat.com>
3427
3428 * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
3429 * libgomp_f.h.in (omp_check_defines): New function.
3430 * env.c: Include libgomp_f.h.
3431 (initialize_env): Call omp_check_defines.
3432
3433 * testsuite/libgomp.dg/copyin-2.c: New test.
3434 * testsuite/libgomp.c++/copyin-2.C: New test.
3435 * testsuite/libgomp.fortran/threadprivate3.f90: New test.
3436
3437 * testsuite/libgomp.fortran/threadprivate2.f90: New test.
3438 * testsuite/libgomp.fortran/sharing2.f90: New test.
3439
3440 * testsuite/libgomp.dg/copyin-1.c: New test.
3441 * testsuite/libgomp.c++/copyin-1.C: New test.
3442
3443 2005-10-26 Jakub Jelinek <jakub@redhat.com>
3444
3445 * testsuite/libgomp.fortran/crayptr1.f90: New test.
3446
3447 * testsuite/libgomp.fortran/workshare1.f90: New test.
3448
3449 * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
3450 only test.
3451 * libgomp.fortran/sharing1.f90: New test.
3452
3453 2005-10-24 Jakub Jelinek <jakub@redhat.com>
3454
3455 PR c++/24502
3456 * testsuite/libgomp.c++/loop-7.C: New test.
3457
3458 * testsuite/libgomp.dg/nestedfn-2.c: New test.
3459
3460 * testsuite/libgomp.dg/nestedfn-1.c: New test.
3461 * testsuite/libgomp.fortran/reduction6.f90: New test.
3462 * testsuite/libgomp.fortran/nestedfn1.f90: New test.
3463
3464 2005-10-23 Richard Henderson <rth@redhat.com>
3465
3466 * testsuite/libgomp.c++/ctor-1.C: New.
3467 * testsuite/libgomp.c++/ctor-2.C: New.
3468 * testsuite/libgomp.c++/ctor-3.C: New.
3469 * testsuite/libgomp.c++/ctor-4.C: New.
3470 * testsuite/libgomp.c++/ctor-5.C: New.
3471 * testsuite/libgomp.c++/ctor-6.C: New.
3472 * testsuite/libgomp.c++/ctor-7.C: New.
3473 * testsuite/libgomp.c++/ctor-8.C: New.
3474 * testsuite/libgomp.c++/ctor-9.C: New.
3475
3476 2005-10-21 Diego Novillo <dnovillo@redhat.com>
3477
3478 PR 24455
3479 * testsuite/libgomp.c++/pr24455-1.C: New test.
3480 * testsuite/libgomp.c++/pr24455.C: New test.
3481 * testsuite/libgomp.dg/pr24455-1.c: New test.
3482 * testsuite/libgomp.dg/pr24455.c: New test.
3483
3484 2005-10-20 Richard Henderson <rth@redhat.com>
3485
3486 * testsuite/libgomp.c++/loop-6.C: New.
3487 * testsuite/libgomp.dg/loop-3.c: New.
3488
3489 2005-10-20 Jakub Jelinek <jakub@redhat.com>
3490
3491 * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
3492 explicitly private.
3493 * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
3494 explicitly shared.
3495
3496 2005-10-19 Diego Novillo <dnovillo@redhat.com>
3497
3498 * testsuite/libgomp.fortran/jacobi.f: New test.
3499
3500 2005-10-19 Richard Henderson <rth@redhat.com>
3501
3502 * configure.tgt (i?86-linux): Default to with_arch instead of
3503 CFLAGS. Add -mtune to match target_cpu.
3504 (x86_64-linux): Tune to i686.
3505
3506 * fortran.c (omp_test_nest_lock_): Fix typo.
3507
3508 2005-10-19 Jakub Jelinek <jakub@redhat.com>
3509
3510 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3511 gomp_ordered_sync): Do nothing if team->nthreads == 1.
3512 * testsuite/libgomp.dg/ordered-3.c: New test.
3513
3514 * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
3515 Remove volatile keyword.
3516
3517 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
3518 in COMMON block to avoid warnings on 64-bit targets.
3519
3520 2005-10-18 Diego Novillo <dnovillo@redhat.com>
3521
3522 * testsuite/libgomp.dg/shared-3.c: New test.
3523
3524 2005-10-18 Jakub Jelinek <jakub@redhat.com>
3525
3526 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
3527 * testsuite/libgomp.fortran/reduction5.f90: New test.
3528
3529 2005-10-18 Jakub Jelinek <jakub@redhat.com>
3530
3531 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
3532 dg-options.
3533 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable
3534 flush loop now that __sync_synchronize has proper memory barrier.
3535 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
3536 Add -ffixed-form to dg-options.
3537
3538 2005-10-17 Diego Novillo <dnovillo@redhat.com>
3539
3540 * testsuite/libgomp.fortran/fortran.exp: Also gather tests
3541 from subdirectories.
3542 * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
3543 * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
3544 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
3545 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
3546 * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
3547 * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
3548 * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
3549 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
3550 * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
3551 * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
3552 * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
3553 * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
3554 * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
3555 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
3556 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
3557 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
3558 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
3559 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
3560 * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
3561 * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
3562 * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
3563 * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
3564 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
3565 * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
3566 * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
3567
3568 2005-10-17 Jakub Jelinek <jakub@redhat.com>
3569
3570 * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
3571 lang_library_path exists. Use find instead of glob to gather tests.
3572 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
3573
3574 2005-10-17 Diego Novillo <dnovillo@redhat.com>
3575
3576 * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
3577 * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
3578 * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
3579 * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
3580 * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
3581 * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
3582 * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
3583 * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
3584 * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
3585 * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
3586 * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
3587 * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
3588 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
3589
3590 2005-10-15 Jakub Jelinek <jakub@redhat.com>
3591
3592 * testsuite/libgomp.dg/vla-1.c: New test.
3593
3594 * testsuite/libgomp.fortran/reference2.f90: New test.
3595
3596 * testsuite/libgomp.fortran/character2.f90: Remove explicit
3597 declaration of omp_get_thread_num.
3598 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add
3599 use omp_lib.
3600
3601 * testsuite/libgomp.fortran/reduction1.f90: New test.
3602 * testsuite/libgomp.fortran/reduction2.f90: New test.
3603 * testsuite/libgomp.fortran/reduction3.f90: New test.
3604 * testsuite/libgomp.fortran/reduction4.f90: New test.
3605
3606 2005-10-13 Richard Henderson <rth@redhat.com>
3607
3608 * Makefile.am (libgomp_la_SOURCES): Add bar.c.
3609 * Makefile.in: Regenerate.
3610 * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
3611 * libgomp.h: Include bar.h.
3612 (struct gomp_barrier): Remove.
3613 (struct gomp_team): Add barrier. Replace master_barrier with
3614 master_release. Replace threads with ordered_release.
3615 (struct gomp_thread): Replace barrier with release.
3616 * ordered.c (gomp_ordered_first): Update for ordered_release change.
3617 (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
3618 gomp_ordered_static_next, gomp_ordered_sync): Likewise.
3619 * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
3620 (GOMP_single_copy_end): Likewise.
3621 * team.c (gomp_threads_dock): New.
3622 (gomp_barrier_init, gomp_barrier_destroy): Remove.
3623 (gomp_thread_start): Use gomp_barrier_wait.
3624 (new_team, free_team): Update for gomp_team changes.
3625 (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
3626 (gomp_team_end): Use gomp_barrier_wait.
3627 (initialize_team): Update for gomp_thread changes.
3628 * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
3629 (gomp_work_share_end_nowait): Use atomic ops when available.
3630 * config/linux/bar.c, config/linux/bar.h: New files.
3631 * config/posix/bar.c, config/posix/bar.h: New files.
3632
3633 2005-10-13 Jakub Jelinek <jakub@redhat.com>
3634
3635 * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
3636 * testsuite/libgomp.dg/single-2.c: New test.
3637
3638 * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
3639 lang_link_flags): Unset, so that they aren't inherited from previously
3640 sourced *.exp.
3641
3642 * testsuite/libgomp.fortran/threadprivate1.f90: New test.
3643
3644 2005-10-12 Richard Henderson <rth@redhat.com>
3645
3646 * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
3647 (libgomp_init): Use lang_test_file, lang_library_path, and
3648 lang_link_flags, set by the subdirectory files. Add -fopenmp here.
3649
3650 * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
3651 (lang_test_file, lang_link_flags): New.
3652 (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
3653
3654 * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
3655 testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
3656 testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
3657 testsuite/libgomp.c++/parallel-1.C,
3658 testsuite/libgomp.c++/reduction-1.C,
3659 testsuite/libgomp.c++/reduction-2.C,
3660 testsuite/libgomp.c++/reduction-3.C,
3661 testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
3662 testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
3663 testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
3664 New files, largely cribbed from the C testsuite.
3665
3666 2005-10-12 Jakub Jelinek <jakub@redhat.com>
3667
3668 * testsuite/libgomp.fortran/character1.f90: New test.
3669 * testsuite/libgomp.fortran/character2.f90: New test.
3670
3671 * testsuite/libgomp.dg/nested-1.c: New test.
3672 * testsuite/libgomp.dg/nested-2.c: New test.
3673 * testsuite/libgomp.fortran/do1.f90: New test.
3674 * testsuite/libgomp.fortran/do2.f90: New test.
3675
3676 * testsuite/libgomp.fortran/reference1.f90: New test.
3677
3678 2005-10-11 Jakub Jelinek <jakub@redhat.com>
3679
3680 * testsuite/libgomp.dg/reduction-1.c: New test.
3681 * testsuite/libgomp.dg/reduction-2.c: New test.
3682 * testsuite/libgomp.dg/reduction-3.c: New test.
3683
3684 2005-10-10 Jakub Jelinek <jakub@redhat.com>
3685
3686 * testsuite/libgomp.dg/atomic-1.c: New test.
3687 * testsuite/libgomp.dg/atomic-2.c: New test.
3688
3689 2005-10-09 Richard Henderson <rth@redhat.com>
3690
3691 * critical.c (atomic_lock): New.
3692 (initialize_critical): Initialize it.
3693 (GOMP_atomic_start, GOMP_atomic_end): New.
3694 * libgomp.map: Export them.
3695 * libgomp_g.h: Declare them.
3696
3697 * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
3698
3699 2005-10-02 Richard Henderson <rth@redhat.com>
3700
3701 * configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror
3702 to XCFLAGS instead of CFLAGS.
3703
3704 2005-09-30 Richard Henderson <rth@redhat.com>
3705
3706 * configure.ac: Determine whether -pthread or -lpthread is needed.
3707 * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
3708 * Makefine.in, configure: Rebuild.
3709
3710 2005-09-28 Richard Henderson <rth@redhat.com>
3711
3712 * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
3713 * testsuite/libgomp.dg/omp-single-3.c: New test.
3714
3715 2005-09-28 Diego Novillo <dnovillo@redhat.com>
3716
3717 * testsuite/libgomp.dg/omp-single-2.c: New test.
3718 * testsuite/libgomp.dg/shared-2.c: Fix return code.
3719
3720 2005-09-27 Richard Henderson <rth@redhat.com>
3721
3722 * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
3723 * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
3724
3725 2005-09-27 Jakub Jelinek <jakub@redhat.com>
3726
3727 * testsuite/libgomp.dg/omp-loop03.c: New test.
3728
3729 2005-09-27 Diego Novillo <dnovillo@redhat.com>
3730
3731 * testsuite/libgomp.dg/omp-parallel-for.c: New test.
3732
3733 2005-09-27 Diego Novillo <dnovillo@redhat.com>
3734
3735 * testsuite/libgomp.dg/omp-single-1.c: New test.
3736 * testsuite/libgomp.dg/shared-1.c: Return 0.
3737 Add prototype for abort.
3738 * testsuite/libgomp.dg/shared-2.c: Likewise.
3739
3740 2005-09-26 Jakub Jelinek <jakub@redhat.com>
3741
3742 * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
3743 constructs.
3744
3745 2005-09-26 Diego Novillo <dnovillo@redhat.com>
3746
3747 * testsuite/libgomp.dg/shared-1.c: New test.
3748 * testsuite/libgomp.dg/shared-2.c: New test.
3749
3750 2005-09-24 Richard Henderson <rth@redhat.com>
3751
3752 * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
3753
3754 2005-09-24 Richard Henderson <rth@redhat.com>
3755
3756 * iter.c (gomp_iter_static_next): Round up when computing number
3757 of iterations. Don't bother distributing a remainder equally.
3758
3759 * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
3760 Don't call srand. Zero b before testing.
3761 (main): New.
3762
3763 2005-09-24 Jakub Jelinek <jakub@redhat.com>
3764
3765 * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
3766 * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
3767
3768 2005-09-23 Jakub Jelinek <jakub@redhat.com>
3769
3770 * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
3771 without !$omp end do, followed immediately by subroutine end.
3772
3773 2005-09-23 Diego Novillo <dnovillo@redhat.com>
3774
3775 * testsuite/libgomp.dg/omp-parallel-if.c: New test.
3776
3777 2005-09-22 Richard Henderson <rth@redhat.com>
3778
3779 * critical.c (GOMP_critical_name_start): Change argument to void**.
3780 Reuse the pointer space if the mutex fits.
3781 (GOMP_critical_name_end): Likewise.
3782 (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
3783 * libgomp_g.h (GOMP_critical_name_start): Update decl.
3784 (GOMP_critical_name_end): Likewise.
3785 * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
3786 * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
3787
3788 2005-09-20 Richard Henderson <rth@redhat.com>
3789
3790 * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
3791 (create_lock_lock): New.
3792 (initialize_critical): Initialize it.
3793 * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
3794 * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
3795
3796 2005-09-20 Diego Novillo <dnovillo@redhat.com>
3797
3798 * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
3799
3800 2005-09-20 Diego Novillo <dnovillo@redhat.com>
3801
3802 * testsuite/libgomp.dg/omp-loop01.c: New test.
3803 * testsuite/libgomp.dg/omp-loop02.c: New test.
3804
3805 2005-09-20 Jakub Jelinek <jakub@redhat.com>
3806
3807 * configure.ac (AC_PROG_FC): Add.
3808 (USE_FORTRAN): New automake conditional.
3809 * configure: Rebuilt.
3810 * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
3811 (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
3812 If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
3813 Add rules to build them.
3814 * Makefile.in: Rebuilt.
3815 * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
3816 OMP_NEST_LOCK_KIND.
3817 * libgomp.map: Add Fortran wrappers.
3818 * libgomp_f.h.in: New file.
3819 * omp_lib.h.in: New file.
3820 * omp_lib.f90.in: New file.
3821 * fortran.c: New file.
3822 * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
3823 Append libgfortran directory to LD_LIBRARY_PATH if it exists.
3824 Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
3825 libgfortran has been built.
3826 * testsuite/libgomp.fortran/fortran.exp: New file.
3827 * testsuite/libgomp.fortran/omp_cond1.f: New test.
3828 * testsuite/libgomp.fortran/omp_cond2.f: New test.
3829 * testsuite/libgomp.fortran/omp_cond3.F90: New test.
3830 * testsuite/libgomp.fortran/omp_cond4.F90: New test.
3831 * testsuite/libgomp.fortran/omp_hello.f: New test.
3832 * testsuite/libgomp.fortran/omp_orphan.f: New test.
3833 * testsuite/libgomp.fortran/omp_parse1.f90: New test.
3834 * testsuite/libgomp.fortran/omp_parse2.f90: New test.
3835 * testsuite/libgomp.fortran/omp_parse3.f90: New test.
3836 * testsuite/libgomp.fortran/omp_parse4.f90: New test.
3837 * testsuite/libgomp.fortran/omp_reduction.f: New test.
3838 * testsuite/libgomp.fortran/omp_workshare1.f: New test.
3839 * testsuite/libgomp.fortran/omp_workshare2.f: New test.
3840
3841 2005-08-30 Richard Henderson <rth@redhat.com>
3842
3843 * loop.c (GOMP_loop_static_start): Provide fallback wrapper
3844 function for when aliases are not usable.
3845 (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
3846 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3847 GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
3848 GOMP_loop_dynamic_next, GOMP_loop_guided_next,
3849 GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
3850 GOMP_loop_ordered_guided_next): Likewise.
3851 * ordered.c (GOMP_ordered_start): Likewise.
3852
3853 2005-08-01 Diego Novillo <dnovillo@redhat.com>
3854
3855 * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
3856 * testsuite/libgomp.dg/omp_hello.c: Fix return code
3857 * testsuite/libgomp.dg/omp_matvec.c: Likewise.
3858 * testsuite/libgomp.dg/omp_orphan.c: Likewise
3859 * testsuite/libgomp.dg/omp_reduction.c: Likewise
3860 * testsuite/libgomp.dg/omp_workshare1.c: Likewise
3861 * testsuite/libgomp.dg/omp_workshare2.c: Likewise
3862 * testsuite/libgomp.dg/omp_workshare3.c: Likewise
3863 * testsuite/libgomp.dg/omp_workshare4.c: Likewise
3864
3865 2005-07-07 Eric Christopher <echristo@redhat.com>
3866 Diego Novillo <dnovillo@redhat.com>
3867
3868 * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
3869 * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
3870 up code.
3871 * testsuite/libgomp.dg/omp_matvec.c: Ditto.
3872 * testsuite/libgomp.dg/omp_orphan.c: Ditto.
3873 * testsuite/libgomp.dg/omp_reduction.c: Ditto.
3874 * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
3875 * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
3876 * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
3877 * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
3878
3879 2005-06-13 Diego Novillo <dnovillo@redhat.com>
3880
3881 * TOPLEVEL.patch: Remove.
3882
3883 2005-05-16 Richard Henderson <rth@redhat.com>
3884
3885 * configure.ac: Test for clock_gettime.
3886 * config.h.in, configure: Rebuild.
3887 * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
3888 (omp_get_wtime): Use clock_gettime if available.
3889 (omp_get_wtick): Use clock_getres if available.
3890
3891 2005-05-11 Richard Henderson <rth@redhat.com>
3892
3893 * config/linux/ia64/futex.h: New file.
3894 * configure.tgt: Use it.
3895
3896 * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
3897
3898 2005-05-07 Richard Henderson <rth@redhat.com>
3899
3900 * config/linux/powerpc/futex.h: New file.
3901 * configure.tgt: Use it.
3902
3903 * config/linux/i486/futex.h: Merge ...
3904 * config/linux/x86_64/futex.h: ... into ...
3905 * config/linux/x86/futex.h: ... here.
3906 * configure.tgt: Update to match.
3907
3908 2005-05-06 Richard Henderson <rth@redhat.com>
3909
3910 * config/linux/alpha/futex.h: Conditionally define SYS_futex.
3911 * config/linux/i486/futex.h: Likewise.
3912 * config/linux/x86_64/futex.h: Likewise.
3913
3914 * config/linux/lock.c: New file.
3915 * config/linux/omp-lock.h: New file.
3916
3917 * critical.c, env.h: Don't include omp.h
3918 * config/posix/lock.c: Include libgomp.h instead of omp.h.
3919 * config/posix/time.c: Likewise.
3920 * config/posix/omp-lock.h: New file.
3921 * libgomp.h: Include omp-lock.h and omp.h.
3922 * Makefile.am (nodist_include_HEADERS): New.
3923 (omp.h): New rule.
3924 * configure.ac (PERL): New.
3925 * mkomp_h.pl: New file.
3926 * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
3927 with templates.
3928 * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
3929
3930 * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
3931 build directory. Re-add -march=i486 hack.
3932
3933 * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
3934 (libgomp_link_flags): Remove.
3935 (libgomp_initialized): Remove.
3936 (libgomp_init): Don't protect from reinitialization. Copy code
3937 from libstdc++ for getting the multilib set correctly.
3938
3939 2005-05-05 Richard Henderson <rth@redhat.com>
3940
3941 * config/linux/alpha/futex.h: New file.
3942 * configure.tgt (alpha*-*-linux*): Use it.
3943
3944 * config/posix/mutex.c: New file.
3945 * config/posix/sem.c: Use libgomp.h.
3946
3947 * configure.tgt (x86_64-linux): Also test CC for -m32.
3948 * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
3949
3950 * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
3951 after $gccpath.
3952
3953 * Makefile.am (SUBDIRS): New.
3954 (libgomp_la_LDFLAGS): Add -lpthread.
3955 * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
3956 * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
3957
3958 * libgomp_g.h: New file.
3959 * libgomp.h: Split out all public declarations to libgomp_g.h.
3960 Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
3961 * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
3962 * config/linux/sem.h: Likewise.
3963 * config/posix/sem.h: Likewise.
3964
3965 * Makefile.am (AM_LDFLAGS): New.
3966 (libgomp_version_script): Split out from ...
3967 (libgomp_la_LDFLAGS): ... here.
3968 (libgomp_version_info): New.
3969 * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
3970 (LIBGOMP_ENABLE): New.
3971 (LIBGOMP_CHECK_LINKER_FEATURES): New.
3972 (LIBGOMP_ENABLE_SYMVERS): New.
3973 * configure.ac (AC_INIT): Version 1.0.
3974 (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
3975 (enable-linux-futex): Likewise. Rename from enable-futex.
3976 (libtool_VERSION): New.
3977 (LIBGOMP_ENABLE_SYMVERS): Use it.
3978 * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
3979 * Makefile.in, aclocal.m4, configure: Rebuild.
3980
3981 * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
3982 (gomp_mutex_unlock_slow): Fix typo.
3983 * config/linux/sem.c: Similarly.
3984 (gomp_sem_post_slow): Fix typo.
3985 * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
3986 * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
3987 [__PIC__] (sys_futex0): Don't use tmp output in asm.
3988
3989 * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
3990 (libgomp_la_LDFLAGS): Add top_srcdir to path.
3991 * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
3992 * configure.ac: Check for getloadavg. Substitute XCFLAGS and
3993 XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
3994 * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
3995 LDFLAGS. Pull enable_futex check to top-level.
3996 * libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN.
3997 * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
3998
3999 First attempt at real configury.
4000 * Makefile, config.h: Remove file.
4001 * Makefile.am, Makefile.in: New file.
4002 * acinclude.m4 aclocal.m4: New file.
4003 * configure.ac, configure.tgt, configure: New file.
4004
4005 * config/posix/lock.c: Rename from sys-lock.c.
4006 * config/posix/mutex.h: Rename from sys-mutex.h.
4007 * config/posix/sem.c: Rename from sys-sem.c.
4008 * config/posix/sem.h: Rename from sys-sem.h.
4009 * config/posix/proc.c: Rename from sys-proc.c.
4010 * config/posix/time.c: Rename from sys-proc.c.
4011
4012 * config/linux/mutex.c: New file.
4013 * config/linux/mutex.h: New file.
4014 * config/linux/sem.c: New file.
4015 * config/linux/sem.h: New file.
4016 * config/linux/i486/futex.h: New file.
4017 * config/linux/x86_64/futex.h: New file.
4018
4019 2005-05-04 Richard Henderson <rth@redhat.com>
4020
4021 * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
4022 * libgomp.h: Declare them.
4023 * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
4024 gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
4025
4026 2005-05-04 Richard Henderson <rth@redhat.com>
4027
4028 * libgomp-1 code drop
4029
4030 2005-05-04 Richard Henderson <rth@redhat.com>
4031
4032 * iter.c (gomp_iter_static_next): Return tri-state on 0.
4033 * ordered.c (gomp_ordered_static_next): Remove not_last argument.
4034 * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
4035 (gomp_iter_static_next): Update.
4036 (gomp_ordered_static_next): Update.
4037 * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
4038 (gomp_loop_ordered_static_start): Likewise. Exit early for a
4039 totally empty range.
4040 (gomp_loop_ordered_static_next): Refine test for calling
4041 gomp_ordered_static_next.
4042 * testsuite/ordered-1.c: Add case for more threads than iterations.
4043
4044 * iter.c (gomp_iter_runtime_next_locked): Remove.
4045 * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
4046 gomp_loop_guided_start, gomp_loop_ordered_static_start,
4047 gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
4048 gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
4049 gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
4050 gomp_loop_ordered_guided_next): Downcase name, make static, add
4051 an external alias with the old name.
4052 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
4053 GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
4054 switch and call one of the above static functions.
4055 * libgomp.h: Update.
4056
4057 * work.c (gomp_work_share_start): Lock the mutex for !first too.
4058 * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
4059 GOMP_loop_guided_start, GOMP_loop_runtime_start,
4060 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4061 GOMP_loop_ordered_guided_start): Update to match.
4062 * sections.c (GOMP_sections_start): Likewise.
4063 * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
4064
4065 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4066 gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
4067 Use bounds check instead of modulus.
4068 (gomp_ordered_sync): Split out of GOMP_ordered_start.
4069 (gomp_ordered_last): Don't sync with ordered_owner here.
4070 (gomp_ordered_next): Likewise.
4071 (gomp_ordered_static_loop_next): Likewise.
4072 * loop.c, libgomp.h: Update to match.
4073
4074 * libgomp.h (GOMP_barrier): Declare.
4075
4076 * testsuite/barrier-1.c: New file.
4077 * testsuite/critical-1.c: New file.
4078 * testsuite/ordered-2.c: New file.
4079 * testsuite/ordered-1.c: New file.
4080 * testsuite/sections-1.c: New file.
4081 * testsuite/single-1.c: New file.
4082 * testsuite/Makefile (TESTS): Add them.
4083
4084 2005-05-04 Richard Henderson <rth@redhat.com>
4085
4086 * libgomp.h (struct gomp_work_share): Add ordered_owner.
4087 * loop.c (GOMP_loop_static_start): If not the startup thread,
4088 acquire the mutex to wait for initialization complete.
4089 (GOMP_loop_ordered_static_start): Likewise.
4090 (GOMP_loop_ordered_runtime_start): Likewise.
4091 (GOMP_loop_ordered_static_first): Remove.
4092 (GOMP_loop_ordered_dynamic_first): Remove.
4093 (GOMP_loop_ordered_guided_first): Remove.
4094 (GOMP_loop_ordered_runtime_first): Remove.
4095 * ordered.c (gomp_ordered_loop_first): Post to own release when
4096 we're the first thread.
4097 (gomp_ordered_loop_last): Wait on release if not owner.
4098 (gomp_ordered_loop_next): Likewise.
4099 (gomp_ordered_static_loop_init): New.
4100 (gomp_ordered_static_loop_next): Use ordered_owner.
4101 (GOMP_ordered_start): Likewise.
4102 * work.c (gomp_new_work_share): Initialize ordered_owner.
4103
4104 2005-05-03 Richard Henderson <rth@redhat.com>
4105
4106 * Makefile (OPT): New.
4107 (CFLAGS): Use it.
4108
4109 * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4110 * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4111 * libgomp.h, libgomp.map, NOTES: Update to match.
4112
4113 * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4114 Add initialized and thr members.
4115 (gomp_thread_start): Pause when initially spawned to wait for
4116 the whole team to be created.
4117 (gomp_team_start): Release team members at the end.
4118
4119 * testsuite/loop-1.c (N): New. Use it instead of hardcoded 100.
4120 (f_foo_1): Use GOMP_loop_end.
4121 (f_foo_2): Use GOMP_loop_end_nowait.
4122
4123 * testsuite/loop-2.c: New file.
4124 * testsuite/Makefile (TESTS): Add it.
4125
4126 2005-05-03 Richard Henderson <rth@redhat.com>
4127
4128 * iter.c (gomp_iter_static_next): Fix overflow check typo.
4129 (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4130 * team.c (new_team): Initialize oldest_live_gen to 1 if no
4131 initial work_share.
4132
4133 * testsuite/Makefile: New file.
4134 * testsuite/loop-1.c: New file.
4135
4136 2005-05-03 Richard Henderson <rth@redhat.com>
4137
4138 Initial implementation and checkin.