2015-07-17 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / libgomp / ChangeLog
blob8f2334a2815933e133609254e39cbd2f13460bb6
1 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
3         * target.c (GOMP_offload_register): Use int for device type arg.
4         (GOMP_offload_unregister): Likewise.
6         * target.c (struct_offload_image_descr): Constify host_table.
7         (gomp_offload_image_to_device): Likewise.
8         (GOMP_offload_register, GOMP_offload_unregister): Likewise.
10         * libgomp.h (gomp_device_descr): Constify target data arguments.
11         * target.c (struct offload_image_descr): Constify target_data.
12         (gomp_offload_image_to_device): Likewise.
13         (GOMP_offload_register): Likewise.
14         (GOMP_offload_unrefister): Likewise.
15         * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
16         GOMP_OFFLOAD_unload_image): Constify target data.
17         * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
18         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
20 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
22         * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
23         Workaround driver library const error.
24         (struct nvptx_tdata, nvptx_tdata_t): New.
25         (GOMP_OFFLOAD_load_image): Use struct for target_data's real
26         type.
28 2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
30         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
31         of EPS parameter from integer to real.
32         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
33         type of EPS parameter from integer to real.
35 2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
37         * team.c (get_last_team): New.
38         (gomp_new_team): Recycle last non-nested team if possible.
39         (gomp_team_end): Move team work share list free lock destruction
40         to ...
41         (free_team): ... here.
43 2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
45         * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
46         and ref from int to double.  Replaced their comparison with
47         an inequality of their difference and EPS.
48         * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
49         comparison of pri and a reference number with an inequality of their
50         difference and EPS.
51         * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
52         the comparison of sum and sum_ref with an inequality of their
53         difference and EPS.
54         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
55         the comparison of pri and a reference number with an inequality of
56         their difference and EPS.
58 2015-07-13  Maxim Blumenthal  <maxim.blumenthal@intel.com>
60         * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
61         * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
62         * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
63         * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
64         * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
65         * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
66         * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
67         * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
68         * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
69         * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
70         * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
71         * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
72         (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
73         variables.
74         (vec_mult): Likewise.  Add #pragma omp taskwait.
75         (main): Adjust caller.
76         * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
77         * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
78         * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
79         * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
80         * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
81         * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
82         * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
83         * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
84         * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
85         * testsuite/libgomp.c/examples-4/device-1.c: ...this.
86         * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
87         * testsuite/libgomp.c/examples-4/device-2.c: ...this.
88         * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
89         * testsuite/libgomp.c/examples-4/device-3.c: ...this.
90         * testsuite/libgomp.c/examples-4/simd-1.c: New file.
91         * testsuite/libgomp.c/examples-4/simd-2.c: New file.
92         * testsuite/libgomp.c/examples-4/simd-3.c: New file.
93         * testsuite/libgomp.c/examples-4/simd-4.c: New file.
94         * testsuite/libgomp.c/examples-4/simd-5.c: New file.
95         * testsuite/libgomp.c/examples-4/simd-6.c: New file.
96         * testsuite/libgomp.c/examples-4/simd-7.c: New file.
97         * testsuite/libgomp.c/examples-4/simd-8.c: New file.
98         * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
99         * testsuite/libgomp.c/examples-4/target-1.c: ...this.
100         * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
101         * testsuite/libgomp.c/examples-4/target-2.c: ...this.
102         * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
103         * testsuite/libgomp.c/examples-4/target-3.c: ...this.
104         * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
105         * testsuite/libgomp.c/examples-4/target-4.c: ...this.
106         * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
107         * testsuite/libgomp.c/examples-4/target-5.c: ...this.
108         * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
109         * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
110         * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
111         * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
112         * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
113         * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
114         * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
115         * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
116         * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
117         * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
118         * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
119         * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
120         * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
121         * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
122         * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
123         * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
124         * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
125         * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
126         * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
127         * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
128         * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
129         * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
130         * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
131         * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
132         * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
133         * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
134         * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
135         * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
136         * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
137         * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
138         * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
139         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
140         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
141         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
142         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
143         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
144         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
145         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
146         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
147         (vec_mult): Add !$omp taskwait.
148         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
149         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
150         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
151         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
152         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
153         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
154         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
155         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
156         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
157         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
158         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
159         * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
160         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
161         * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
162         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
163         * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
164         * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
165         * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
166         * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
167         * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
168         * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
169         * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
170         * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
171         * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
172         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
173         * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
174         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
175         * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
176         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
177         * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
178         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
179         * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
180         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
181         * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
182         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
183         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
184         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
185         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
186         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
187         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
188         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
189         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
190         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
191         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
192         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
193         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
194         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
195         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
196         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
197         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
198         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
199         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
200         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
201         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
202         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
203         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
204         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
205         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
206         * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
207         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
208         * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
209         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
210         * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
211         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
212         * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
213         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
214         * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
216 2015-07-10  Tom de Vries  <tom@codesourcery.com>
218         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
219         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
221 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
223         PR libgomp/65099
224         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
225         in a 64-bit configuration.
226         * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
227         offloading testing if no such device is available.
228         * testsuite/libgomp.oacc-c/c.exp: Likewise.
229         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
231 2015-07-08  Tom de Vries  <tom@codesourcery.com>
233         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
234         second call to f.
235         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
237 2015-07-07  Tom de Vries  <tom@codesourcery.com>
239         PR tree-optimization/66642
240         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
241         iteration count case.
242         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
243         function, factor out of ...
244         (main): ... here.  Test low iteration count case.
246 2015-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
248         * libgomp.h (gomp_thread_pool): Comment last_team field.
250 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
252         * testsuite/libgomp.c++/pr66702-1.C: Require
253         vect_simd_clones effective target.
254         * testsuite/libgomp.c++/pr66702-2.C: Ditto.
256 2015-06-30  Tom de Vries  <tom@codesourcery.com>
258         * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
259         already set.  Use DEFAULT_CFLAGS in dg-runtest.
260         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
261         "-O2".
263 2015-06-30  Tom de Vries  <tom@codesourcery.com>
265         * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
266         already set.  Use DEFAULT_CFLAGS in dg-runtest.
267         * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
268         * testsuite/libgomp.c++/pr64824.C: Same.
269         * testsuite/libgomp.c++/pr64868.C: Same.
270         * testsuite/libgomp.c++/pr66199-1.C: Same.
271         * testsuite/libgomp.c++/pr66199-2.C: Same.
272         * testsuite/libgomp.c++/target-2.C: Same.
273         * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
274         -std=<standard> option.
275         * testsuite/libgomp.c++/udr-11.C: Same.
276         * testsuite/libgomp.c++/udr-12.C: Same.
277         * testsuite/libgomp.c++/udr-13.C: Same.
278         * testsuite/libgomp.c++/udr-14.C: Same.
279         * testsuite/libgomp.c++/udr-15.C: Same.
280         * testsuite/libgomp.c++/udr-16.C: Same.
281         * testsuite/libgomp.c++/udr-17.C: Same.
282         * testsuite/libgomp.c++/udr-18.C: Same.
283         * testsuite/libgomp.c++/udr-19.C: Same.
284         * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
285         * testsuite/libgomp.c++/simd-1.C: Same.
286         * testsuite/libgomp.c++/simd-2.C: Same.
287         * testsuite/libgomp.c++/simd-3.C: Same.
288         * testsuite/libgomp.c++/simd-4.C: Same.
289         * testsuite/libgomp.c++/simd-5.C: Same.
290         * testsuite/libgomp.c++/simd-6.C: Same.
291         * testsuite/libgomp.c++/simd-7.C: Same.
292         * testsuite/libgomp.c++/simd-8.C: Same.
293         * testsuite/libgomp.c++/simd-9.C: Same.
294         * testsuite/libgomp.c++/simd10.C: Same.
295         * testsuite/libgomp.c++/simd11.C: Same.
296         * testsuite/libgomp.c++/simd12.C: Same.
297         * testsuite/libgomp.c++/simd13.C: Same.
299 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
301         PR middle-end/66702
302         * testsuite/libgomp.c++/pr66702-1.C: New test.
303         * testsuite/libgomp.c++/pr66702-2.C: New test.
305 2015-06-30  Tom de Vries  <tom@codesourcery.com>
307         * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
308         * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
309         * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
310         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
312 2015-06-30  Tom de Vries  <tom@codesourcery.com>
314         PR tree-optimization/66652
315         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
316         using restrict pointers.
317         (main): Add arguments to calls to f.
318         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
320 2015-06-23  Andreas Tobler  <andreast@gcc.gnu.org>
322         * configure.ac: Fix check for header <sys/sysctl.h>.
323         * configure: Regenerate.
324         * config.h.in: Likewise.
326 2015-06-23  Tom de Vries  <tom@codesourcery.com>
328         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
329         abort.
330         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
332 2015-06-19  Thomas Schwinge  <thomas@codesourcery.com>
334         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
335         acc_device_nvidia.
337         PR libgomp/66518
338         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
339         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
341 2015-06-15  Tom de Vries  <tom@codesourcery.com>
343         * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2".  Use
344         dg-additional-options for any remaining options.
345         * testsuite/libgomp.c/atomic-2.c: Same.
346         * testsuite/libgomp.c/atomic-4.c: Same.
347         * testsuite/libgomp.c/atomic-5.c: Same.
348         * testsuite/libgomp.c/atomic-6.c: Same.
349         * testsuite/libgomp.c/autopar-1.c: Same.
350         * testsuite/libgomp.c/copyin-1.c: Same.
351         * testsuite/libgomp.c/copyin-2.c: Same.
352         * testsuite/libgomp.c/copyin-3.c: Same.
353         * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
354         * testsuite/libgomp.c/nestedfn-5.c: Same.
355         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
356         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
357         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
358         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
359         * testsuite/libgomp.c/pr32362-1.c: Same.
360         * testsuite/libgomp.c/pr32362-2.c: Same.
361         * testsuite/libgomp.c/pr32362-3.c: Same.
362         * testsuite/libgomp.c/pr39591-1.c: Same.
363         * testsuite/libgomp.c/pr39591-2.c: Same.
364         * testsuite/libgomp.c/pr39591-3.c: Same.
365         * testsuite/libgomp.c/pr58392.c: Same.
366         * testsuite/libgomp.c/pr58756.c: Same.
367         * testsuite/libgomp.c/simd-1.c: Same.
368         * testsuite/libgomp.c/simd-10.c: Same.
369         * testsuite/libgomp.c/simd-11.c: Same.
370         * testsuite/libgomp.c/simd-12.c: Same.
371         * testsuite/libgomp.c/simd-13.c: Same.
372         * testsuite/libgomp.c/simd-14.c: Same.
373         * testsuite/libgomp.c/simd-15.c: Same.
374         * testsuite/libgomp.c/simd-2.c: Same.
375         * testsuite/libgomp.c/simd-3.c: Same.
376         * testsuite/libgomp.c/simd-4.c: Same.
377         * testsuite/libgomp.c/simd-5.c: Same.
378         * testsuite/libgomp.c/simd-6.c: Same.
379         * testsuite/libgomp.c/simd-7.c: Same.
380         * testsuite/libgomp.c/simd-8.c: Same.
381         * testsuite/libgomp.c/simd-9.c: Same.
383 2015-06-15  Tom de Vries  <tom@codesourcery.com>
385         * testsuite/libgomp.c/pr35625.c: Fix typo.
387 2015-06-15  Tom de Vries  <tom@codesourcery.com>
389         * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
390         in dg-options.
391         * testsuite/libgomp.c/atomic-3.c: Same.
392         * testsuite/libgomp.c/debug-1.c: Same.
393         * testsuite/libgomp.c/nqueens-1.c: Same.
394         * testsuite/libgomp.c/pr26171.c: Same.
395         * testsuite/libgomp.c/pr48591.c: Same.
396         * testsuite/libgomp.c/pr64824.c: Same.
397         * testsuite/libgomp.c/pr64868.c: Same.
398         * testsuite/libgomp.c/pr66133.c: Same.
399         * testsuite/libgomp.c/pr66199-1.c: Same.
400         * testsuite/libgomp.c/pr66199-2.c: Same.
401         * testsuite/libgomp.c/target-8.c: Same.
403 2015-06-15  Tom de Vries  <tom@codesourcery.com>
405         * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
406         -std={gnu99,c99}.
407         * testsuite/libgomp.c/for-1.c: Same.
408         * testsuite/libgomp.c/for-2.c: Same.
409         * testsuite/libgomp.c/for-3.c: Same.
410         * testsuite/libgomp.c/pr35625.c: Same.
411         * testsuite/libgomp.c/pr39154.c: Same.
412         * testsuite/libgomp.c/simd-16.c: Same.
413         * testsuite/libgomp.c/simd-17.c: Same.
415 2015-06-13  Tom de Vries  <tom@codesourcery.com>
417         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
419 2015-06-13  Tom de Vries  <tom@codesourcery.com>
421         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
422         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
423         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
424         (N): Define.
425         (main): Use N instead of hardcoded constants.
427 2015-06-05  Tom de Vries  <tom@codesourcery.com>
429         merge from gomp4 branch:
430         2015-05-28  Tom de Vries  <tom@codesourcery.com>
432         PR tree-optimization/65443
433         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
434         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
435         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
437 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
439         * testsuite/libgomp.graphite/bounds.c: Adjust for
440         cleanup-tree-dump removal.
441         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
442         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
443         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
444         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
445         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
446         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
447         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
448         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
449         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
450         * testsuite/libgomp.graphite/pr41118.c: Likewise.
452 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
454         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
455         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
456         (futex_wake) [!__x86_64__]: Ditto.
458 2015-05-28  Julian Brown  <julian@codesourcery.com>
460         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
461         function comment. Only call gomp_fatal if new argument is true.
462         (acc_dev_num_out_of_range): New function.
463         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
464         acc_dev_num_out_of_range as appropriate.
465         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
466         (acc_get_device_num, acc_set_device_num): Update calls to
467         resolve_device.
468         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
469         output.
471 2015-05-28  Julian Brown  <julian@codesourcery.com>
473         PR libgomp/65742
474         * oacc-init.c (plugin/plugin-host.h): Include.
475         (acc_on_device): Check whether we're in an offloaded region for
476         host_nonshm
477         plugin. Don't use __builtin_acc_on_device.
478         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
479         nonshm_exec flag in thread-local data.
480         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
481         data for host_nonshm plugin.
482         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
483         for host_nonshm plugin.
484         * plugin/plugin-host.h: New.
486 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
488         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
490 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
492         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
493         Declare as int.
494         (FUTEX_PRIVATE_FLAG): Remove L suffix.
495         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
496         Declare as int.
498 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
500         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
502 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
504         * target.c (gomp_map_pointer): New function abstracting out
505         GOMP_MAP_POINTER handling.
506         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
507         gomp_map_pointer().
509 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
511         PR middle-end/66199
512         * testsuite/libgomp.c/pr66199-1.c: New test.
513         * testsuite/libgomp.c/pr66199-2.c: New test.
514         * testsuite/libgomp.c++/pr66199-1.C: New test.
515         * testsuite/libgomp.c++/pr66199-2.C: New test.
516         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
517         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
519 2015-05-19  Julian Brown  <julian@codesourcery.com>
521         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
522         on cuInit failure.
524 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
526         PR middle-end/66133
527         * testsuite/libgomp.c/pr66133.c: New test.
529 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
531         * Makefile.in: Regenerated with automake-1.11.6.
532         * aclocal.m4: Likewise.
533         * config.h.in: Likewise.
534         * configure: Likewise.
535         * testsuite/Makefile.in: Likewise.
537 2015-05-08  Jason Merrill  <jason@redhat.com>
539         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
540         _Complex.
542         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
544 2015-05-06  Julian Brown  <julian@codesourcery.com>
546         * oacc-init.c (acc_device_lock): Add explanatory comment.
547         (resolve_device): Add comment about locking requirement.
548         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
549         gomp_init_device and gomp_fini_device calls.
550         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
551         (acc_get_device_num, acc_set_device_num): Add locking around
552         resolve_device and gomp_init_device calls.
554 2015-05-06  Julian Brown  <julian@codesourcery.com>
556         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
557         goacc_thread_lock on error paths.
558         * oacc-mem.c (lookup_host): Remove locking from function. Note
559         locking requirement for caller in function comment.
560         (lookup_dev): Likewise.
561         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
562         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
563         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
564         Add locking.
566 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
568         PR testsuite/65205
569         PR libgomp/65993
570         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
571         don't expect "0x" prefix for "%p" format specifier, don't expect
572         "(nil)" for NULL pointer.
573         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
574         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
575         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
576         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
577         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
578         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
579         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
580         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
581         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
582         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
583         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
584         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
585         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
586         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
587         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
588         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
589         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
590         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
591         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
592         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
593         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
594         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
595         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
596         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
597         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
598         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
599         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
600         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
601         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
602         accurately specify what we're looking for.
603         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
604         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
605         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
606         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
607         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
609 2015-04-30  James Norris  <jnorris@codesourcery.com>
611         PR testsuite/65205
612         * testsuite/lib/libgomp.exp
613         (check_effective_target_openacc_host_selected)
614         (check_effective_target_openacc_host_nonshm_selected): New
615         procedures.
616         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
617         dg-shouldfail.
618         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
619         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
620         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
621         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
622         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
623         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
624         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
625         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
626         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
627         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
628         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
629         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
630         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
631         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
632         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
633         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
634         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
635         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
636         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
637         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
638         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
639         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
640         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
641         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
642         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
643         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
644         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
645         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
646         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
647         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
648         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
649         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
650         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
651         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
652         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
653         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
654         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
655         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
656         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
657         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
658         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
659         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
660         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
662 2015-04-08  Julian Brown  <julian@codesourcery.com>
664         * libgomp.h (target_mem_desc: Remove mem_map field.
665         (acc_dispatch_t): Remove open_device_func, close_device_func,
666         get_device_num_func, set_device_num_func, target_data members.
667         Change create_thread_data_func argument to device number instead of
668         generic pointer.
669         * oacc-async.c (assert.h): Include.
670         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
671         (acc_wait_all, acc_wait_all_async): Use current host thread's
672         active device, not base_dev.
673         * oacc-cuda.c (acc_get_current_cuda_device)
674         (acc_get_current_cuda_context, acc_get_cuda_stream)
675         (acc_set_cuda_stream): Likewise.
676         * oacc-host.c (host_dispatch): Don't set open_device_func,
677         close_device_func, get_device_num_func or set_device_num_func.
678         * oacc-init.c (base_dev, init_key): Remove.
679         (cached_base_dev): New.
680         (name_of_acc_device_t): New.
681         (acc_init_1): Initialise default-numbered device, not zeroth.
682         (acc_shutdown_1): Close all devices of a given type.
683         (goacc_destroy_thread): Don't use base_dev.
684         (lazy_open, lazy_init, lazy_init_and_open): Remove.
685         (goacc_attach_host_thread_to_device): New.
686         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
687         (acc_get_num_devices): Don't use base_dev.
688         (acc_set_device_type): Reimplement.
689         (acc_get_device_type): Don't use base_dev.
690         (acc_get_device_num): Tweak logic.
691         (acc_set_device_num): Likewise.
692         (acc_on_device): Use acc_get_device_type.
693         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
694         (goacc_lazy_initialize): Reimplement with acc_init and
695         goacc_attach_host_thread_to_device.
696         * oacc-int.h (goacc_thread): Add base_dev field.
697         (base_dev): Remove extern declaration.
698         (goacc_attach_host_thread_to_device): Add prototype.
699         * oacc-mem.c (acc_malloc): Use current thread's device instead of
700         base_dev.
701         (acc_free): Likewise.
702         (acc_memcpy_to_device): Likewise.
703         (acc_memcpy_from_device): Likewise.
704         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
705         goacc_lazy_initialize (throughout).
706         (GOACC_parallel): Use tgt_offset to locate target functions.
707         * target.c (gomp_map_vars): Don't set tgt->mem_map.
708         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
709         (gomp_load_plugin_for_device): Remove open_device, close_device,
710         get_device_num, set_device_num openacc hook initialisation. Don't set
711         openacc.target_data.
712         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
713         (GOMP_OFFLOAD_openacc_close_device)
714         (GOMP_OFFLOAD_openacc_get_device_num)
715         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
716         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
717         to int.
718         * plugin/plugin-nvptx.c (ptx_inited): Remove.
719         (instantiated_devices, ptx_dev_lock): New.
720         (struct ptx_image_data): New.
721         (ptx_devices, ptx_images, ptx_image_lock): New.
722         (fini_streams_for_device): Reorder cuStreamDestroy call.
723         (nvptx_get_num_devices): Remove forward declaration.
724         (nvptx_init): Change return type to bool.
725         (nvptx_fini): Remove.
726         (nvptx_attach_host_thread_to_device): New.
727         (nvptx_open_device): Return struct ptx_device* instead of void*.
728         (nvptx_close_device): Change argument type to struct ptx_device*,
729         return type to void.
730         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
731         (kernel_target_data, kernel_host_table): Remove static globals.
732         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
733         (GOMP_OFFLOAD_init_device): Reimplement.
734         (GOMP_OFFLOAD_fini_device): Likewise.
735         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
736         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
737         (GOMP_OFFLOAD_host2dev): Use ORD argument.
738         (GOMP_OFFLOAD_openacc_open_device)
739         (GOMP_OFFLOAD_openacc_close_device)
740         (GOMP_OFFLOAD_openacc_set_device_num)
741         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
742         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
743         (device number).
745         testsuite/
746         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
748 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
750         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
751         * libgomp.h (struct gomp_memory_mapping): Remove.
752         (struct target_mem_desc): Change type of mem_map from
753         gomp_memory_mapping * to splay_tree_s *.
754         (struct gomp_device_descr): Remove register_image_func, get_table_func.
755         Add load_image_func, unload_image_func.
756         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
757         Remove offload_regions_registered.
758         (gomp_init_tables): Remove.
759         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
760         to splay_tree_s *.
761         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
762         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
763         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
764         offload_regions_registered.
765         Initialize load_image_func, unload_image_func, mem_map.root.
766         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
767         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
768         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
769         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
770         gomp_memory_mapping *.  Use dev's lock and splay_tree.
771         (lookup_dev): Use dev's lock.
772         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
773         (acc_is_present): Likewise.
774         (acc_map_data): Likewise.
775         (acc_unmap_data): Likewise.  Use dev's lock.
776         (present_create_copy): Likewise.
777         (delete_copyout): Pass dev to lookup_host instead of mem_map.
778         (update_dev_host): Likewise.
779         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
780         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
781         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
782         (GOMP_OFFLOAD_get_table): Remove
783         (GOMP_OFFLOAD_load_image): New function.
784         (GOMP_OFFLOAD_unload_image): New function.
785         * target.c (register_lock): New mutex for offload image registration.
786         (num_devices): Do not guard with PLUGIN_SUPPORT.
787         (gomp_realloc_unlock): New static function.
788         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
789         before gomp_fatal.
790         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
791         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
792         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
793         mem_map's.
794         (gomp_unmap_vars): Likewise.
795         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
796         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
797         (gomp_offload_image_to_device): New static function.
798         (GOMP_offload_register): Add mutex lock.
799         Call gomp_offload_image_to_device for all initialized devices.
800         Replace gomp_realloc with gomp_realloc_unlock.
801         (GOMP_offload_unregister): New function.
802         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
803         get_table_func from the plugin with calls to init_device_func and
804         gomp_offload_image_to_device.
805         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
806         to splay_tree_s *.
807         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
808         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
809         (GOMP_target_data): Do not call gomp_init_tables.
810         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
811         (gomp_load_plugin_for_device): Replace register_image and get_table
812         with load_image and unload_image in DLSYM ().
813         (gomp_register_images_for_device): Remove function.
814         (gomp_target_init): Do not initialize current_device.mem_map.*,
815         current_device.offload_regions_registered.
816         Remove call to gomp_register_images_for_device.
817         Do not free offload_images and num_offload_images.
819 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
821         PR fortran/65597
822         * testsuite/libgomp.fortran/pr65597.f90: New test.
824 2015-03-27  Tom de Vries  <tom@codesourcery.com>
826         PR testsuite/65594
827         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
828         (init, check): New function.
829         (foo): Change return type to void.
830         (main): Call init and check.
832 2015-03-27  Tom de Vries  <tom@codesourcery.com>
834         PR testsuite/65594
835         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
836         (foo): Use M for non-inner loops to scale down test-case.
838 2015-03-25  Kai Tietz  <ktietz@redhat.com>
840         PR libgomp/64972
841         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
842         (GOACC_data_start): Likewise.
843         * target.c (gomp_map_vars): Likewise.
845 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
847         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
848         hppa*-*-hpux*.
850 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
852         * testsuite/libgomp.c/target-10.c: New test.
853         * testsuite/libgomp.c++/target-4.C: New test.
855 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
857         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
858         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
860 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
862         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
863         * configure.ac (*-*-rtems*): Assume Pthread is supported.
864         (pthread.h): Check for this header file.
865         * configure: Regenerate.
867 2015-02-25  Tom de Vries  <tom@codesourcery.com>
869         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
870         (check_reduction_op, check_reduction_macro, max, min):
871         Declare.
872         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
873         function.
874         (main): Use new functions.
876 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
878         * target.c (gomp_load_plugin_for_device): Use const char * instead of
879         char * for variables holding dlerror return values.
880         (DLSYM_OPT): Ditto.
882 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
884         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
886 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
887             Cesar Philippidis  <cesar@codesourcery.com>
889         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
890         GOACC_ctaid, and GOACC_nctaid routines.
892 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
894         PR c/64824
895         * testsuite/libgomp.c/atomic-18.c: New test.
896         * testsuite/libgomp.c++/atomic-16.C: New test.
898 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
900         PR c/64824
901         PR c/64868
902         * testsuite/libgomp.c/pr64824.c: New test.
903         * testsuite/libgomp.c/pr64868.c: New test.
904         * testsuite/libgomp.c++/pr64824.C: New test.
905         * testsuite/libgomp.c++/pr64868.C: New test.
907 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
909         PR libgomp/64635
910         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
911         Link with -lpthread.
912         * config/aix/plugin-suffix.h: Delete.
914 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
916         PR libgomp/64635
917         * configure.tgt (*-*-aix*): Use config_path "aix posix".
918         (*-*-darwin*): Use config_path "bsd darwin posix".
919         (*-*-hpux*): Use config_path "hpux posix".
920         * target.c: Add include of plugin-suffix.h and use
921         SONAME_SUFFIX macro.
922         * config/aix/plugin-suffix.h: New file.
923         * config/darwin/plugin-suffix.h: New file.
924         * config/hpux/plugin-suffix.h: New file.
925         * config/posix/plugin-suffix.h: New file.
927 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
929         PR middle-end/64734
930         * libgomp.c/pr64734.c: New test.
932 2015-01-23  Tom de Vries  <tom@codesourcery.com>
934         PR libgomp/64672
935         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
937 2015-01-23  Tom de Vries  <tom@codesourcery.com>
939         PR libgomp/64707
940         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
941         dg-options.
943 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
945         PR libgomp/64625
946         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
947         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
948         formal parameter.  Update all users.
949         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
950         Document unused formal parameter.
952 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
954         * oacc-parallel.c: Don't include <alloca.h>.
955         (GOACC_parallel): Use gomp_alloca instead of alloca.
957 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
959         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
961 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
962             James Norris  <jnorris@codesourcery.com>
963             Tom de Vries  <tom@codesourcery.com>
964             Julian Brown  <julian@codesourcery.com>
965             Cesar Philippidis  <cesar@codesourcery.com>
966             Nathan Sidwell  <nathan@codesourcery.com>
967             Tobias Burnus  <burnus@net-b.de>
969         * Makefile.am (search_path): Add $(top_srcdir)/../include.
970         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
971         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
972         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
973         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
974         Include $(top_srcdir)/plugin/Makefrag.am.
975         (nodist_libsubinclude_HEADERS): Add openacc.h.
976         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
977         openacc.f90, openacc.mod, openacc_kinds.mod.
978         (omp_lib.mod): Generalize into...
979         (%.mod): ... this new rule.
980         (openacc_kinds.mod, openacc.mod): New rules.
981         * plugin/configfrag.ac: New file.
982         * configure.ac: Move plugin/offloading support into it.  Include
983         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
984         * plugin/Makefrag.am: New file.
985         * testsuite/Makefile.am (OFFLOAD_TARGETS)
986         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
987         export.
988         (libgomp-test-support.exp): New rule.
989         (all-local): Depend on it.
990         * Makefile.in: Regenerate.
991         * testsuite/Makefile.in: Regenerate.
992         * config.h.in: Likewise.
993         * configure: Likewise.
994         * configure.tgt: Harden shell syntax.
995         * env.c: Include "oacc-int.h".
996         (parse_acc_device_type): New function.
997         (gomp_debug_var, goacc_device_type, goacc_device_num): New
998         variables.
999         (initialize_env): Initialize those.  Call
1000         goacc_runtime_initialize.
1001         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
1002         (gomp_fatal): Call gomp_vfatal.
1003         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
1004         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
1005         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
1006         (splay_tree_node, splay_tree, splay_tree_key)
1007         (struct target_mem_desc, struct splay_tree_key_s)
1008         (struct gomp_memory_mapping, struct acc_dispatch_t)
1009         (struct gomp_device_descr, gomp_acc_insert_pointer)
1010         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
1011         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
1012         (gomp_free_memmap, gomp_fini_device): New declarations.
1013         (gomp_vdebug, gomp_debug): New macros.
1014         Include "splay-tree.h".
1015         * libgomp.map (OACC_2.0): New symbol version.  Use for
1016         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
1017         acc_set_device_type_h_, acc_get_device_type,
1018         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
1019         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
1020         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
1021         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
1022         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
1023         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
1024         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
1025         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
1026         acc_copyin_array_h_, acc_present_or_copyin,
1027         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
1028         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
1029         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
1030         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
1031         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
1032         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
1033         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
1034         acc_update_device, acc_update_device_32_h_,
1035         acc_update_device_64_h_, acc_update_device_array_h_,
1036         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
1037         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
1038         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
1039         acc_is_present_64_h_, acc_is_present_array_h_,
1040         acc_memcpy_to_device, acc_memcpy_from_device,
1041         acc_get_current_cuda_device, acc_get_current_cuda_context,
1042         acc_get_cuda_stream, acc_set_cuda_stream.
1043         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
1044         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
1045         GOACC_update, GOACC_wait, GOACC_get_thread_num,
1046         GOACC_get_num_threads.
1047         (GOMP_PLUGIN_1.0): New symbol version.  Use for
1048         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
1049         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
1050         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
1051         GOMP_PLUGIN_acc_thread.
1052         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
1053         environment variable.
1054         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
1055         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
1056         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
1057         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
1058         (splay_tree_remove): New declarations.
1059         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
1060         (splay_tree_remove, splay_tree_lookup): Move into...
1061         * splay-tree.c: ... this new file.
1062         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
1063         (splay_tree_node, splay_tree, splay_tree_key)
1064         (struct target_mem_desc, struct splay_tree_key_s)
1065         (struct gomp_device_descr): Don't declare.
1066         (num_devices_openmp): New variable.
1067         (gomp_get_num_devices ): Use it.
1068         (gomp_init_targets_once): New function.
1069         (gomp_get_num_devices ): Use it.
1070         (get_kind, gomp_copy_from_async, gomp_free_memmap)
1071         (gomp_fini_device, gomp_register_image_for_device): New functions.
1072         (gomp_map_vars): Add devaddrs parameter.
1073         (gomp_update): Add mm parameter.
1074         (gomp_init_device): Move most of it into...
1075         (gomp_init_tables): ... this new function.
1076         (gomp_register_images_for_device): Remove function.
1077         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
1078         Make them hidden instead of static.
1079         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
1080         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
1081         (GOMP_target_end_data, GOMP_target_update)
1082         (gomp_load_plugin_for_device, gomp_target_init): Update for
1083         OpenACC changes.
1084         * oacc-async.c: New file.
1085         * oacc-cuda.c: Likewise.
1086         * oacc-host.c: Likewise.
1087         * oacc-init.c: Likewise.
1088         * oacc-int.h: Likewise.
1089         * oacc-mem.c: Likewise.
1090         * oacc-parallel.c: Likewise.
1091         * oacc-plugin.c: Likewise.
1092         * oacc-plugin.h: Likewise.
1093         * oacc-ptx.h: Likewise.
1094         * openacc.f90: Likewise.
1095         * openacc.h: Likewise.
1096         * openacc_lib.h: Likewise.
1097         * plugin/plugin-host.c: Likewise.
1098         * plugin/plugin-nvptx.c: Likewise.
1099         * libgomp-plugin.c: Likewise.
1100         * libgomp-plugin.h: Likewise.
1101         * libgomp_target.h: Remove file after merging content into the
1102         former file.  Update all users.
1103         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
1104         (offload_targets_s, offload_targets_s_openacc): New variables.
1105         (check_effective_target_openacc_nvidia_accel_present)
1106         (check_effective_target_openacc_nvidia_accel_selected): New
1107         procedures.
1108         (libgomp_init): Update for OpenACC changes.
1109         * testsuite/libgomp-test-support.exp.in: New file.
1110         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
1111         * testsuite/libgomp.oacc-c/c.exp: Likewise.
1112         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
1113         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
1114         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
1115         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
1116         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
1117         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
1118         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
1119         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
1120         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
1121         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
1122         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
1123         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
1124         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
1125         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
1126         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
1127         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
1128         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
1129         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
1130         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
1131         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
1132         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
1133         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
1134         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
1135         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
1136         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
1137         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
1138         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
1139         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
1140         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
1141         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
1142         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
1143         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
1144         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
1145         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
1146         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
1147         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
1148         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
1149         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
1150         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
1151         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
1152         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1153         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1154         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1155         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
1156         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
1157         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1158         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1159         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1160         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1161         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
1162         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1163         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1164         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1165         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1166         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1167         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
1168         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1169         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
1170         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
1171         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
1172         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1173         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1174         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1175         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
1176         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
1177         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1178         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
1179         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1180         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
1181         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1182         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1183         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1184         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
1185         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
1186         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1187         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1188         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
1189         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
1190         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
1191         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
1192         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1193         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1194         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1195         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
1196         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
1197         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1198         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1199         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
1200         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
1201         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
1202         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
1203         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
1204         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
1205         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
1206         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
1207         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
1208         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
1209         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
1210         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
1211         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
1212         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
1213         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
1214         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
1215         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
1216         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
1217         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
1218         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
1219         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
1220         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
1221         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
1222         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
1223         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
1224         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
1225         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
1226         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
1227         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
1228         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
1229         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
1230         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
1231         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
1232         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
1233         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
1234         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
1235         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
1236         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
1237         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
1238         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
1239         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
1240         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
1241         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
1242         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
1243         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
1244         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
1245         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
1246         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
1247         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
1248         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
1249         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
1250         Likewise.
1251         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
1252         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
1253         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
1254         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
1255         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
1256         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
1257         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1258         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
1259         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
1260         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
1261         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
1262         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
1263         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
1264         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
1265         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
1266         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
1267         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
1268         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
1269         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
1270         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
1271         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
1272         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
1273         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
1274         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
1275         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
1276         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
1277         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
1278         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
1279         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
1280         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
1281         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
1282         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
1283         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
1284         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
1285         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
1286         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
1287         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
1288         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
1289         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
1290         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
1291         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
1292         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
1293         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
1294         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
1295         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
1296         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
1297         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
1298         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
1299         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
1300         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
1301         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
1302         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
1303         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
1304         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
1305         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
1306         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
1307         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
1308         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
1309         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
1310         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
1312 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
1313             Julian Brown  <julian@codesourcery.com>
1314             David Malcolm  <dmalcolm@redhat.com>
1316         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
1317         to "GNU Offloading and Multi Processing Runtime Library".  Change
1318         all users.
1319         * configure: Regenerate.
1320         * libgomp.texi: Update.
1322 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
1324         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
1325         "$tgt_dir/lib32".
1326         * configure: Regenerate.
1328         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
1329         "intelmic" in $offload_targets.
1331 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
1333         Update copyright years.
1335         * libgomp.texi: Bump @copying's copyright year.
1337 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1339         * testsuite/lib/libgomp.exp: Load target-utils.exp.
1340         Move load of target-supportes.exp earlier.
1342 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
1344         * testsuite/libgomp.c/target-9.c: New test.
1346 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
1348         * config.h.in: Regenerate.
1349         * configure: Regenerate.
1350         * configure.ac: Add GCC_CHECK_EMUTLS.
1351         * libgomp.h: Add check for USE_EMUTLS: this case
1352         is equal to HAVE_TLS.
1353         * team.c: Likewise.
1355 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
1357         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
1359 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
1360             Ilya Verbin  <ilya.verbin@intel.com>
1362         * testsuite/libgomp.c/target-critical-1.c: New test.
1364 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
1366         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
1367         to dg-options unless expensive testing is on.
1368         (TESTITERS): Define to N if not defined.
1369         (main): Use TESTITERS instead of N.
1370         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
1371         dg-additional-options depending on whether expensive testing is on.
1372         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
1373         Decrease N to 100000 and CHUNKSZ to 10000.
1375 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
1377         PR fortran/63938
1378         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
1379         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
1381 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
1383         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
1385 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1387         PR bootstrap/63784
1388         * configure: Regenerated.
1390 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
1392         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
1393         vect_simd_clones effective target.
1394         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
1396 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
1398         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
1399         of 32 as block_size.
1400         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
1401         instead of 32 as block_size.
1403 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
1404             Ilya Verbin  <ilya.verbin@intel.com>
1406         * Makefile.in: Regenerate.
1407         * configure: Regenerate.
1408         * configure.ac: Set up offload_additional_options,
1409         offload_additional_lib_paths and offload_targets.
1410         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
1411         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
1412         * testsuite/Makefile.in: Regenerate.
1413         * testsuite/lib/libgomp.exp (libgomp_init): Append
1414         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
1415         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
1416         build directory to LD_LIBRARY_PATH for intelmic offload targets.
1418 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
1419             Ilya Verbin  <ilya.verbin@intel.com>
1420             Kirill Yukhin  <kirill.yukhin@intel.com>
1421             Ilya Tocar  <ilya.tocar@intel.com>
1423         * testsuite/lib/libgomp.exp
1424         (check_effective_target_offload_device): New.
1425         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
1426         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
1427         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
1428         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
1429         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
1430         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
1431         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
1432         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
1433         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
1434         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
1435         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
1436         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
1437         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
1438         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
1439         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
1440         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
1441         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
1442         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
1443         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
1444         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
1445         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
1446         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
1447         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
1448         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
1449         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
1450         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
1451         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
1452         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
1453         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
1454         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
1455         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
1456         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
1457         * testsuite/libgomp.c/target-7.c: Fix test.
1458         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
1459         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
1460         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
1461         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
1462         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
1463         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
1464         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
1465         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
1466         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
1467         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
1468         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
1469         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
1470         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
1471         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
1472         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
1473         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
1474         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
1475         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
1476         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
1477         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
1478         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
1479         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
1480         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
1481         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
1482         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
1483         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
1484         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
1485         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
1486         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
1487         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
1488         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
1490 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
1491             Ilya Verbin  <ilya.verbin@intel.com>
1492             Thomas Schwinge  <thomas@codesourcery.com>
1493             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1495         * libgomp.map (GOMP_4.0.1): New symbol version.
1496         Add GOMP_offload_register.
1497         * libgomp_target.h: New file.
1498         * splay-tree.h: New file.
1499         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
1500         (gomp_target_init): New forward declaration.
1501         (gomp_is_initialized): New static variable.
1502         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
1503         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
1504         New structures.
1505         (offload_images, num_offload_images, devices, num_devices): New static
1506         variables.
1507         (splay_compare): New static function.
1508         (struct gomp_device_descr): New structure.
1509         (gomp_get_num_devices): Call gomp_target_init.
1510         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
1511         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
1512         (GOMP_offload_register): New function.
1513         (GOMP_target): Arrange for host callback to be performed in a separate
1514         initial thread and contention group, inheriting ICVs from
1515         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
1516         Add device initialization and lookup for target function in splay tree.
1517         (GOMP_target_data): Add device initialization and call gomp_map_vars.
1518         (GOMP_target_end_data): Call gomp_unmap_vars.
1519         (GOMP_target_update): Add device initialization and call gomp_update.
1520         (gomp_load_plugin_for_device, gomp_register_images_for_device)
1521         (gomp_target_init): New static functions.
1523 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
1524             Thomas Schwinge  <thomas@codesourcery.com>
1525             Ilya Verbin  <ilya.verbin@intel.com>
1526             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1528         * config.h.in: Regenerate.
1529         * configure: Regenerate.
1530         * configure.ac: Check for libdl, required for plugin support.
1531         (PLUGIN_SUPPORT): Define if plugins are supported.
1532         (enable_offload_targets): Support Intel MIC targets.
1533         (OFFLOAD_TARGETS): List of target names suitable for offloading.
1535 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1537         PR target/63610
1538         * configure: Regenerate.
1540 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1542         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
1544 2014-10-06  Marek Polacek  <polacek@redhat.com>
1546         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
1547         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
1548         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
1549         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
1551 2014-10-06  Marek Polacek  <polacek@redhat.com>
1553         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
1554         * testsuite/libgomp.c/nqueens-1.c: Likewise.
1555         * testsuite/libgomp.c/pr26943-3.c: Likewise.
1556         * testsuite/libgomp.c/pr26943-4.c: Likewise.
1557         * testsuite/libgomp.c/pr36802-2.c: Likewise.
1558         * testsuite/libgomp.c/pr36802-3.c: Likewise.
1559         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
1560         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
1561         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
1562         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
1563         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
1564         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
1565         * testsuite/libgomp.c/omp-single-1.c: Likewise.
1566         * testsuite/libgomp.c/omp-single-2.c: Likewise.
1567         * testsuite/libgomp.c/omp_matvec.c: Likewise.
1568         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
1569         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
1570         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
1571         declarations.
1573 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
1575         PR libgomp/61200
1576         * testsuite/libgomp.c/pr61200.c: New test.
1578 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
1580         PR c++/63248
1581         * testsuite/libgomp.c++/pr63248.C: New test.
1583 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
1585         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
1586         is not zero, but taskgroup->children is NULL and there are
1587         any task->children, schedule those instead of waiting.
1588         * testsuite/libgomp.c/depend-6.c: New test.
1589         * testsuite/libgomp.c/depend-7.c: New test.
1590         * testsuite/libgomp.c/depend-8.c: New test.
1591         * testsuite/libgomp.c/depend-9.c: New test.
1592         * testsuite/libgomp.c/depend-10.c: New test.
1594 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
1596         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
1597         (struct gomp_taskwait): New type.
1598         (struct gomp_task): Add taskwait and parent_depends_on, remove
1599         in_taskwait and taskwait_sem fields.
1600         (gomp_finish_task): Don't destroy taskwait_sem.
1601         * task.c (gomp_init_task): Don't init in_taskwait, instead init
1602         taskwait and parent_depends_on.
1603         (GOMP_task): For if (0) tasks with depend clause that depend on
1604         earlier tasks don't defer them, instead call
1605         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
1606         Initialize redundant_out field, for redundant out entries just
1607         move them at the end of linked list instead of removing them
1608         completely, and set redundant_out flag instead of redundant.
1609         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
1610         that task.
1611         (gomp_task_run_post_handle_dependers): If parent is in
1612         gomp_task_maybe_wait_for_dependencies and newly runnable task
1613         is not parent_depends_on, queue it in parent->children linked
1614         list after all runnable tasks with parent_depends_on set.
1615         Adjust for addition of taskwait indirection.
1616         (gomp_task_run_post_remove_parent): If parent is in
1617         gomp_task_maybe_wait_for_dependencies and task to be removed
1618         is parent_depends_on, decrement n_depend and if needed awake
1619         parent.  Adjust for addition of taskwait indirection.
1620         (GOMP_taskwait): Adjust for addition of taskwait indirection.
1621         (gomp_task_maybe_wait_for_dependencies): New function.
1622         * testsuite/libgomp.c/depend-5.c: New test.
1624 2014-07-13  Tobias Burnus  <burnus@net-b.de>
1626         * testsuite/libgomp.fortran/pr34020.f90: Make compile
1627         with TS 18508/Fortran 2015.
1629 2014-07-06  Marek Polacek  <polacek@redhat.com>
1631         PR c/6940
1632         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
1634 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
1636         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
1637         matches regex $lang_source_re, add $lang_include_flags to options.
1638         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
1639         * testsuite/libgomp.c++/c++.exp: Likewise.
1640         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
1641         and lang_include_flags instead of adding -fintrinsic-modules-path= to
1642         ALWAYS_CFLAGS.
1643         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
1645 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
1647         * testsuite/libgomp.fortran/fortran.exp: Explain
1648         gfortran-dg-runtest usage.
1650 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
1652         * testsuite/libgomp.fortran/simd5.f90: New test.
1653         * testsuite/libgomp.fortran/simd6.f90: New test.
1654         * testsuite/libgomp.fortran/simd7.f90: New test.
1656 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1658         * testsuite/libgomp.c/for-2.c: Define SC to static for
1659         #pragma omp for simd testing.
1660         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
1661         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
1662         SC macro.
1663         * testsuite/libgomp.c/simd-14.c: New test.
1664         * testsuite/libgomp.c/simd-15.c: New test.
1665         * testsuite/libgomp.c/simd-16.c: New test.
1666         * testsuite/libgomp.c/simd-17.c: New test.
1667         * testsuite/libgomp.c++/for-10.C: Define SC to static for
1668         #pragma omp for simd testing.
1669         * testsuite/libgomp.c++/simd10.C: New test.
1670         * testsuite/libgomp.c++/simd11.C: New test.
1671         * testsuite/libgomp.c++/simd12.C: New test.
1672         * testsuite/libgomp.c++/simd13.C: New test.
1674         * testsuite/libgomp.fortran/aligned1.f03: New test.
1675         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
1676         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
1677         tasks with !$omp parallel !$omp single.
1678         * testsuite/libgomp.fortran/target8.f90: New test.
1679         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
1680         not to use trim in the combiner, instead call elemental function.
1681         (fn): New elemental function.
1682         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
1683         Make elemental.
1684         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
1685         omp_in): Likewise.
1686         * testsuite/libgomp.fortran/udr12.f90: New test.
1687         * testsuite/libgomp.fortran/udr13.f90: New test.
1688         * testsuite/libgomp.fortran/udr14.f90: New test.
1689         * testsuite/libgomp.fortran/udr15.f90: New test.
1691 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
1693         * omp_lib.f90.in (openmp_version): Set to 201307.
1694         * omp_lib.h.in (openmp_version): Likewise.
1695         * testsuite/libgomp.c/target-8.c: New test.
1696         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
1697         and inbranch clauses.
1698         * testsuite/libgomp.fortran/depend-3.f90: New test.
1699         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
1700         openmp_version.
1701         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1702         * testsuite/libgomp.fortran/target1.f90: New test.
1703         * testsuite/libgomp.fortran/target2.f90: New test.
1704         * testsuite/libgomp.fortran/target3.f90: New test.
1705         * testsuite/libgomp.fortran/target4.f90: New test.
1706         * testsuite/libgomp.fortran/target5.f90: New test.
1707         * testsuite/libgomp.fortran/target6.f90: New test.
1708         * testsuite/libgomp.fortran/target7.f90: New test.
1710 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
1712         PR fortran/60928
1713         * testsuite/libgomp.fortran/allocatable9.f90: New test.
1714         * testsuite/libgomp.fortran/allocatable10.f90: New test.
1715         * testsuite/libgomp.fortran/allocatable11.f90: New test.
1716         * testsuite/libgomp.fortran/allocatable12.f90: New test.
1717         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
1718         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
1719         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
1720         * testsuite/libgomp.fortran/associate1.f90: New test.
1721         * testsuite/libgomp.fortran/associate2.f90: New test.
1722         * testsuite/libgomp.fortran/procptr1.f90: New test.
1724 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
1726         * testsuite/libgomp.fortran/simd1.f90: New test.
1727         * testsuite/libgomp.fortran/udr1.f90: New test.
1728         * testsuite/libgomp.fortran/udr2.f90: New test.
1729         * testsuite/libgomp.fortran/udr3.f90: New test.
1730         * testsuite/libgomp.fortran/udr4.f90: New test.
1731         * testsuite/libgomp.fortran/udr5.f90: New test.
1732         * testsuite/libgomp.fortran/udr6.f90: New test.
1733         * testsuite/libgomp.fortran/udr7.f90: New test.
1734         * testsuite/libgomp.fortran/udr8.f90: New test.
1735         * testsuite/libgomp.fortran/udr9.f90: New test.
1736         * testsuite/libgomp.fortran/udr10.f90: New test.
1737         * testsuite/libgomp.fortran/udr11.f90: New test.
1739 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
1741         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
1742         vect_simd_clones effective target.
1743         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
1745 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
1747         PR middle-end/61252
1748         * testsuite/libgomp.c++/simd-9.C: New test.
1750 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
1752         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
1753         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
1754         texts according to their @menu entry positions.
1756 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
1758         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
1759         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
1760         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
1761         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
1762         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
1763         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
1764         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
1765         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
1766         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
1767         * testsuite/libgomp.fortran/depend-1.f90: New test.
1768         * testsuite/libgomp.fortran/depend-2.f90: New test.
1769         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
1770         * testsuite/libgomp.fortran/simd1.f90: New test.
1771         * testsuite/libgomp.fortran/simd2.f90: New test.
1772         * testsuite/libgomp.fortran/simd3.f90: New test.
1773         * testsuite/libgomp.fortran/simd4.f90: New test.
1774         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
1776 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
1778         * testsuite/libgomp.c/simd-10.c: New test.
1779         * testsuite/libgomp.c/simd-11.c: New test.
1780         * testsuite/libgomp.c/simd-12.c: New test.
1781         * testsuite/libgomp.c/simd-13.c: New test.
1783 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
1785         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
1786         atomic type clauses in any order and optional comma in between.
1787         * testsuite/libgomp.c++/atomic-15.C: Likewise.
1788         * testsuite/libgomp.c/atomic-17.c: Likewise.
1790         * testsuite/libgomp.c/simd-7.c: New test.
1791         * testsuite/libgomp.c/simd-8.c: New test.
1792         * testsuite/libgomp.c/simd-9.c: New test.
1793         * testsuite/libgomp.c/loop-16.c: New test.
1795 2014-04-02  Richard Henderson  <rth@redhat.com>
1797         * config/linux/futex.h (futex_wait): Get error value from errno.
1798         (futex_wake): Likewise.
1800 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
1802         PR c++/60331
1803         * testsuite/libgomp.c++/udr-11.C: New test.
1804         * testsuite/libgomp.c++/udr-12.C: New test.
1805         * testsuite/libgomp.c++/udr-13.C: New test.
1806         * testsuite/libgomp.c++/udr-14.C: New test.
1807         * testsuite/libgomp.c++/udr-15.C: New test.
1808         * testsuite/libgomp.c++/udr-16.C: New test.
1809         * testsuite/libgomp.c++/udr-17.C: New test.
1810         * testsuite/libgomp.c++/udr-18.C: New test.
1811         * testsuite/libgomp.c++/udr-19.C: New test.
1813 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1815         Update copyright years
1817 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1819         * hashtab.h: Use the standard form for the copyright notice.
1821 2014-01-02  Tobias Burnus  <burnus@net-b.de>
1823         * libgomp.texi: Bump @copying's copyright year.
1825 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
1827         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
1828         alloca () with __builtin_alloca ().
1829         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
1830         * testsuite/libgomp.c/lock-3.c: Likewise.
1831         * testsuite/libgomp.c/pr48591.c: Likewise.
1833 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
1835         PR testsuite/59534
1836         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
1837         comparisons.
1839 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
1841         PR libgomp/58756
1842         * testsuite/libgomp.c/pr58756.c: New test.
1844 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
1846         PR libgomp/59467
1847         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
1848         !$omp parallel.
1850 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
1852         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
1853         ALWAYS_CFLAGS.
1854         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
1855         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
1856         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
1857         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
1858         Likewise.
1860         * libgomp_g.h: Include <stddef.h> for size_t.
1862         * libgomp.spec.in: Update comment about libgomp's dependencies.
1863         * configure.ac: Likewise.
1864         * configure: Regenerate.
1866 2013-10-16  Tobias Burnus  <burnus@net-b.de>
1868         * libgomp.texi: (Runtime Library Routines): Update references for
1869         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
1870         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
1871         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
1872         (Environment Variables): Update references for OpenMP 4.0. Add
1873         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
1874         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
1875         order.
1877 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
1879         * env.c (parse_bind_var): Initialize value to avoid
1880         (false positive) warning.
1882 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
1884         PR libgomp/58691
1885         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
1886         to check variable.
1887         (gomp_init_num_threads): Move i variable declaration into
1888         #ifdef CPU_ALLOC_SIZE block.
1889         * config/linux/affinity.c (gomp_affinity_init_level): Test
1890         gomp_places_list_len == 0 rather than gomp_places_list == 0
1891         when checking for topology reading error.
1892         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
1893         * env.c (parse_affinity): Add ignore argument, if true, don't populate
1894         gomp_places_list, only parse env var and always return false.
1895         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
1896         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
1897         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
1898         and either of these variables were parsed correctly into a places
1899         list.
1901 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
1902             Jakub Jelinek  <jakub@redhat.com>
1904         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
1905         of 5 loopfn matches.
1906         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1907         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1908         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
1909         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1910         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1911         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1912         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1913         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1915 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
1917         * Makefile.am (omp_lib.mod): Streamline rule.
1918         * Makefile.in: Regenerate.
1920         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
1921         exceptions.
1923         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
1924         * testsuite/libgomp.fortran/lib1.f90: Likewise.
1925         * testsuite/libgomp.fortran/lib2.f: Likewise.
1926         * testsuite/libgomp.fortran/lib3.f: Likewise.
1928         * configure.ac: Typo fix.
1929         * configure: Regenerate.
1931         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
1932         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1934         * omp.h.in: Don't touch the user's namespace.
1936 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
1937             Tobias Burnus  <burnus@net-b.de>
1938             Richard Henderson  <rth@redhat.com>
1940         * target.c: New file.
1941         * Makefile.am (libgomp_la_SOURCES): Add target.c.
1942         * Makefile.in: Regenerated.
1943         * libgomp_g.h (GOMP_task): Add depend argument.
1944         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1945         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1946         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
1947         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
1948         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
1949         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
1950         GOMP_taskgroup_start, GOMP_taskgroup_end,
1951         GOMP_parallel_sections): New prototypes.
1952         * fortran.c (omp_is_initial_device): Add ialias_redirect.
1953         (omp_is_initial_device_): New function.
1954         (ULP, STR1, STR2, ialias_redirect): Removed.
1955         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
1956         omp_set_default_device_8_, omp_get_default_device_,
1957         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
1958         functions.
1959         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1960         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1961         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
1962         @@GOMP_4.0.
1963         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
1964         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
1965         omp_set_default_device, omp_set_default_device_,
1966         omp_set_default_device_8_, omp_get_default_device,
1967         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
1968         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
1969         omp_get_team_num_): Export @@OMP_4.0.
1970         * team.c (struct gomp_thread_start_data): Add place field.
1971         (gomp_thread_start): Clear thr->thread_pool and
1972         thr->task before returning.  Use gomp_team_barrier_wait_final
1973         instead of gomp_team_barrier_wait.  Initialize thr->place.
1974         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
1975         team_cancelled and task_queued_count fields.
1976         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
1977         before calling pthread_exit.
1978         (gomp_free_thread): No longer static.  Use
1979         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
1980         (gomp_team_start): Add flags argument.  Set
1981         thr->thread_pool->threads_busy to nthreads immediately after creating
1982         new pool.  Use gomp_managed_threads_lock instead of
1983         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
1984         (gomp_team_end): Use gomp_managed_threads_lock instead of
1985         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
1986         of gomp_team_barrier_wait.  If team->team_cancelled, call
1987         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
1988         rather than thr->ts.work_share.
1989         (initialize_team): Don't call gomp_sem_init here.
1990         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
1991         caller.
1992         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
1993         * env.c (gomp_global_icv): Add default_device_var, target_data and
1994         bind_var initializers.
1995         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1996         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1997         gomp_places_list_len): New variables.
1998         (parse_bind_var, parse_one_place, parse_places_var): New functions.
1999         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
2000         sized places.
2001         (gomp_cancel_var): New global variable.
2002         (parse_int): New function.
2003         (handle_omp_display_env): New function.
2004         (initialize_env): Use it.  Initialize default_device_var.
2005         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
2006         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
2007         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
2008         been successfully parsed (and call gomp_init_affinity in that case).
2009         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2010         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2011         omp_get_team_num, omp_is_initial_device): New functions.
2012         * libgomp.h: Include stdlib.h.
2013         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
2014         Define.
2015         (struct target_mem_desc): Forward declare.
2016         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
2017         and thread_limit_var fields.
2018         (gomp_get_num_devices): New prototype.
2019         (gomp_cancel_var): New extern decl.
2020         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
2021         team_cancelled and task_queued_count fields.  Add comments about
2022         task_{,queued_,running_}count.
2023         (gomp_cancel_kind): New enum.
2024         (gomp_work_share_end_cancel): New prototype.
2025         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
2026         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
2027         and depend fields.
2028         (struct gomp_taskgroup): New type.
2029         (struct gomp_task_depend_entry,
2030         struct gomp_dependers_vec): New types.
2031         (gomp_finish_task): Free depend_hash if non-NULL.
2032         (struct gomp_team_state): Add place_partition_off
2033         and place_partition_len fields.
2034         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
2035         gomp_places_list_len): New extern decls.
2036         (struct gomp_thread): Add place field.
2037         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
2038         (gomp_init_thread_affinity): Add place argument.
2039         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2040         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2041         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2042         gomp_affinity_init_level, gomp_affinity_print_place): New
2043         prototypes.
2044         (gomp_team_start): Add flags argument.
2045         (gomp_thread_limit_var, gomp_remaining_threads_count,
2046         gomp_remaining_threads_lock): Remove.
2047         (gomp_managed_threads_lock): New variable.
2048         (struct gomp_thread_pool): Add threads_busy field.
2049         (gomp_free_thread): New prototype.
2050         * task.c: Include hashtab.h.
2051         (hash_entry_type): New typedef.
2052         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
2053         (gomp_init_task): Clear dependers, depend_hash, depend_count,
2054         copy_ctors_done and taskgroup fields.
2055         (GOMP_task): Add depend argument, handle depend clauses.  If
2056         gomp_team_barrier_cancelled or if it's taskgroup has been
2057         cancelled, don't queue or start new tasks.  Set copy_ctors_done
2058         field if needed.  Initialize taskgroup field.  If copy_ctors_done
2059         and already cancelled, don't discard the task.  If taskgroup is
2060         non-NULL, enqueue the task into taskgroup queue.  Increment
2061         num_children field in taskgroup.  Increment task_queued_count.
2062         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
2063         gomp_task_run_post_remove_taskgroup): New inline functions.
2064         (gomp_task_run_post_handle_depend_hash,
2065         gomp_task_run_post_handle_dependers,
2066         gomp_task_run_post_handle_depend): New functions.
2067         (GOMP_taskwait): Use them.  If more than one new tasks
2068         have been queued, wake other threads if needed.
2069         (gomp_barrier_handle_tasks): Likewise.  If
2070         gomp_team_barrier_cancelled, don't start any new tasks, just free
2071         all tasks.
2072         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
2073         * omp_lib.f90.in
2074         (omp_proc_bind_kind, omp_proc_bind_false,
2075         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
2076         omp_proc_bind_spread): New params.
2077         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2078         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2079         omp_get_team_num, omp_is_initial_device): New interfaces.
2080         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
2081         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
2082         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
2083         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
2084         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
2085         useless use omp_lib_kinds.
2086         * omp.h.in (omp_proc_bind_t): New typedef.
2087         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2088         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2089         omp_get_team_num, omp_is_initial_device): New prototypes.
2090         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
2091         through to gomp_team_start.
2092         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
2093         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
2094         Adjust gomp_parallel_loop_start callers.
2095         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
2096         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
2097         GOMP_loop_end_cancel): New functions.
2098         (GOMP_parallel_end): Add ialias_redirect.
2099         * hashtab.h: New file.
2100         * libgomp.texi (Environment Variables): Minor cleanup,
2101         update section refs to OpenMP 4.0rc2.
2102         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
2103         environment variables.
2104         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
2105         team->work_shares_to_free to thr->ts.work_share before calling
2106         free_work_share.
2107         (gomp_work_share_end_cancel): New function.
2108         * config/linux/proc.c: Include errno.h.
2109         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
2110         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
2111         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
2112         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
2113         gomp_cpuset_size is sizeof (cpu_set_t).
2114         (gomp_init_num_threads): Initialize gomp_cpuset_size,
2115         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
2116         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
2117         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
2118         contain any logical CPUs.
2119         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
2120         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
2121         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
2122         pthread_getaffinity_np.  Check gomp_places_list instead of
2123         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
2124         * config/linux/bar.c (gomp_barrier_wait_end,
2125         gomp_barrier_wait_last): Use BAR_* defines.
2126         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
2127         from state where needed.  Set work_share_cancelled to 0 on last
2128         thread.
2129         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
2130         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
2131         functions.
2132         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
2133         Add cpusetsize argument.
2134         (gomp_cpuset_size, gomp_cpusetp): Declare.
2135         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
2136         (affinity_counter): Remove.
2137         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
2138         if CPU_ALLOC_SIZE isn't defined.
2139         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
2140         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
2141         bind current thread to the first place.
2142         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
2143         pthread_setaffinity_np to gomp_places_list[place].
2144         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2145         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2146         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2147         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
2148         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
2149         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
2150         (gomp_barrier_t): Add awaited_final field.
2151         (gomp_barrier_init): Initialize awaited_final field.
2152         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
2153         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
2154         prototypes.
2155         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
2156         defines.
2157         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
2158         gomp_team_barrier_cancelled): New inline functions.
2159         (gomp_barrier_last_thread,
2160         gomp_team_barrier_set_task_pending,
2161         gomp_team_barrier_clear_task_pending,
2162         gomp_team_barrier_set_waiting_for_tasks,
2163         gomp_team_barrier_waiting_for_tasks,
2164         gomp_team_barrier_done): Use BAR_* defines.
2165         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
2166         (gomp_barrier_wait_end): Use BAR_* defines.
2167         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
2168         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
2169         Use BAR_* defines.
2170         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
2171         gomp_team_barrier_cancel): New functions.
2172         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
2173         argument.
2174         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2175         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2176         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2177         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
2178         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
2179         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
2180         (gomp_barrier_t): Add cancellable field.
2181         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
2182         gomp_team_barrier_cancel): New prototypes.
2183         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
2184         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
2185         gomp_team_barrier_cancelled): New inline functions.
2186         (gomp_barrier_wait_start, gomp_barrier_last_thread,
2187         gomp_team_barrier_set_task_pending,
2188         gomp_team_barrier_clear_task_pending,
2189         gomp_team_barrier_set_waiting_for_tasks,
2190         gomp_team_barrier_waiting_for_tasks,
2191         gomp_team_barrier_done): Use BAR_* defines.
2192         * barrier.c (GOMP_barrier_cancel): New function.
2193         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
2194         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
2195         omp_proc_bind_spread): New params.
2196         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2197         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2198         omp_get_team_num, omp_is_initial_device): New externals.
2199         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
2200         New functions.
2201         (gomp_resolve_num_threads): Adjust for thread_limit now being in
2202         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
2203         infinity.  If not nested, just return minimum of max_num_threads
2204         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
2205         to the returned value.  Otherwise, don't update atomically
2206         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
2207         (GOMP_parallel_end): Adjust for thread_limit now being in
2208         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
2209         infinity.  Adjust threads_busy in the pool rather than
2210         gomp_remaining_threads_count.  Remember team->nthreads and call
2211         gomp_team_end before adjusting threads_busy, if not nested
2212         afterwards, just set it to 1 non-atomically.  Add ialias.
2213         (GOMP_parallel_start): Adjust gomp_team_start caller.
2214         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
2215         * testsuite/libgomp.c/affinity-1.c: New test.
2216         * testsuite/libgomp.c/atomic-15.c: New test.
2217         * testsuite/libgomp.c/atomic-16.c: New test.
2218         * testsuite/libgomp.c/atomic-17.c: New test.
2219         * testsuite/libgomp.c/cancel-for-1.c: New test.
2220         * testsuite/libgomp.c/cancel-for-2.c: New test.
2221         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
2222         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
2223         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
2224         * testsuite/libgomp.c/cancel-sections-1.c: New test.
2225         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
2226         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
2227         * testsuite/libgomp.c/depend-1.c: New test.
2228         * testsuite/libgomp.c/depend-2.c: New test.
2229         * testsuite/libgomp.c/depend-3.c: New test.
2230         * testsuite/libgomp.c/depend-4.c: New test.
2231         * testsuite/libgomp.c/for-1.c: New test.
2232         * testsuite/libgomp.c/for-1.h: New file.
2233         * testsuite/libgomp.c/for-2.c: New test.
2234         * testsuite/libgomp.c/for-2.h: New file.
2235         * testsuite/libgomp.c/for-3.c: New test.
2236         * testsuite/libgomp.c/pr58392.c: New test.
2237         * testsuite/libgomp.c/simd-1.c: New test.
2238         * testsuite/libgomp.c/simd-2.c: New test.
2239         * testsuite/libgomp.c/simd-3.c: New test.
2240         * testsuite/libgomp.c/simd-4.c: New test.
2241         * testsuite/libgomp.c/simd-5.c: New test.
2242         * testsuite/libgomp.c/simd-6.c: New test.
2243         * testsuite/libgomp.c/target-1.c: New test.
2244         * testsuite/libgomp.c/target-2.c: New test.
2245         * testsuite/libgomp.c/target-3.c: New test.
2246         * testsuite/libgomp.c/target-4.c: New test.
2247         * testsuite/libgomp.c/target-5.c: New test.
2248         * testsuite/libgomp.c/target-6.c: New test.
2249         * testsuite/libgomp.c/target-7.c: New test.
2250         * testsuite/libgomp.c/taskgroup-1.c: New test.
2251         * testsuite/libgomp.c/thread-limit-1.c: New test.
2252         * testsuite/libgomp.c/thread-limit-2.c: New test.
2253         * testsuite/libgomp.c/thread-limit-3.c: New test.
2254         * testsuite/libgomp.c/udr-1.c: New test.
2255         * testsuite/libgomp.c/udr-2.c: New test.
2256         * testsuite/libgomp.c/udr-3.c: New test.
2257         * testsuite/libgomp.c++/affinity-1.C: New test.
2258         * testsuite/libgomp.c++/atomic-10.C: New test.
2259         * testsuite/libgomp.c++/atomic-11.C: New test.
2260         * testsuite/libgomp.c++/atomic-12.C: New test.
2261         * testsuite/libgomp.c++/atomic-13.C: New test.
2262         * testsuite/libgomp.c++/atomic-14.C: New test.
2263         * testsuite/libgomp.c++/atomic-15.C: New test.
2264         * testsuite/libgomp.c++/cancel-for-1.C: New test.
2265         * testsuite/libgomp.c++/cancel-for-2.C: New test.
2266         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
2267         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
2268         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
2269         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
2270         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
2271         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
2272         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
2273         * testsuite/libgomp.c++/cancel-test.h: New file.
2274         * testsuite/libgomp.c++/for-9.C: New test.
2275         * testsuite/libgomp.c++/for-10.C: New test.
2276         * testsuite/libgomp.c++/for-11.C: New test.
2277         * testsuite/libgomp.c++/simd-1.C: New test.
2278         * testsuite/libgomp.c++/simd-2.C: New test.
2279         * testsuite/libgomp.c++/simd-3.C: New test.
2280         * testsuite/libgomp.c++/simd-4.C: New test.
2281         * testsuite/libgomp.c++/simd-5.C: New test.
2282         * testsuite/libgomp.c++/simd-6.C: New test.
2283         * testsuite/libgomp.c++/simd-7.C: New test.
2284         * testsuite/libgomp.c++/simd-8.C: New test.
2285         * testsuite/libgomp.c++/target-1.C: New test.
2286         * testsuite/libgomp.c++/target-2.C: New test.
2287         * testsuite/libgomp.c++/target-2-aux.cc: New file.
2288         * testsuite/libgomp.c++/target-3.C: New test.
2289         * testsuite/libgomp.c++/taskgroup-1.C: New test.
2290         * testsuite/libgomp.c++/udr-1.C: New test.
2291         * testsuite/libgomp.c++/udr-2.C: New test.
2292         * testsuite/libgomp.c++/udr-3.C: New test.
2293         * testsuite/libgomp.c++/udr-4.C: New test.
2294         * testsuite/libgomp.c++/udr-5.C: New test.
2295         * testsuite/libgomp.c++/udr-6.C: New test.
2296         * testsuite/libgomp.c++/udr-7.C: New test.
2297         * testsuite/libgomp.c++/udr-8.C: New test.
2298         * testsuite/libgomp.c++/udr-9.C: New test.
2300 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
2302         PR testsuite/57605
2303         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
2304         ALWAYS_CFLAGS.
2306 2013-09-20  Alan Modra  <amodra@gmail.com>
2308         * configure: Regenerate.
2310 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
2312         * testsuite/libgomp.c/sections-2.c: New test.
2314 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2316         * testsuite/libgomp.fortran/strassen.f90:
2317         Add dg-skip-if aarch64_tiny.
2319 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
2320             Cesar Philippidis  <cesar@codesourcery.com>
2322         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
2323         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
2324         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
2325         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2326         * testsuite/libgomp.graphite/graphite.exp: Likewise.
2327         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
2328         Use dg-runtest rather than gfortran-dg-runtest.
2330 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2332         * testsuite/libgomp.c/icv-2.c: Extend current handling of
2333         Linux-based x86 systems to cover all GNU systems.
2334         * testsuite/libgomp.c/lock-3.c: Likewise.
2335         * testsuite/libgomp.c/pr48591.c: Likewise.
2337 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
2339         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
2340         GNU/Hurd, as done for Linux-based systems.
2342         * config/posix/ptrlock.h: Fix comment.
2344 2013-05-27  Tobias Burnus  <burnus@net-b.de>
2346         PR fortran/57423
2347         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
2348         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
2349         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
2350         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
2351         omp_destroy_nest_lock): Correct arguments to match the one in
2352         the OpenMP spec.
2353         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
2354         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
2355         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
2356         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
2358 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
2360         * testsuite/libgomp.c/loop-13.c: New test.
2361         * testsuite/libgomp.c/loop-14.c: New test.
2362         * testsuite/libgomp.c/loop-15.c: New test.
2363         * testsuite/libgomp.c++/loop-13.C: New test.
2364         * testsuite/libgomp.c++/loop-14.C: New test.
2365         * testsuite/libgomp.c++/loop-15.C: New test.
2367 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
2369         PR middle-end/56217
2370         * testsuite/libgomp.c++/pr56217.C: New test.
2372 2013-02-01  Alan Modra  <amodra@gmail.com>
2374         * task.c (GOMP_task, GOMP_taskwait): Comment.
2376 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
2377             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
2379         PR libgomp/55561
2380         * config/linux/wait.h (do_spin): Use atomic load for addr.
2381         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
2382         for intptr and ptrlock.
2383         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
2384         for ptrlock.
2386 2013-01-22  Alan Modra  <amodra@gmail.com>
2388         PR libgomp/51376
2389         PR libgomp/56073
2390         * task.c (GOMP_task): Revert 2011-12-09 change.
2391         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
2392         barrier to read task->children..
2393         (gomp_barrier_handle_tasks): ..and matching atomic store with
2394         release barrier here when setting parent->children to NULL.
2396 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
2397             Tobias Burnus  <burnus@net-b.de>
2399         PR driver/55884
2400         * testsuite/libgomp.fortran/fortran.exp: Use
2401         -fintrinsic-modules-path= instead of
2402         -fintrinsic-modules-path.
2404 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
2406         Update copyright years.
2408 2012-12-19  Tobias Burnus  <burnus@net-b.de>
2410         * testsuite/libgomp.fortran/fortran.exp: Set
2411         -fintrinsic-modules-path.
2413 2012-12-19  Tobias Burnus  <burnus@net-b.de>
2415         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
2416         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
2418 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
2420         PR libgomp/55411
2421         * team.c (gomp_free_thread): Decrease gomp_managed_threads
2422         if pool had any threads_used.
2424 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
2426         * testsuite/libgomp.c++/pr24455.C: Use
2427         -Wl,-undefined,dynamic_lookup on darwin.
2429 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
2431         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
2433 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
2435         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
2437 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
2438             Jim MacArthur  <jim.macarthur@arm.com>
2439             Marcus Shawcroft  <marcus.shawcroft@arm.com>
2440             Nigel Stephens  <nigel.stephens@arm.com>
2441             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2442             Richard Earnshaw  <rearnsha@arm.com>
2443             Sofiane Naci  <sofiane.naci@arm.com>
2444             Stephen Thomas  <stephen.thomas@arm.com>
2445             Tejas Belagod  <tejas.belagod@arm.com>
2446             Yufeng Zhang  <yufeng.zhang@arm.com>
2448         * configure.tgt: Add AArch64.
2450 2012-10-04  Jason Merrill  <jason@redhat.com>
2452         * testsuite/libgomp.c++/tls-init1.C: New.
2454 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
2456         * configure: Regenerated.
2458 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
2460         * config/linux/mips/futex.h (sys_futex0): Change to static
2461         function with noinline, nomips16 attributes under MIPS16. Adjust
2462         asm statement to place 'li v0,SYS_futex' immediately before
2463         syscall insn.
2465 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
2467         * libgomp.texi (Library Index): Renamed from "Index" to prevent
2468         conflict with index.html on case-insensitive file systems.
2470 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
2472         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
2473         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
2475 2012-07-02  Richard Guenther  <rguenther@suse.de>
2476             Michael Matz  <matz@suse.de>
2477             Tobias Grosser <tobias@grosser.es>
2478             Sebastian Pop <sebpop@gmail.com>
2480         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
2481         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
2482         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
2483         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
2485 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
2487         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
2489 2012-06-22  Richard Guenther  <rguenther@suse.de>
2491         Merge from graphite branch
2492         2012-01-13  Tobias Grosser  <tobias@grosser.es>
2494         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2495         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
2497 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
2499         PR middle-end/53580
2500         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
2501         use GOMP_barrier () call instead.
2502         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2503         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2504         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
2505         call GOMP_barrier instead.
2506         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2508 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
2510         PR libgomp/52993
2511         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
2512         argument to memset call.
2514 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2516         * configure: Regenerated.
2518 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2520         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
2522 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
2524         PR bootstrap/52812
2525         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
2527 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
2529         PR middle-end/52547
2530         * testsuite/libgomp.c/pr52547.c: New test.
2532 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2534         * testsuite/lib/libgomp.exp: load fortran-modules.exp
2536 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2538         * configure.tgt (mips-sgi-irix6*): Remove.
2540 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2542         * configure.tgt (alpha*-dec-osf*): Remove.
2544         * config/osf/sem.h: Remove.
2545         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
2547 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
2549         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
2551 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2553         PR libstdc++/52188
2554         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
2555         Remove ENABLE_SYMVERS_SOL2.
2556         * configure: Regenerate.
2557         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
2558         (PREPROCESS): New variable.
2559         (libgomp.ver): New target.
2560         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
2561         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
2562         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
2563         Use libgomp.ver.
2564         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
2565         * Makefile.in: Regenerate.
2567 2012-02-14  Walter Lee  <walt@tilera.com>
2569         * configure.tgt: Handle tilegx and tilepro.
2570         * config/linux/tile/futex.h: New file.
2572 2012-02-08  Richard Guenther  <rguenther@suse.de>
2574         PR tree-optimization/46886
2575         * testsuite/libgomp.c/pr46886.c: New testcase.
2577 2012-01-25  Matthias Klose  <doko@ubuntu.com>
2579         * config/linux/arm: Remove empty directory.
2580         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
2582 2011-12-09  Alan Modra  <amodra@gmail.com>
2584         PR libgomp/51376
2585         * task.c (GOMP_taskwait): Don't access task->children outside of
2586         task_lock mutex region.
2587         (GOMP_task): Likewise.
2589 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
2591         PR libgomp/51132
2592         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
2593         to file scope.
2594         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
2595         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
2596         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
2597         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
2598         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
2600 2011-12-02  Alan Modra  <amodra@gmail.com>
2602         * config/linux/affinity.c: Use atomic rather than sync builtin.
2603         * config/linux/lock.c: Likewise.
2604         * config/linux/ptrlock.h: Likewise.
2605         * config/linux/ptrlock.c: Likewise.
2606         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
2607         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
2608         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
2609         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
2610         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
2611         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
2612         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
2613         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
2614         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
2615         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
2617 2011-11-30  Alan Modra  <amodra@gmail.com>
2619         PR libgomp/51298
2620         * config/linux/bar.h: Use atomic rather than sync builtins.
2621         * config/linux/bar.c: Likewise.  Add missing acquire
2622         synchronisation on generation field.
2623         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
2624         double unlock.
2626 2011-11-30  Alan Modra  <amodra@gmail.com>
2628         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
2629         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
2630         * config/linux/mutex.h: Use atomic rather than sync builtins.
2631         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
2632         * config/linux/omp-lock.h: Comment fix.
2633         * config/linux/arm/mutex.h: Delete.
2634         * config/linux/powerpc/mutex.h: Delete.
2635         * config/linux/ia64/mutex.h: Delete.
2636         * config/linux/mips/mutex.h: Delete.
2638 2011-11-30  Alan Modra  <amodra@gmail.com>
2640         PR libgomp/51249
2641         * config/linux/sem.h: Rewrite.
2642         * config/linux/sem.c: Rewrite.
2644 2011-11-28  Richard Henderson  <rth@redhat.com>
2646         * libgomp.h (enum memmodel): New.
2648 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
2650         * configure: Regenerate.
2652 2011-10-10  Matthias Klose  <doko@ubuntu.com>
2654         * config/posix95: Remove empty directory.
2656 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
2658         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
2660 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
2662         PR fortran/49792
2663         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
2664         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
2666 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2668         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
2670 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2672         PR libgomp/49965
2673         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
2675 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
2677         * config/linux/proc.h: New.
2678         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
2679         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
2680         (gomp_init_num_threads): Update call to cpuset_popcount.
2681         (get_num_procs): Ditto.
2682         * config/linux/affinity.c (gomp_init_affinity): Call
2683         gomp_cpuset_popcount.
2685 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
2687         PR fortran/42041
2688         PR fortran/46752
2689         * omp.h.in (omp_in_final): New prototype.
2690         * omp_lib.f90.in (omp_in_final): New interface.
2691         (omp_integer_kind, omp_logical_kind): Remove
2692         and replace all its uses in the module with 4.
2693         (openmp_version): Change to 201107.
2694         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
2695         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
2696         kind for the parameters.
2697         (omp_in_final): New external.
2698         (openmp_version): Change to 201107.
2699         * task.c (omp_in_final): New function.
2700         (gomp_init_task): Initialize final_task.
2701         (GOMP_task): Remove unused attribute from flags.  Handle final
2702         tasks.
2703         (GOMP_taskyield): New function.
2704         (omp_in_final): Return true if if (false) or final (true) task
2705         or descendant of final (true).
2706         * fortran.c (omp_in_final_): New function.
2707         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
2708         (GOMP_3.0): Export GOMP_taskyield.
2709         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
2710         variables.
2711         (parse_unsigned_long_list): New function.
2712         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
2713         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
2714         even if parse_affinity returned false.
2715         * config/linux/affinity.c (gomp_init_affinity): Handle
2716         gomp_cpu_affinity_len == 0.
2717         * libgomp_g.h (GOMP_taskyield): New prototype.
2718         * libgomp.h (struct gomp_task): Add final_task field.
2719         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
2720         * team.c (gomp_team_start): Override new task's nthreads_var icv
2721         if list form OMP_NUM_THREADS has been used and it has value for
2722         the new nesting level.
2724         * testsuite/libgomp.c/atomic-11.c: New test.
2725         * testsuite/libgomp.c/atomic-12.c: New test.
2726         * testsuite/libgomp.c/atomic-13.c: New test.
2727         * testsuite/libgomp.c/atomic-14.c: New test.
2728         * testsuite/libgomp.c/reduction-6.c: New test.
2729         * testsuite/libgomp.c/task-5.c: New test.
2730         * testsuite/libgomp.c++/atomic-2.C: New test.
2731         * testsuite/libgomp.c++/atomic-3.C: New test.
2732         * testsuite/libgomp.c++/atomic-4.C: New test.
2733         * testsuite/libgomp.c++/atomic-5.C: New test.
2734         * testsuite/libgomp.c++/atomic-6.C: New test.
2735         * testsuite/libgomp.c++/atomic-7.C: New test.
2736         * testsuite/libgomp.c++/atomic-8.C: New test.
2737         * testsuite/libgomp.c++/atomic-9.C: New test.
2738         * testsuite/libgomp.c++/task-8.C: New test.
2739         * testsuite/libgomp.c++/reduction-4.C: New test.
2740         * testsuite/libgomp.fortran/allocatable7.f90: New test.
2741         * testsuite/libgomp.fortran/allocatable8.f90: New test.
2742         * testsuite/libgomp.fortran/crayptr3.f90: New test.
2743         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
2744         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
2745         * testsuite/libgomp.fortran/pointer1.f90: New test.
2746         * testsuite/libgomp.fortran/pointer2.f90: New test.
2747         * testsuite/libgomp.fortran/task4.f90: New test.
2749 2011-08-02  Tobias Burnus  <burnus@net-b.de>
2751         * libgomp.texi: Update OpenMP spec references to 3.1.
2752         (omp_in_final,OMP_PROC_BIND): New sections.
2753         (OMP_NUM_THREADS): Document that the value can be now a list.
2754         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
2756 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
2758         * config/linux/x86/futex.h: Check __x86_64__ instead of
2759         __LP64__.
2761 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
2763         PR middle-end/49897
2764         PR middle-end/49898
2765         * testsuite/libgomp.c/pr49897-1.c: New test.
2766         * testsuite/libgomp.c/pr49897-2.c: New test.
2767         * testsuite/libgomp.c/pr49898-1.c: New test.
2768         * testsuite/libgomp.c/pr49898-2.c: New test.
2770 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2772         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
2773         for ia32 instead of ilp32.
2775         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
2776         * testsuite/libgomp.c/atomic-6.c: Likewise.
2778 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
2780         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
2781         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
2783 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2785         PR libgomp/45351
2786         * config/osf/sem.h: New file.
2787         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
2789 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2791         PR target/49541
2792         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
2793         ldflags.
2795 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
2797         * config/linux/wait.h (do_spin): New inline, largely copied
2798         from do_wait, just don't do futex_wait here, instead return true if
2799         it should be done.
2800         (do_wait): Implement using do_spin.
2801         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
2802         to prototype.
2803         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
2804         __sync_bool_compare_and_swap, pass the oldval to
2805         gomp_mutex_lock_slow.
2806         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
2807         If all mutex contenders are just spinning and not sleeping, don't
2808         change state to 2 unnecessarily.  Optimize the loop when state has
2809         already become 2 to use just one atomic operation per loop instead
2810         of two.
2811         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
2812         to prototype.
2813         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
2814         __sync_bool_compare_and_swap, pass the oldval to
2815         gomp_mutex_lock_slow.
2817 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2819         PR libgomp/49490
2820         * iter.c (gomp_iter_static_next): For chunk size 0
2821         only use n ceil/ nthreads size for the first
2822         n % nthreads threads in the team instead of
2823         all threads except for the last few ones which
2824         get less work or none at all.
2825         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
2826         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
2827         chunk argument, set run_sched_modifier to 0 for static
2828         resp. 1 for other kinds.  If chunk argument is 0
2829         and not static, set value to 1.
2831 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
2833         PR c++/49043
2834         * testsuite/libgomp.c++/pr49043.C: New test.
2836         PR c++/48869
2837         * testsuite/libgomp.c++/pr48869.C: New test.
2839 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2841         PR fortran/48894
2842         * fortran.c: Include limits.h.
2843         (TO_INT): Define.
2844         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
2845         *set.
2846         (omp_set_num_threads_8_, omp_set_schedule_8_,
2847         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
2848         omp_get_team_size_8_): Use TO_INT macro.
2849         * testsuite/libgomp.fortran/pr48894.f90: New test.
2851 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
2853         PR middle-end/48591
2854         * testsuite/libgomp.c/pr48591.c: New test.
2856 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2858         PR bootstrap/48135
2859         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
2860         * configure: Regenerate.
2862 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
2864         PR fortran/47886
2865         * testsuite/libgomp.fortran/task3.f90: New test.
2867 2011-02-24  Tobias Burnus  <burnus@net-b.de>
2869         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
2871 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
2873         PR libgomp/47854
2874         * libgomp.texi (omp_get_wtime): Don't say time in the past
2875         must be Unix Epoch.
2877 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
2879         PR libgomp/47804
2880         * testsuite/libgomp.fortran/fortran.exp: Check for both
2881         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
2882         but $blddir != "", still append ${blddir}/${lang_library_path}
2883         to ld_library_path.
2885 2011-02-16  Tobias Burnus  <burnus@net-b.de>
2887         PR libgomp/47758
2888         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
2889         of libquadmath.a before adding its libpath to ldflags.
2891 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
2893         PR libgomp/47731
2894         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
2895         to FUTEX_WAIT futex syscall.
2896         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
2898 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2900         * configure: Regenerate.
2902 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
2904         PR libstdc++/36104
2905         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
2907 2011-01-16  Gerald Pfeifer
2909         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
2911 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
2913         PR fortran/46874
2914         * libgomp.fortran/allocatable6.f90: New test.
2916 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2918         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
2919         * configure: Regenerate.
2921 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2923         PR target/40125
2924         PR lto/46695
2925         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
2926         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
2927         * aclocal.m4: Regenerate.
2928         * configure: Regenerate.
2929         * Makefile.in: Regenerate.
2930         * testsuite/Makefile.in: Regenerate.
2932 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
2934         PR fortran/46753
2935         * libgomp.fortran/pr46753.f90: New test.
2937         PR libgomp/43706
2938         * env.c (initialize_env): Default to spin count 300000
2939         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
2940         is specified.
2942         PR libgomp/45240
2943         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
2944         at the end if sync builtins aren't supported.
2946 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2948         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
2950 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2952         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
2954 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
2956         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
2958 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2959             Tobias Burnus  <burnus@net-b.de>
2961         PR fortran/32049
2962         * configure.ac:
2963         * configure: Regenerate.
2965 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2967         * config/linux/futex.h: New.
2968         * config/linux/arm/mutex.h: New.
2969         * configure.tgt (arm*-*-linux*): Add config path.
2971 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2973         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2975 2010-09-23  Tobias Burnus  <burnus@net-b.de>
2977         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
2978         Change Fortran datatype to LOGICAL.
2979         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
2980         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
2982 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2984         * configure: Regenerate.
2986 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
2988         * libgomp.texi: Add function keyword to a couple of Fortran
2989         interfaces, use integer instead of int for Fortran.
2991 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
2993         * libgomp.texi: Fix spelling and pasto problems throughout.
2994         Adjust prototypes to match code.
2996 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2998         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
2999         silence -fwhole-file warning.
3001 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3003         * configure.tgt (*-*-solaris2.[56]*): Removed.
3005 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3007         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
3008         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
3009         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
3010         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
3011         targetting solaris2*.
3012         * configure: Regenerate.
3013         * config.h.in: Regenerate.
3015         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
3016         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
3017         Add libgomp_version_dep.
3018         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
3019         versioning.
3020         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
3021         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
3022         * Makefile.in: Regenerate.
3024         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
3025         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
3026         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
3027         to common block, protected by
3028         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
3030 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3032         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
3034 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
3036         PR bootstrap/43170
3037         * configure: Regenerate.
3039 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3041         PR other/43620
3042         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
3043         * configure: Regenerate.
3044         * Makefile.in: Regenerate.
3045         * testsuite/Makefile.in: Regenerate.
3047 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
3049         PR c/43893
3050         * testsuite/libgomp.c/pr43893.c: New test.
3051         * testsuite/libgomp.c++/pr43893.C: New test.
3053 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3055         PR middle-end/43570
3056         * testsuite/libgomp.fortran/vla8.f90: New test.
3058 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3060         PR libgomp/43706
3061         * config/linux/affinity.c (gomp_init_affinity): Decrease
3062         gomp_available_cpus if affinity mask confines the process to fewer
3063         CPUs.
3064         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
3065         non-NULL, just return gomp_available_cpus.
3067         PR libgomp/43569
3068         * sections.c (gomp_sections_init): Initialize ws->mode.
3070 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3072         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
3073         not unused bar variable.
3074         * configure: Regenerate.
3076 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3078         * Makefile.in: Regenerate.
3079         * aclocal.m4: Regenerate.
3080         * testsuite/Makefile.in: Regenerate.
3082 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
3084         PR libgomp/42942
3085         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
3086         (initialize_env): Adjust callers.
3087         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
3088         when the argument is 0.
3090         * testsuite/libgomp.c/pr42942.c: New test.
3092 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
3094         PR middle-end/42644
3095         PR middle-end/42130
3096         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3097         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
3099 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3101         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
3102         * testsuite/libgomp.c++/task-6.C: Likewise.
3104 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
3106         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
3108 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
3110         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
3111         * configure: Regenerate.
3113 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
3115         PR fortran/42866
3116         * testsuite/libgomp.fortran/allocatable5.f90: New test.
3118 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
3120         * configure.ac: Test for executability of GFORTRAN.
3121         * configure: Regenerate.
3123 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3125         * configure: Regenerate.
3127 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
3129         PR libgomp/42602
3130         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
3132 2010-01-03  Richard Guenther  <rguenther@suse.de>
3134         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
3136 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
3138         * testsuite/libgomp.graphite/pr4118.c: New.
3140 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3142         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
3143         for darwin, protect the test with require-effective-target tls_runtime.
3144         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
3146 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3148         PR target/41605
3149         * testsuite/lib/libgomp.exp: Provide -B options to allow for
3150         link spec %s substitutions for static libraries.
3152 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
3154         PR testsuite/42135
3155         * libgomp.graphite/force-parallel-2.c: Reduce array size.
3157 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3159         * Makefile.in: Regenerate.
3160         * configure: Regenerate.
3161         * testsuite/Makefile.in: Regenerate.
3163 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
3165         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
3166         settings for LC_ALL and LANG.
3168 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
3170         PR fortran/42162
3171         * testsuite/libgomp.fortran/pr42162.f90: New test.
3173 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
3175         PR middle-end/42029
3176         * testsuite/libgomp.c/pr42029.c: New test.
3178 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
3180         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
3181         *s.  Accept ld version without text in ()s.
3182         * configure: Regenerated.
3184 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
3186         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
3188 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3190         PR libgomp/41418
3191         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
3192         or a hyphen (happens with fortran language disabled).
3193         * configure: Regenerate.
3195 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3197         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
3198         use sed script portable to Solaris /bin/sed for extracting ld
3199         version.
3200         * configure: Regenerate.
3202 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
3204         * testsuite/libgomp.graphite/bounds.c: New test.
3206 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3208         * Makefile.am (libgomp_la_LINK): New.
3209         * Makefile.in: Regenerate.
3211 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3213         * configure.ac (AC_PREREQ): Bump to 2.64.
3215 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3217         * Makefile.am (install-html, install-pdf): Remove.
3218         * Makefile.in: Regenerate.
3220         * Makefile.in: Regenerate.
3221         * aclocal.m4: Regenerate.
3222         * config.h.in: Regenerate.
3223         * configure: Regenerate.
3224         * testsuite/Makefile.in: Regenerate.
3226 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3228         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
3229         * Makefile.in: Regenerate.
3231 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
3233         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
3234         * Makefile.in: Regenerate.
3236 2009-08-19  Tobias Burnus  <burnus@net-b.de>
3238         PR fortran/41102
3239         omp_lib.h.in: Fix -std=f95 errors.
3242 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
3244         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
3245         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
3246         * testsuite/libgomp.graphite/graphite.exp: New.
3248 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
3250         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
3251         only build.
3253 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
3255         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
3256         needed memory barrier semantics.
3257         * config/linux/mips/mutex.h: New file.
3259 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3261         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
3263 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
3265         * configure: Regenerate.
3267 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
3269         PR testsuite/40699
3270         PR testsuite/40707
3271         PR testsuite/40709
3272         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
3273         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
3274         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
3276 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3278         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
3279         options when choosing a multilib.
3281 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
3283         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
3284         ld_library_path.  Use add_path.  Add just find_libgcc_s to
3285         ld_library_path, not every libgcc multilib directory.
3286         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
3287         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
3288         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
3289         Use add_path.
3290         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
3292 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
3294         * Makefile.am (LTLDFLAGS): Define.
3295         (LINK): Define.
3296         * Makefile.in: Regenerate.
3298 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
3300         PR fortran/39718
3301         * testsuite/libgomp.fortran/fortran.exp: Don't link with
3302         libgfortranbegin, check existence of libgfortran.a instead of
3303         libgfortranbegin.a.
3305 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
3307         PR libgomp/40174
3308         * team.c (gomp_thread_start): Destroy thr->release semaphore.
3309         (gomp_free_pool_helper): Likewise.
3311 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
3312             Jakub Jelinek  <jakub@redhat.com>
3314         PR fortran/35423
3315         * testsuite/libgomp.fortran/workshare2.f90: New test.
3317 2009-04-09  Nick Clifton  <nickc@redhat.com>
3319         * iter.c: Change copyright header to refer to version 3 of the
3320         GNU General Public License with version 3.1 of the GCC Runtime
3321         Library Exception and to point readers at the COPYING3 and
3322         COPYING3.RUNTIME files and the FSF's license web page.
3323         * alloc.c: Likewise.
3324         * barrier.c: Likewise.
3325         * config/bsd/proc.c: Likewise.
3326         * config/linux/affinity.c: Likewise.
3327         * config/linux/alpha/futex.h: Likewise.
3328         * config/linux/bar.c: Likewise.
3329         * config/linux/bar.h: Likewise.
3330         * config/linux/ia64/futex.h: Likewise.
3331         * config/linux/ia64/mutex.h: Likewise.
3332         * config/linux/lock.c: Likewise.
3333         * config/linux/mips/futex.h: Likewise.
3334         * config/linux/mutex.c: Likewise.
3335         * config/linux/mutex.h: Likewise.
3336         * config/linux/powerpc/futex.h: Likewise.
3337         * config/linux/proc.c: Likewise.
3338         * config/linux/ptrlock.c: Likewise.
3339         * config/linux/ptrlock.h: Likewise.
3340         * config/linux/s390/futex.h: Likewise.
3341         * config/linux/sem.c: Likewise.
3342         * config/linux/sem.h: Likewise.
3343         * config/linux/sparc/futex.h: Likewise.
3344         * config/linux/wait.h: Likewise.
3345         * config/linux/x86/futex.h: Likewise.
3346         * config/mingw32/proc.c: Likewise.
3347         * config/mingw32/time.c: Likewise.
3348         * config/posix/affinity.c: Likewise.
3349         * config/posix/bar.c: Likewise.
3350         * config/posix/bar.h: Likewise.
3351         * config/posix/lock.c: Likewise.
3352         * config/posix/mutex.h: Likewise.
3353         * config/posix/proc.c: Likewise.
3354         * config/posix/ptrlock.h: Likewise.
3355         * config/posix/sem.c: Likewise.
3356         * config/posix/sem.h: Likewise.
3357         * config/posix/time.c: Likewise.
3358         * config/posix95/lock.c: Likewise.
3359         * critical.c: Likewise.
3360         * env.c: Likewise.
3361         * error.c: Likewise.
3362         * fortran.c: Likewise.
3363         * iter_ull.c: Likewise.
3364         * libgomp.h: Likewise.
3365         * libgomp_f.h.in: Likewise.
3366         * libgomp_g.h: Likewise.
3367         * loop.c: Likewise.
3368         * loop_ull.c: Likewise.
3369         * omp.h.in: Likewise.
3370         * omp_lib.f90.in: Likewise.
3371         * omp_lib.h.in: Likewise.
3372         * ordered.c: Likewise.
3373         * parallel.c: Likewise.
3374         * sections.c: Likewise.
3375         * single.c: Likewise.
3376         * task.c: Likewise.
3377         * team.c: Likewise.
3378         * work.c: Likewise.
3380 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
3382         * testsuite/config/default.exp: Change copyright header to refer to
3383         version 3 of the GNU General Public License and to point readers
3384         at the COPYING3 file and the FSF's license web page.
3386 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
3388         PR middle-end/39573
3389         * libgomp.c++/pr39573.C: New test.
3391 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3393         PR other/39591
3394         * testsuite/libgomp.c/pr39591-1.c: New test.
3395         * testsuite/libgomp.c/pr39591-2.c: New test.
3396         * testsuite/libgomp.c/pr39591-3.c: New test.
3398 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
3400         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
3401         * testsuite/libgomp.c/atomic-6.c: Ditto.
3403 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3405         PR c/39495
3406         * testsuite/libgomp.c/loop-12.c: New test.
3407         * testsuite/libgomp.c/loop-11.c: New test.
3408         * testsuite/libgomp.c++/loop-11.C: New test.
3409         * testsuite/libgomp.c++/loop-12.C: New test.
3410         * testsuite/libgomp.c++/for-8.C: New test.
3412 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3414         * configure: Regenerate.
3416 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
3418         PR middle-end/39154
3419         * testsuite/libgomp.c/pr39154.c: New test.
3421 2009-01-30  Ian Lance Taylor  <iant@google.com>
3423         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
3424         libgomp_ld_is_gold.  Get gold version number.
3425         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
3426         * configure: Rebuild.
3428 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3430         * testsuite/lib/libgomp.exp: Add -B option for targets that
3431         use libgfortran.a%s in their specs.
3433 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
3435         PR libgomp/38086
3436         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
3437         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
3438         HAVE_AS_SYMVER_DIRECTIVE is not defined.
3439         * configure: Regenerated.
3440         * config.h.in: Likewise.
3442 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
3444         PR c++/38650
3445         * testsuite/libgomp.c/pr38650.c: New test.
3446         * testsuite/libgomp.c++/pr38650.C: New test.
3448 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
3450         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
3452 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
3454         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
3456 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3458         * configure: Regenerate.
3460 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
3462         PR middle-end/36802
3463         * testsuite/libgomp.c/pr36802-1.c: New test.
3464         * testsuite/libgomp.c/pr36802-2.c: New test.
3465         * testsuite/libgomp.c/pr36802-3.c: New test.
3467 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
3469         PR libgomp/38270
3470         * config/linux/powerpc/mutex.h: New.
3472 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
3474         PR c++/38257
3475         * testsuite/libgomp.c++/for-7.C: New test.
3477         PR c++/38348
3478         * testsuite/libgomp.c++/for-6.C: New test.
3480 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
3482         PR testsuite/28870
3483         * testsuite/lib/libgomp.exp: Include new timeout library files.
3484         (libgomp_target_compile): Set timeout value from new proc.
3486 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
3488         PR libgomp/37938
3489         * config/linux/ia64/mutex.h: New.
3491 2008-11-04  Tobias Burnus  <burnus@net-b.de>
3493         PR libgomp/37935
3494         * libgomp.texi (Runtime library routines, environment variables):
3495         Update for OpenMP version 3.0.
3497 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
3498             Steve Ellcey  <sje@cup.hp.com>
3500         * configure: Regenerate for new libtool.
3501         * Makefile.in: Ditto.
3502         * testsuite/Makefile.in: Ditto.
3504 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
3505             Andreas Tobler  <a.tobler@schweiz.org>
3507         * config/bsd/proc.c: New file.
3508         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
3509         * configure.ac: Check for header <sys/sysctl.h>
3510         * configure: Regenerate.
3511         * config.h.in: Likewise.
3513 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
3515         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
3517 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3519         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
3520         * Makefile.in: Regenerated.
3521         * testsuite/Makefile.in: Regenerated.
3523 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
3525         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
3526         depend on blddir if blddir exists.
3527         (libgomp_target_compile): Likewise.
3528         * testsuite/libgomp.c++/c++.exp: Likewise.
3529         * testsuite/libgomp.fortran/fortran.exp: Likewise.
3531 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3533         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
3534         Do not list GPL as Invariant Section.
3536 2008-07-28  Ilie Garbacea  <ilie@mips.com>
3537             Chao-ying Fu  <fu@mips.com>
3539         * configure.tgt: Enable futex for MIPS.
3540         * config/linux/mips/futex.h: New file.
3542 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
3544         * team.c (gomp_team_end): Free team immediately if it has
3545         just one thread.
3547 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
3549         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
3550         * testsuite/libgomp.fortran/fortran.exp: Same.
3551         * testsuite/libgomp.c/c.exp: Same.
3552         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
3553         directory to library path first.
3555 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
3557         * env.c (parse_stacksize): Add cast to avoid warning.
3558         (parse_spincount): Likewise.
3560 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
3562         * testsuite/libgomp.c/loop-10.c: New test.
3563         * libgomp.c/loop-3.c (main): Add lastprivate clause.
3564         * libgomp.c++/loop-6.C (main): Likewise.
3566         PR debug/36617
3567         * testsuite/libgomp.c/debug-1.c: New test.
3569 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3571         * testsuite/libgomp.c/nqueens-1.c: New test.
3573         PR c++/36523
3574         * testsuite/libgomp.c++/task-7.C: New function.
3576 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3578         * configure: Regenerate.
3580 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3582         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
3583         mutex when HAVE_SYNC_BUILTINS isn't defined.
3585 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3587         * libgomp.texi (omp_test_lock): Fix typo.
3589 2008-06-12  Tobias Burnus  <burnus@net-b.de>
3591         * omp_lib.f90.in: Add "implicit none".
3593 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3595         PR middle-end/36506
3596         * testsuite/libgomp.c/reduction-5.c: New test.
3598 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
3600         * libgomp.h (struct gomp_task): Add in_tied_task field.
3601         * task.c (gomp_init_task): Initialize it.
3602         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
3603         unconditionally.  Don't call gomp_team_barrier_wake if
3604         current task is implicit or if(0) from implicit and number of
3605         running tasks is equal to nthreads - 1.
3607         PR libgomp/36471
3608         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
3609         omp_get_team_size_8): Fix pastos.
3611         PR libgomp/36469
3612         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
3613         * configure: Regenerated.
3614         * config.h.in: Regenerated.
3615         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
3616         defined.
3618 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
3620         PR bootstrap/36452
3621         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
3622         (GOMP_loop_ull_dynamic_start): Likewise.
3623         (GOMP_loop_ull_guided_start): Likewise.
3624         (GOMP_loop_ull_ordered_static_start): Likewise.
3625         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
3626         (GOMP_loop_ull_ordered_guided_start): Likewise.
3628 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3629             Richard Henderson  <rth@redhat.com>
3630             Ulrich Drepper  <drepper@redhat.com>
3631             Jakob Blomer  <jakob.blomer@ira.uka.de>
3633         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
3634         Substitute also OMP_*LOCK_25*.
3635         * configure: Regenerated.
3636         * config.h.in: Regenerated.
3637         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
3638         ptrlock.c and task.c.
3639         * Makefile.in: Regenerated.
3640         * testsuite/Makefile.in: Regenerated.
3641         * task.c: New file.
3642         * loop_ull.c: New file.
3643         * iter_ull.c: New file.
3644         * libgomp.h: Include ptrlock.h.
3645         (enum gomp_task_kind): New type.
3646         (struct gomp_team): Add task_lock, task_queue, task_count,
3647         task_running_count, single_count fields.  Add
3648         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
3649         Remove work_share_lock, generation_mask,
3650         oldest_live_gen, num_live_gen and init_work_shares fields, add
3651         work work_share_list_alloc, work_share_list_free and work_share_chunk
3652         fields.  Change work_shares from pointer to pointers into an array.
3653         Change ordered_release field into gomp_sem_t ** from flexible array
3654         member.  Add implicit_task and initial_work_shares fields.
3655         Move close to the end of the struct.
3656         (struct gomp_team_state): Add single_count, last_work_share,
3657         active_level and level fields, remove work_share_generation.
3658         (gomp_barrier_handle_tasks): New prototype.
3659         (gomp_finish_task): New inline function.
3660         (struct gomp_work_share): Move chunk_size, end, incr into
3661         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
3662         next_ll fields.  Reshuffle fields.  Add next_alloc,
3663         next_ws, next_free and inline_ordered_team_ids fields, change
3664         ordered_team_ids into pointer from flexible array member.
3665         Add mode field.  Put lock and next into a different cache line
3666         from most of the write-once fields.
3667         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
3668         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
3669         gomp_iter_ull_guided_next): New prototypes.
3670         (gomp_new_icv): New prototype.
3671         (struct gomp_thread): Add thread_pool and task fields.
3672         (struct gomp_thread_pool): New type.
3673         (gomp_new_team): New prototype.
3674         (gomp_team_start): Change type of last argument.
3675         (gomp_new_work_share): Removed.
3676         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
3677         (gomp_work_share_init_done): New static inline.
3678         (gomp_throttled_spin_count_var, gomp_available_cpus,
3679         gomp_managed_threads): New extern decls.
3680         (gomp_init_task): New prototype.
3681         (gomp_spin_count_var): New extern var decl.
3682         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
3683         or no alias support, or if not PIC.
3684         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
3685         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
3686         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
3687         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
3688         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
3689         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
3690         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
3691         gomp_test_nest_lock_25): New prototypes.
3692         (omp_lock_symver, strong_alias): Define.
3693         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
3694         decls.
3695         (gomp_end_task): New.
3696         (struct gomp_task_icv, gomp_global_icv): New.
3697         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
3698         (struct gomp_task): New.
3699         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
3700         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
3701         (gomp_icv): New.
3702         (gomp_schedule_type): Reorder enum to match
3703         omp_sched_t.
3704         * team.c (struct gomp_thread_start_data): Add thread_pool and task
3705         fields.
3706         (gomp_thread_start): Add gomp_team_barrier_wait call.
3707         For non-nested case remove clearing of docked thread thr fields.
3708         Use pool fields instead of global gomp_* variables.  Use
3709         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
3710         Create tasks for each member thread.
3711         (free_team): Only destroy team barrier, task_lock here and free it.
3712         (gomp_free_thread): Free last_team if non-NULL.
3713         (gomp_team_end): Call gomp_team_barrier_wait instead of
3714         gomp_barrier_wait.  For nested case call one extra
3715         gomp_barrier_wait.  Move here some destruction from free_team.
3716         Call free_team on pool->last_team if any, rather than freeing
3717         current team.  Destroy work_share_list_free_lock ifndef
3718         HAVE_SYNC_BUILTINS.
3719         (gomp_new_icv): New function.
3720         (gomp_threads, gomp_threads_size, gomp_threads_used,
3721         gomp_threads_dock): Removed.
3722         (gomp_thread_destructor): New variable.
3723         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
3724         functions.
3725         (gomp_team_start): Create new pool if current thread doesn't have
3726         one.  Use pool fields instead of global gomp_* variables.
3727         Initialize thread_pool field for new threads.  Clear single_count.
3728         Change last argument from ws to team, don't create
3729         new team, set ts.work_share to &team->work_shares[0] and clear
3730         ts.last_work_share.  Don't clear ts.work_share_generation.
3731         If number of threads changed, adjust atomically gomp_managed_threads.
3732         Use gomp_init_task instead of gomp_new_task,
3733         set thr->task to the corresponding implicit_task array entry.
3734         Create tasks for each member thread.  Initialize ts.level.
3735         (initialize_team): Call pthread_key_create on
3736         gomp_thread_destructor.
3737         (team_destructor): New function.
3738         (new_team): Removed.
3739         (gomp_new_team): New function.
3740         (free_team): Free gomp_work_share blocks chained through next_alloc,
3741         instead of freeing work_shares and destroying work_share_lock.
3742         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
3743         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
3744         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
3745         of gomp_barrier_wait.
3746         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
3747         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
3748         if gomp_work_share_start returned true.  Don't unlock ws->lock.
3749         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
3750         of gomp_barrier_wait.
3751         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
3752         gomp_work_share_init_done if gomp_work_share_start returned true.
3753         Don't unlock ws->lock.
3754         * work.c: Include stddef.h.
3755         (free_work_share): Use work_share_list_free_lock instead
3756         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
3757         Call gomp_fini_work_share and then either free ws if orphaned, or
3758         put it into work_share_list_free list of the current team.
3759         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
3760         functions.
3761         (gomp_work_share_start, gomp_work_share_end,
3762         gomp_work_share_end_nowait): Rewritten.
3763         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
3764         (openmp_version): Set to 200805.
3765         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
3766         omp_sched_guided, omp_sched_auto): New parameters.
3767         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3768         omp_set_max_active_levels, omp_get_max_active_levels,
3769         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
3770         omp_get_active_level): New interfaces.
3771         * omp_lib.h.in (openmp_version): Set to 200805.
3772         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
3773         omp_sched_guided, omp_sched_auto): New parameters.
3774         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3775         omp_set_max_active_levels, omp_get_max_active_levels,
3776         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
3777         omp_get_active_level): New externals.
3778         * loop.c: Include limits.h.
3779         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
3780         GFS_AUTO.
3781         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
3782         Likewise.  Use gomp_icv.
3783         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
3784         ts.static_trip here.
3785         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
3786         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
3787         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
3788         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
3789         don't unlock ws->lock, otherwise lock it.
3790         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
3791         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
3792         (gomp_parallel_loop_start): Call gomp_new_team instead of
3793         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
3794         Adjust gomp_team_start caller.  Pass 0 as second argument to
3795         gomp_resolve_num_threads.
3796         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
3797         If adding ws->chunk_size nthreads + 1 times after end won't
3798         overflow, set ws->mode to 1.
3799         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
3800         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
3801         GOMP_loop_ull_ordered_static_start,
3802         GOMP_loop_ull_ordered_dynamic_start,
3803         GOMP_loop_ull_ordered_guided_start,
3804         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
3805         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
3806         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
3807         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
3808         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
3809         prototypes.
3810         * libgomp.map: Export lock routines also @@OMP_2.0.
3811         (GOMP_loop_ordered_dynamic_first,
3812         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
3813         GOMP_loop_ordered_static_first): Remove.
3814         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
3815         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
3816         GOMP_loop_ull_ordered_dynamic_next,
3817         GOMP_loop_ull_ordered_dynamic_start,
3818         GOMP_loop_ull_ordered_guided_next,
3819         GOMP_loop_ull_ordered_guided_start,
3820         GOMP_loop_ull_ordered_runtime_next,
3821         GOMP_loop_ull_ordered_runtime_start,
3822         GOMP_loop_ull_ordered_static_next,
3823         GOMP_loop_ull_ordered_static_start,
3824         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
3825         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
3826         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
3827         (omp_set_schedule, omp_get_schedule,
3828         omp_get_thread_limit, omp_set_max_active_levels,
3829         omp_get_max_active_levels, omp_get_level,
3830         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
3831         omp_set_schedule_, omp_set_schedule_8_,
3832         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
3833         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
3834         omp_get_max_active_levels_, omp_get_level_,
3835         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
3836         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
3837         New exports @@OMP_3.0.
3838         * omp.h.in (omp_sched_t): New type.
3839         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3840         omp_set_max_active_levels, omp_get_max_active_levels,
3841         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
3842         omp_get_active_level): New prototypes.
3843         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
3844         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
3845         gomp_thread_limit_var, gomp_remaining_threads_count,
3846         gomp_remaining_threads_lock): New variables.
3847         (parse_spincount): New function.
3848         (initialize_env): Call gomp_init_num_threads unconditionally.
3849         Initialize gomp_available_cpus.  Call parse_spincount,
3850         initialize gomp_{,throttled_}spin_count_var
3851         depending on presence and value of OMP_WAIT_POLICY and
3852         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
3853         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
3854         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
3855         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
3856         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
3857         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
3858         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
3859         (gomp_global_icv): New.
3860         (parse_schedule): Use it.  Parse "auto".
3861         (omp_set_num_threads): Use gomp_icv.
3862         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
3863         Likewise.
3864         (omp_get_max_threads): Move from parallel.c.
3865         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3866         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
3867         add ialias.
3868         (parse_stacksize, parse_wait_policy): New functions.
3869         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
3870         both wrappers for compatibility and new locks.
3871         (omp_set_schedule, omp_get_schedule,
3872         omp_get_thread_limit, omp_set_max_active_levels,
3873         omp_get_max_active_levels, omp_get_level,
3874         omp_get_ancestor_thread_num, omp_get_team_size,
3875         omp_get_active_level): New ialias_redirect.
3876         (omp_set_schedule_, omp_set_schedule_8_,
3877         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
3878         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
3879         omp_get_max_active_levels_, omp_get_level_,
3880         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
3881         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
3882         New functions.
3883         * parallel.c: Include limits.h.
3884         (gomp_resolve_num_threads): Add count argument.  Rewritten.
3885         (GOMP_parallel_start): Call gomp_new_team and pass that as last
3886         argument to gomp_team_start.  Pass 0 as second argument to
3887         gomp_resolve_num_threads.
3888         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
3889         if gomp_thread_limit_var != ULONG_MAX.
3890         (omp_in_parallel): Implement using ts.active_level.
3891         (omp_get_max_threads): Move to env.c.
3892         (omp_get_level, omp_get_ancestor_thread_num,
3893         omp_get_team_size, omp_get_active_level): New functions,
3894         add ialias.
3895         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
3896         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
3897         gomp_iter_dynamic_next instead of the _locked variant and don't take
3898         lock around it, otherwise acquire it before calling
3899         gomp_iter_dynamic_next_locked.
3900         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
3901         gomp_iter_dynamic_next instead of the _locked variant and don't take
3902         lock around it.
3903         (GOMP_parallel_sections_start): Call gomp_new_team instead of
3904         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
3905         Adjust gomp_team_start caller.  Pass count as second argument to
3906         gomp_resolve_num_threads, don't adjust num_threads after the call.
3907         Use gomp_icv.
3908         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
3909         ws->chunk_size by incr.
3910         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
3911         code.
3912         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
3913         types.
3914         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
3915         (omp_check_defines): Check even the compat defines.
3916         * config/linux/ptrlock.c: New file.
3917         * config/linux/ptrlock.h: New file.
3918         * config/linux/wait.h: New file.
3919         * config/posix/ptrlock.c: New file.
3920         * config/posix/ptrlock.h: New file.
3921         * config/linux/bar.h (gomp_team_barrier_wait,
3922         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
3923         (gomp_team_barrier_set_task_pending,
3924         gomp_team_barrier_clear_task_pending,
3925         gomp_team_barrier_set_waiting_for_tasks,
3926         gomp_team_barrier_waiting_for_tasks,
3927         gomp_team_barrier_done): New inlines.
3928         (gomp_barrier_t): Rewritten.
3929         (gomp_barrier_state_t): New typedef.
3930         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
3931         gomp_barrier_wait_start): Rewritten.
3932         (gomp_barrier_wait_end): Change second argument to
3933         gomp_barrier_state_t.
3934         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
3935         inlines.
3936         * config/linux/bar.c: Include wait.h instead of libgomp.h and
3937         futex.h.
3938         (gomp_barrier_wait_end): Rewritten.
3939         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3940         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
3941         * config/posix/bar.h (gomp_barrier_t): Add generation field.
3942         (gomp_barrier_state_t): New typedef.
3943         (gomp_team_barrier_wait,
3944         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
3945         (gomp_barrier_wait_start): Or all but low 2 bits from generation
3946         into the return value.  Return gomp_barrier_state_t.
3947         (gomp_team_barrier_set_task_pending,
3948         gomp_team_barrier_clear_task_pending,
3949         gomp_team_barrier_set_waiting_for_tasks,
3950         gomp_team_barrier_waiting_for_tasks,
3951         gomp_team_barrier_done): New inlines.
3952         (gomp_barrier_wait_end): Change second argument to
3953         gomp_barrier_state_t.
3954         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
3955         inlines.
3956         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
3957         (gomp_barrier_wait_end): Change second argument to
3958         gomp_barrier_state_t.
3959         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3960         gomp_team_barrier_wake): New functions.
3961         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
3962         futex.h.
3963         (gomp_futex_wake, gomp_futex_wait): New variables.
3964         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
3965         * config/linux/lock.c: Rewrite to make locks task owned,
3966         for backwards compatibility provide the old entrypoints
3967         if symbol versioning.  Include wait.h instead of libgomp.h and
3968         futex.h.
3969         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
3970         * config/posix95/lock.c: Rewrite to make locks task owned,
3971         for backwards compatibility provide the old entrypoints
3972         if symbol versioning.
3973         * config/posix/lock.c: Rewrite to make locks task owned,
3974         for backwards compatibility provide the old entrypoints
3975         if symbol versioning.
3976         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
3977         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
3978         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
3979         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3980         (sys_futex0): Return error code.
3981         (futex_wake, futex_wait): If ENOSYS was returned, clear
3982         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3983         (cpu_relax, atomic_write_barrier): New static inlines.
3984         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3985         (futex_wake, futex_wait): If ENOSYS was returned, clear
3986         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3987         (cpu_relax, atomic_write_barrier): New static inlines.
3988         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3989         (sys_futex0): Return error code.
3990         (futex_wake, futex_wait): If ENOSYS was returned, clear
3991         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3992         (cpu_relax, atomic_write_barrier): New static inlines.
3993         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3994         (sys_futex0): Return error code.
3995         (futex_wake, futex_wait): If ENOSYS was returned, clear
3996         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3997         (cpu_relax, atomic_write_barrier): New static inlines.
3998         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3999         (sys_futex0): Return error code.
4000         (futex_wake, futex_wait): If ENOSYS was returned, clear
4001         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4002         (cpu_relax, atomic_write_barrier): New static inlines.
4003         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4004         (sys_futex0): Return error code.
4005         (futex_wake, futex_wait): If ENOSYS was returned, clear
4006         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4007         (cpu_relax, atomic_write_barrier): New static inlines.
4008         * config/linux/sem.c: Include wait.h instead of libgomp.h and
4009         futex.h.
4010         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
4011         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
4012         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
4013         types.
4014         (omp_nest_lock_t): Change owner into void *, add lock field.
4015         * config/posix95/omp-lock.h: Include semaphore.h.
4016         (omp_lock_25_t, omp_nest_lock_25_t): New types.
4017         (omp_lock_t): Use sem_t instead of mutex if semaphores
4018         aren't broken.
4019         (omp_nest_lock_t): Likewise.  Change owner to void *.
4020         * config/posix/omp-lock.h: Include semaphore.h.
4021         (omp_lock_25_t, omp_nest_lock_25_t): New types.
4022         (omp_lock_t): Use sem_t instead of mutex if semaphores
4023         aren't broken.
4024         (omp_nest_lock_t): Likewise.  Add owner field.
4026 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4028         * testsuite/libgomp.c/collapse-1.c: New test.
4029         * testsuite/libgomp.c/collapse-2.c: New test.
4030         * testsuite/libgomp.c/collapse-3.c: New test.
4031         * testsuite/libgomp.c/icv-1.c: New test.
4032         * testsuite/libgomp.c/icv-2.c: New test.
4033         * testsuite/libgomp.c/lib-2.c: New test.
4034         * testsuite/libgomp.c/lock-1.c: New test.
4035         * testsuite/libgomp.c/lock-2.c: New test.
4036         * testsuite/libgomp.c/lock-3.c: New test.
4037         * testsuite/libgomp.c/loop-4.c: New test.
4038         * testsuite/libgomp.c/loop-5.c: New test.
4039         * testsuite/libgomp.c/loop-6.c: New test.
4040         * testsuite/libgomp.c/loop-7.c: New test.
4041         * testsuite/libgomp.c/loop-8.c: New test.
4042         * testsuite/libgomp.c/loop-9.c: New test.
4043         * testsuite/libgomp.c/nested-3.c: New test.
4044         * testsuite/libgomp.c/nestedfn-6.c: New test.
4045         * testsuite/libgomp.c/sort-1.c: New test.
4046         * testsuite/libgomp.c/task-1.c: New test.
4047         * testsuite/libgomp.c/task-2.c: New test.
4048         * testsuite/libgomp.c/task-3.c: New test.
4049         * testsuite/libgomp.c/task-4.c: New test.
4050         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
4051         to C++ testsuite default compiler options.
4052         * testsuite/libgomp.c++/collapse-1.C: New test.
4053         * testsuite/libgomp.c++/collapse-2.C: New test.
4054         * testsuite/libgomp.c++/ctor-10.C: New test.
4055         * testsuite/libgomp.c++/for-1.C: New test.
4056         * testsuite/libgomp.c++/for-2.C: New test.
4057         * testsuite/libgomp.c++/for-3.C: New test.
4058         * testsuite/libgomp.c++/for-4.C: New test.
4059         * testsuite/libgomp.c++/for-5.C: New test.
4060         * testsuite/libgomp.c++/loop-8.C: New test.
4061         * testsuite/libgomp.c++/loop-9.C: New test.
4062         * testsuite/libgomp.c++/loop-10.C: New test.
4063         * testsuite/libgomp.c++/task-1.C: New test.
4064         * testsuite/libgomp.c++/task-2.C: New test.
4065         * testsuite/libgomp.c++/task-3.C: New test.
4066         * testsuite/libgomp.c++/task-4.C: New test.
4067         * testsuite/libgomp.c++/task-5.C: New test.
4068         * testsuite/libgomp.c++/task-6.C: New test.
4069         * testsuite/libgomp.fortran/allocatable1.f90: New test.
4070         * testsuite/libgomp.fortran/allocatable2.f90: New test.
4071         * testsuite/libgomp.fortran/allocatable3.f90: New test.
4072         * testsuite/libgomp.fortran/allocatable4.f90: New test.
4073         * testsuite/libgomp.fortran/collapse1.f90: New test.
4074         * testsuite/libgomp.fortran/collapse2.f90: New test.
4075         * testsuite/libgomp.fortran/collapse3.f90: New test.
4076         * testsuite/libgomp.fortran/collapse4.f90: New test.
4077         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
4078         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
4079         * testsuite/libgomp.fortran/lib4.f90: New test.
4080         * testsuite/libgomp.fortran/lock-1.f90: New test.
4081         * testsuite/libgomp.fortran/lock-2.f90: New test.
4082         * testsuite/libgomp.fortran/nested1.f90: New test.
4083         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
4084         * testsuite/libgomp.fortran/strassen.f90: New test.
4085         * testsuite/libgomp.fortran/tabs1.f90: New test.
4086         * testsuite/libgomp.fortran/tabs2.f: New test.
4087         * testsuite/libgomp.fortran/task1.f90: New test.
4088         * testsuite/libgomp.fortran/task2.f90: New test.
4089         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
4090         * testsuite/libgomp.fortran/vla5.f90: Likewise.
4091         * testsuite/libgomp.c/pr26943-2.c: Likewise.
4092         * testsuite/libgomp.c/pr26943-3.c: Likewise.
4093         * testsuite/libgomp.c/pr26943-4.c: Likewise.
4095 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
4097         PR c++/36308
4098         * testsuite/libgomp.c++/ctor-11.C: New test.
4099         * testsuite/libgomp.c++/ctor-12.C: New test.
4101 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
4103         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
4105 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4107         PR middle-end/36106
4108         * testsuite/libgomp.c/atomic-5.c: New test.
4109         * testsuite/libgomp.c/atomic-6.c: New test.
4110         * testsuite/libgomp.c/autopar-1.c: New test.
4112 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4114         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
4115         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
4116         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
4117         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
4118         * configure: Regenerate.
4119         * Makefile.in, testsuite/Makefile.in: Likewise.
4121 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4123         PR bootstrap/35457
4124         * aclocal.m4: Regenerate.
4125         * configure: Regenerate.
4127 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
4129         PR middle-end/35611
4130         * testsuite/libgomp.c/atomic-4.c: New test.
4132         PR libgomp/35625
4133         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
4134         (gomp_iter_guided_next): Likewise.
4135         * testsuite/libgomp.c/pr35625.c: New test.
4137 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4139         * aclocal.m4: Regenerate.
4140         * configure: Likewise.
4141         * Makefile.in: Likewise.
4142         * testsuite/Makefile.in: Likewise.
4144 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
4146         PR middle-end/35185
4147         * testsuite/libgomp.c++/pr35185.C: New test.
4149 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4151         PR middle-end/35549
4152         * testsuite/libgomp.c/pr35549.c: New test.
4154 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4156         * testsuite/libgomp.c/atomic-3.c: New test.
4158 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4160         PR fortran/33197
4161         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
4162         .F08 file suffixes.
4164 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
4166         PR libgomp/33131
4167         * configure.ac: Add ACX_HEADER_STRING.
4168         * env.c: Include strings.h.
4169         * aclocal.m4: Regenerate.
4170         * config.h.in: Regenerate.
4171         * configure: Regenerate.
4172         * Makefile.in: Regenerate.
4173         * testsuite/Makefile.in: Regenerate.
4175 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
4177         PR middle-end/35196
4178         * testsuite/libgomp.c/pr35196.c: New test.
4180         PR middle-end/35130
4181         * testsuite/libgomp.fortran/pr35130.f90: New test.
4182         * testsuite/libgomp.c/pr35130.c: New test.
4184 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
4186         PR middle-end/33880
4187         * testsuite/libgomp.c/pr33880.c: New test.
4188         * testsuite/libgomp.fortran/pr33880.f90: New test.
4190 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
4192         * configure: Regenerate.
4194 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
4196         * configure.ac: Move futex checking into ../config/futex.m4.
4197         * configure: Rebuilt.
4198         * aclocal.m4: Rebuilt.
4199         * Makefile.in: Rebuilt.
4201         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
4202         2007-10-15 ../config/tls.m4 change.
4204 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
4206         PR c++/34513
4207         * testsuite/libgomp.c/pr34513.c: New test.
4208         * testsuite/libgomp.c++/pr34513.C: New test.
4210 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
4212         PR target/32765
4213         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
4215 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
4217         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
4219 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
4221         * testsuite/libgomp.c/private-1.c: New test.
4223 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
4224             Paolo Bonzini  <bonzini@gnu.org>
4226         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
4227         instead of 'VPATH ='.
4228         * Makefile.in: Regenerate.
4230 2007-11-23  Matthias Klose  <doko@ubuntu.com>
4232         * configure.ac: Adjust makeinfo version check.
4233         * configure: Regenerate.
4235 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
4237         PR fortran/34020
4238         * testsuite/libgomp.fortran/pr34020.f90: New test.
4240 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
4242         PR c++/33894
4243         * testsuite/libgomp.c++/atomic-1.C: New test.
4245 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
4247         PR libgomp/33275
4248         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
4249         Make x and y integers rather than (implicit) reals.  Add private (j)
4250         clause to the last omp parallel.
4252 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
4254         * configure: Regenerate following changes to ../config/tls.m4.
4256 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
4258         * testsuite/libgomp.fortran/stack.f90: New test.
4260 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
4262         * config/mingw32/proc.c: New file.
4264 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
4266         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
4267         (main): Use __get_cpuid to get i386 target fetaures.
4268         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
4269         (main): Use __get_cpuid to get x86_64 target fetaures.
4271 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
4273         PR target/32765
4274         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
4275         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
4277 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
4279         PR fortran/32550
4280         * testsuite/libgomp.fortran/pr32550.f90: New test.
4281         * testsuite/libgomp.fortran/crayptr2.f90: New test.
4283 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4285         * aclocal.m4: Regenerated.
4287 2007-07-05  Tobias Burnus  <burnus@net-b.de>
4289         PR fortran/32359
4290         * testsuite/libgomp.fortran/pr32359.f90: New.
4292 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
4294         PR libgomp/32468
4295         * sections.c (GOMP_parallel_sections_start): Only decrease
4296         number of threads to COUNT if dyn_var is true.
4297         * testsuite/libgomp.c/pr32468.c: New test.
4299 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4301         PR libgomp/26308
4302         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
4304 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
4306         PR middle-end/32362
4307         * testsuite/libgomp.c/pr32362-1.c: New test.
4308         * testsuite/libgomp.c/pr32362-2.c: New test.
4309         * testsuite/libgomp.c/pr32362-3.c: New test.
4311 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
4313         * team.c (gomp_team_start): Fix setting up thread_attr
4314         stack size.
4316 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
4318         * configure: Regenerate.
4320 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
4322         * Makefile.in: Regenerate.
4323         * configure: Regenerate.
4324         * aclocal.m4: Regenerate.
4325         * testsuite/Makefile.in: Regenerate.
4327 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
4329         * config/linux/proc.c: New file.
4331         PR libgomp/28482
4332         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
4334 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
4336         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
4338 2007-04-16  Matthias Klose  <doko@debian.org>
4340         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
4341         flags if not building with -m64.
4342         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
4343         flag for i?86-*-* targets, if current target matches -m64.
4345 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
4347         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
4348         * Makefile.in: Regenerate.
4350 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4352         PR testsuite/31369
4353         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
4354         ld_library_path.
4355         * testsuite/libgomp.fortran/fortran.exp: Likewise.
4357 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
4359         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
4360         decls.
4361         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
4362         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
4363         (parse_affinity): New function.
4364         (initialize_env): Call it and gomp_init_affinity.
4365         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
4366         create new pthread_attr_t and call gomp_init_thread_affinity
4367         on it for each thread before passing the attribute to pthread_create.
4368         * config/linux/affinity.c: New file.
4369         * config/posix/affinity.c: New file.
4370         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
4371         * configure: Rebuilt.
4372         * config.h.in: Rebuilt.
4373         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
4374         * Makefile.in: Rebuilt.
4376 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
4378         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
4379         *-*-darwin*.
4380         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
4381         and use it if found.
4383 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
4385         * testsuite/config/default.exp: New file.
4386         * testsuite/lib/libgomp.exp: New file.
4387         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
4388         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
4389         load_lib *, load_gcc_lib *): Move to libgomp.exp.
4390         (libgomp_load): Remove.
4391         * testsuite/lib/libgomp.exp (libgomp_init): Compute
4392         always_ld_library_path, not ld_library_path.  Set additional_flags
4393         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
4394         (target_compile): Do not call libgomp_init.  Append lang_library_path
4395         and lang_link_flags to options.
4396         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
4397         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
4398         here.
4399         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
4400         always_ld_library_path.  Set LD_LIBRARY_PATH here.
4401         * testsuite/libgomp.fortran/fortran.exp: Ditto.
4402         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
4403         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
4404         CX8 flag.
4405         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
4406         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
4407         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
4408         * testsuite/libgomp.c/pr29947-1.c: Ditto.
4409         * testsuite/libgomp.c/atomic-10.c: Ditto.
4411 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
4413         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
4414         dg-final cleanup-modules line.
4415         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
4416         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
4417         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
4418         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
4419         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
4420         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
4421         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
4423 2007-03-18  Andreas Schwab  <schwab@suse.de>
4425         * acinclude.m4: Adjust regular expression for ld version
4426         extraction.
4427         * configure: Regenerate.
4429 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
4431         * Makefile.am: Add install-pdf target as copied from
4432         automake v1.10 rules.
4433         * Makefile.in: Regenerate
4435 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
4437         PR libgomp/28486
4438         * configure: Regenerate.
4440         PR c++/30703
4441         * testsuite/libgomp.c++/pr30703.C: New test.
4443 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
4445         Revert:
4446         2006-07-05  Eric Christopher  <echristo@apple.com>
4447         * configure.ac: Depend addition of -pthread on host OS.
4448         * configure: Regenerate.
4450 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4452         * libgomp.texi: Fix spacing after abbreviations.
4454 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
4456         PR libgomp/30546
4457         * configure.ac: Add check for makeinfo
4458         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
4459         if an appropiate version of makeinfo is found.
4460         * aclocal.m4: Regenerated.
4461         * configure: Regenerated.
4462         * Makefile.in: Regenerated.
4463         * testsuite/Makefile.in: Regenerated.
4465 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
4467         PR libgomp/30540
4468         * libgomp.texi: More about implementation-dependent settings.
4470 2007-01-26  Tobias Burnus  <burnus@net-b.de>
4472         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
4474 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
4476         PR middle-end/30494
4477         * testsuite/libgomp.c/pr30494.c: New test.
4479 2007-01-15  Tom Tromey  <tromey@redhat.com>
4481         * configure: Rebuilt.
4482         * configure.ac: Fixed comment.
4484 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
4486         * libgomp.texi: Document implementation specific default values of
4487         environment variables.
4489 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
4491         PR libgomp/28209
4492         * libgomp.texi: New file.
4493         * configure.ac: Add --enable-generated-files-in-srcdir option.
4494         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
4495         files to srcdir.
4496         * Makefile.in: Regenerated.
4497         * config.h.in: Regenerated.
4498         * testsuite/Makefile.in: Regenerated.
4499         * NOTES: Removed.
4501 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
4503         PR libgomp/29949
4504         * env.c (omp_set_num_threads): Set illegal thread count to 1.
4506 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4508         * configure: Regenerate.
4510 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
4512         PR libgomp/29947
4513         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
4514         start if there shouldn't be any loop iterations.
4515         (gomp_loop_ordered_static_start): Remove start == end test.
4516         * testsuite/libgomp.c/pr29947-1.c: New test.
4517         * testsuite/libgomp.c/pr29947-2.c: New test.
4519 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
4521         * configure.tgt: Force initial-exec TLS model on Linux only.
4523 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
4525         * configure: Regenerated.
4527 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
4529         * env.c (parse_schedule): Reject out of range values.
4530         (parse_unsigned_long): Reject out of range, negative or zero values.
4532 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
4534         PR fortran/29629
4535         * testsuite/libgomp.fortran/pr29629.f90: New test.
4537 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
4539         PR libgomp/29494
4540         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
4541         * config/posix95: New directory.
4542         * config/posix95/omp-lock.h: New file.
4543         * config/posix95/lock.c: Likewise.
4545 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
4547         * aclocal.m4: Regenerate.
4548         * configure: Regenerate.
4550 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
4552         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
4553         '<' to '<='.
4555 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
4557         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
4558         test.
4559         * configure: Regenerate.
4560         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
4562 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
4564         PR middle-end/25261
4565         PR middle-end/28790
4566         * testsuite/libgomp.c/nestedfn-4.c: New test.
4567         * testsuite/libgomp.c/nestedfn-5.c: New test.
4568         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
4570         PR fortran/29097
4571         * testsuite/libgomp.fortran/condinc1.f: New test.
4572         * testsuite/libgomp.fortran/condinc2.f: New test.
4573         * testsuite/libgomp.fortran/condinc3.f90: New test.
4574         * testsuite/libgomp.fortran/condinc4.f90: New test.
4575         * testsuite/libgomp.fortran/condinc1.inc: New file.
4577 2006-09-18  Tom Tromey  <tromey@redhat.com>
4579         * configure: Rebuilt.
4581 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
4583         PR c/28768
4584         PR preprocessor/14634
4585         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
4586         to AC_DEFINE.
4587         * configure: Regenerate.
4589 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
4591         * testsuite/libgomp.fortran/reduction3.f90: Change
4592         -2147483648 to -huge(i)-1 to avoid overflow.
4593         * testsuite/libgomp.fortran/reduction4.f90: Change
4594         Z'ffffffff' to not(0) to avoid overflow.
4596 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
4598         PR libgomp/25938
4599         * Makefile.am (libsubincludedir): New.
4600         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
4601         * Makefile.in: Regenerate.
4603 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
4605         PR libgomp/28725
4606         * env.c: Include ctype.h.
4607         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
4608         leading and/or trailing whitespace and compare strings case
4609         insensitively.
4611 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
4613         PR fortran/28390
4614         * testsuite/libgomp.fortran/pr28390.f: New test.
4616 2006-07-05  Eric Christopher  <echristo@apple.com>
4618         * configure.ac: Depend addition of -pthread on host OS.
4619         * configure: Regenerate.
4621 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
4623         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
4624         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
4625         defined.
4627 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
4629         PR libgomp/26175
4630         PR libgomp/26477
4631         * configure.ac: If neither --enable-linux-futex nor
4632         --disable-linux-futex is passed, determine the default by checking
4633         for compiling and/or running against NPTL.  With --enable-linux-futex,
4634         check if SYS_gettid and SYS_futex are defined.
4635         * configure: Rebuilt.
4637 2006-06-14  Richard Henderson  <rth@redhat.com>
4639         PR libgomp/28008
4640         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
4641         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
4643 2006-06-09  Richard Henderson  <rth@redhat.com>
4645         * env.c (gomp_nthreads_var): Change to unsigned long.
4646         (gomp_run_sched_chunk): Likewise.
4647         (parse_unsigned_long): Rename from parse_num_threads and generalize.
4648         (initialize_env): Initialize gomp_thread_attr.
4649         * libgomp.h (gomp_nthreads_var): Update decl.
4650         (gomp_run_sched_chunk): Likewise.
4651         (gomp_thread_attr): Declare.
4652         * team.c (gomp_thread_attr): Export.
4653         (initialize_team): Don't initialize it.
4655 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
4657         PR fortran/27916
4658         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
4659         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
4661 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4663         * config/mingw32/time.c: New file.
4664         * configure.tgt: Use it.
4666 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
4668         * Makefile.am: Add install-html target. Add install-html to .PHONY
4669         * Makefile.in: Regenerate.
4671 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4673         PR libgomp/27612
4674         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
4675         * testsuite/libgomp.c/critical-1.c: Likewise.
4676         * testsuite/libgomp.c/loop-1.c: Likewise.
4677         * testsuite/libgomp.c/loop-2.c: Likewise.
4678         * testsuite/libgomp.c/single-1.c: Likewise.
4679         * testsuite/libgomp.c/ordered-1.c: Likewise.
4680         * testsuite/libgomp.c/ordered-2.c: Likewise.
4682 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
4684         PR middle-end/27416
4685         * libgomp.fortran/pr27416-1.f90: New test.
4687 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
4689         PR fortran/27395
4690         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
4691         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
4693 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4695         PR c++/26943
4696         * testsuite/libgomp.c/pr26943-1.c: New test.
4697         * testsuite/libgomp.c/pr26943-2.c: New test.
4698         * testsuite/libgomp.c/pr26943-3.c: New test.
4699         * testsuite/libgomp.c/pr26943-4.c: New test.
4700         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
4701         * testsuite/libgomp.c++/pr26943.C: New test.
4703 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4705         PR middle-end/27337
4706         * testsuite/libgomp.c++/pr27337.C: New test.
4708 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
4710         PR c/26171
4711         * testsuite/libgomp.c/pr26171.c: New test.
4713 2006-04-25  Richard Henderson  <rth@redhat.com>
4715         PR libgomp/25865
4716         * configure.ac: Use GCC_CHECK_TLS.
4717         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
4718         * Makefile.in, aclocal.m4, configure: Regenerate.
4720 2006-04-10  Matthias Klose  <doko@debian.org>
4722         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
4723         directory names containing underscores.
4725 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
4727         PR c++/26691
4728         * testsuite/libgomp.c++/pr26691.C: New test.
4730 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
4732         * testsuite/libgomp.fortran/retval2.f90: New test.
4734 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
4736         * testsuite/libgomp.c++: New directory.
4738 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
4740         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
4741         * config/posix/sem.c: Implement the above.
4743 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
4745         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
4746         define HAVE_BROKEN_POSIX_SEMAPHORES.
4747         * configure: Rebuilt.
4748         * config.h.in: Rebuilt.
4750 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4752         PR bootstrap/26161
4753         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
4754         for the other pthread check.
4755         * configure: Regenerate.
4756         * config.h.in: Regenerate.
4758 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
4760         PR libgomp/25938
4761         PR libgomp/25984
4762         * Makefile.am (fincludedir): New variable.
4763         (nodist_include_HEADERS): Remove Fortran files.
4764         (nodist_finclude_HEADERS): New variable.
4765         * Makefile.in: Regenerated.
4767 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
4769         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
4770         Remove tests for returning assumed character length arrays.
4772 2006-02-12  Roger Sayle  <roger@eyesopen.com>
4773             John David Anglin  <dave@hiauly1.hia.nrc.ca>
4775         PR libgomp/25936
4776         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
4778 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
4780         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
4782 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4784         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
4785         part of LD_LIBRARY_PATH manually.
4787 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
4789         PR libgomp/25852
4790         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
4791         libgomp_init.
4793 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
4795         PR libgomp/25884
4796         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
4797         * configure.ac (PERL): Don't set.
4798         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
4799         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
4800         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
4801         * omp.h.in: Wrap the new configure substitutions with @ characters.
4802         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
4803         * aclocal.m4, configure, Makefile.in: Regenerate.
4804         * mkomp_h.pl: Delete.
4806 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
4808         PR libgomp/25259
4809         * configure.ac: Use GCC_HEADER_STDINT.
4810         * libgomp.h: Include gstdint.h.
4811         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
4812         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
4814 2006-01-24  Richard Henderson  <rth@redhat.com>
4816         PR libgomp/25942
4817         * configure.ac: Add AM_MAINTAINER_MODE.
4818         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
4820 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
4822         * Makefile.in: Regenerate.
4823         * testsuite/Makefile.in: Regenerate.
4824         * aclocal.m4: Regenerate.
4826 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
4828         * config/posix/proc.c: Conditional include of sys/loadavg.h for
4829         Solaris.
4830         * configure.ac: Add check for loadavg.h.
4831         (link_gomp): Adjust comment.
4832         * configure: Regenerate.
4833         * config.h.in: Regenerate.
4835 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
4837         PR libgomp/25877
4838         * configure.ac: Remove check for alloca.h.
4839         * configure: Regenerate.
4840         * config.h.in: Regenerate.
4841         * libgomp.h: define gomp_alloca to be __builtin_alloca.
4842         * team.c: Remove use of alloca.h.
4843         Call gomp_alloca instead of alloca.
4845 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
4847         PR libgomp/25877
4848         * team.c: Add include of alloca.h.
4849         * configure.ac: Add check for alloca.h.
4850         * configure: Regenerate.
4851         * config.h.in: Regenerate.
4853 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
4855         PR fortran/25219
4856         * testsuite/libgomp.fortran/pr25219.f90: New test.
4858 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
4860         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
4861         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
4862         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
4863         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
4864         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
4865         testsuite/libgomp.fortran/threadprivate1.f90,
4866         testsuite/libgomp.fortran/threadprivate2.f90,
4867         testsuite/libgomp.fortran/threadprivate3.f90,
4868         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
4869         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
4870         testsuite/libgomp.fortran/omp_parse3.f90: Change required
4871         effective-target to TLS runtime.
4873         * testsuite/libgomp.fortran/pr25162.f: Require
4874         effective-target TLS runtime.
4876 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
4878         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
4879         * testsuite/libgomp.c/nestedfn-3.c: New test.
4881 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
4883         PR fortran/25162
4884         * testsuite/libgomp.fortran/pr25162.f: New test.
4886 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
4888         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
4889         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
4891 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
4893         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
4894         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
4895         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
4896         single.c, team.c, work.c, config/linux/alpha/futex.h,
4897         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
4898         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
4899         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
4900         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
4901         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
4902         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
4903         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
4904         FSF address.
4906 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
4908         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
4909         to nodist_noinst_HEADERS.
4910         * Makefile.in: Rebuilt.
4912         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
4913         add integer count field.
4914         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
4915         omp_nest_lock_t type change.
4916         (omp_init_nest_lock): Likewise.  Initialize count to 0.
4917         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
4918         Increment count.
4919         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
4920         Decrement count.
4921         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
4922         Increment count if successful and return the new nesting level.
4923         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
4924         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
4925         * testsuite/libgomp.c/lib-1.c: New test.
4926         * testsuite/libgomp.fortran/lib1.f90: New test.
4927         * testsuite/libgomp.fortran/lib2.f: New test.
4928         * testsuite/libgomp.fortran/lib3.f: New test.
4930 2005-11-17  Richard Henderson  <rth@redhat.com>
4932         PR 24845
4933         * Makefile.am (nodist_toolexeclib_HEADERS): New.
4934         * configure.ac (link_gomp): New.  Substitute it.
4935         (AC_CONFIG_FILES): Add libgomp.spec.
4936         * libgomp.spec.in: New file.
4937         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
4938         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
4940 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
4942         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
4943         reduction(-:var) behaving the same as reduction(+:var).
4944         * testsuite/libgomp.c/reduction-4.c: New test.
4946 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
4948         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
4949         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
4950         testsuite/libgomp.c/copyin-3.c,
4951         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
4952         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
4953         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
4954         testsuite/libgomp.c++/pr24455.C,
4955         testsuite/libgomp.fortran/threadprivate1.f90,
4956         testsuite/libgomp.fortran/threadprivate2.f90,
4957         testsuite/libgomp.fortran/threadprivate3.f90,
4958         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
4959         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
4960         testsuite/libgomp.fortran/omp_parse3.f90: Require
4961         effective-target TLS.
4963 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
4965         * HEADER: Remove.
4967 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
4969         PR libgomp/24797
4970         * team.c (initialize_team): Pass NULL rather than free as
4971         pthread_key_create destructor.  Initialize thread specific data
4972         pointer in initial thread to a static local variable rather than
4973         malloced memory.
4975 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
4977         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
4978         its location to ld_library_path.
4980 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
4982         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
4984 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
4986         * testsuite/libgomp.c: Rename from libgomp.dg.
4988 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
4990         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
4991         threadprivate variable 'i'.
4993 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4995         * config/linux/s390/futex.h: New file.
4996         * configure.tgt: Use it.
4998         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
4999         before the parallel.
5001 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
5003         PR c++/24734
5004         * testsuite/libgomp.c++/master-1.C: New test.
5006 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
5008         * testsuite/libgomp.dg/copyin-3.c: New test.
5010 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
5012         * testsuite/libgomp.fortran/retval1.f90: New test.
5013         * testsuite/libgomp.fortran/vla7.f90: New test.
5015 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
5017         * testsuite/libgomp.fortran/vla2.f90: New test.
5018         * testsuite/libgomp.fortran/vla3.f90: New test.
5019         * testsuite/libgomp.fortran/vla4.f90: New test.
5020         * testsuite/libgomp.fortran/vla5.f90: New test.
5021         * testsuite/libgomp.fortran/vla6.f90: New test.
5023 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
5025         * config/linux/sparc/futex.h: New file.
5026         * configure.tgt: Use it.
5027         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
5029         * critical.c: Include stdlib.h.
5030         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
5031         ignoring return value.
5032         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
5033         LIBGOMP_CHECK_SYNC_BUILTINS check.
5034         * configure: Rebuilt.
5036 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
5038         * testsuite/libgomp.fortran/vla1.f90: New test.
5040 2005-10-31  Richard Henderson  <rth@redhat.com>
5042         * testsuite/libgomp.fortran/character2.f90: Fix race condition
5043         setting 's' in different threads.
5045 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
5047         * libgomp.h (attribute_hidden, ialias): Define.
5048         * config/posix/proc.c (omp_get_num_procs): Add ialias.
5049         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
5050         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
5051         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
5052         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
5053         omp_test_lock, omp_test_nest_lock): Likewise.
5054         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
5055         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
5056         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
5057         omp_test_lock, omp_test_nest_lock): Likewise.
5058         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
5059         omp_get_dynamic, omp_get_nested): Likewise.
5060         * parallel.c (omp_get_num_threads, omp_get_max_threads,
5061         omp_get_thread_num, omp_in_parallel): Likewise.
5062         * fortran.c (ialias_redirect): Define.
5063         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
5064         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
5065         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
5066         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
5067         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
5068         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
5069         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
5070         omp_get_wtime): Add ialias_redirect.
5072 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
5074         * fortran.c: Include stdlib.h.
5076 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
5078         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
5079         * Makefile.in: Regenerated.
5081 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
5083         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
5084         * libgomp_f.h.in (omp_check_defines): New function.
5085         * env.c: Include libgomp_f.h.
5086         (initialize_env): Call omp_check_defines.
5088         * testsuite/libgomp.dg/copyin-2.c: New test.
5089         * testsuite/libgomp.c++/copyin-2.C: New test.
5090         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
5092         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
5093         * testsuite/libgomp.fortran/sharing2.f90: New test.
5095         * testsuite/libgomp.dg/copyin-1.c: New test.
5096         * testsuite/libgomp.c++/copyin-1.C: New test.
5098 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
5100         * testsuite/libgomp.fortran/crayptr1.f90: New test.
5102         * testsuite/libgomp.fortran/workshare1.f90: New test.
5104         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
5105         only test.
5106         * libgomp.fortran/sharing1.f90: New test.
5108 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
5110         PR c++/24502
5111         * testsuite/libgomp.c++/loop-7.C: New test.
5113         * testsuite/libgomp.dg/nestedfn-2.c: New test.
5115         * testsuite/libgomp.dg/nestedfn-1.c: New test.
5116         * testsuite/libgomp.fortran/reduction6.f90: New test.
5117         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
5119 2005-10-23  Richard Henderson  <rth@redhat.com>
5121         * testsuite/libgomp.c++/ctor-1.C: New.
5122         * testsuite/libgomp.c++/ctor-2.C: New.
5123         * testsuite/libgomp.c++/ctor-3.C: New.
5124         * testsuite/libgomp.c++/ctor-4.C: New.
5125         * testsuite/libgomp.c++/ctor-5.C: New.
5126         * testsuite/libgomp.c++/ctor-6.C: New.
5127         * testsuite/libgomp.c++/ctor-7.C: New.
5128         * testsuite/libgomp.c++/ctor-8.C: New.
5129         * testsuite/libgomp.c++/ctor-9.C: New.
5131 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
5133         PR 24455
5134         * testsuite/libgomp.c++/pr24455-1.C: New test.
5135         * testsuite/libgomp.c++/pr24455.C: New test.
5136         * testsuite/libgomp.dg/pr24455-1.c: New test.
5137         * testsuite/libgomp.dg/pr24455.c: New test.
5139 2005-10-20  Richard Henderson  <rth@redhat.com>
5141         * testsuite/libgomp.c++/loop-6.C: New.
5142         * testsuite/libgomp.dg/loop-3.c: New.
5144 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
5146         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
5147         explicitly private.
5148         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
5149         explicitly shared.
5151 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
5153         * testsuite/libgomp.fortran/jacobi.f: New test.
5155 2005-10-19  Richard Henderson  <rth@redhat.com>
5157         * configure.tgt (i?86-linux): Default to with_arch instead of
5158         CFLAGS.  Add -mtune to match target_cpu.
5159         (x86_64-linux): Tune to i686.
5161         * fortran.c (omp_test_nest_lock_): Fix typo.
5163 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
5165         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
5166         gomp_ordered_sync): Do nothing if team->nthreads == 1.
5167         * testsuite/libgomp.dg/ordered-3.c: New test.
5169         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
5170         Remove volatile keyword.
5172         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
5173         in COMMON block to avoid warnings on 64-bit targets.
5175 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
5177         * testsuite/libgomp.dg/shared-3.c: New test.
5179 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
5181         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
5182         * testsuite/libgomp.fortran/reduction5.f90: New test.
5184 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
5186         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
5187         dg-options.
5188         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
5189         flush loop now that __sync_synchronize has proper memory barrier.
5190         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
5191         Add -ffixed-form to dg-options.
5193 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
5195         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
5196         from subdirectories.
5197         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
5198         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
5199         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
5200         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
5201         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
5202         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
5203         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
5204         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
5205         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
5206         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
5207         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
5208         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
5209         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
5210         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
5211         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
5212         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
5213         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
5214         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
5215         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
5216         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
5217         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
5218         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
5219         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
5220         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
5221         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
5223 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
5225         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
5226         lang_library_path exists.  Use find instead of glob to gather tests.
5227         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
5229 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
5231         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
5232         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
5233         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
5234         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
5235         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
5236         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
5237         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
5238         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
5239         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
5240         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
5241         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
5242         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
5243         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
5245 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
5247         * testsuite/libgomp.dg/vla-1.c: New test.
5249         * testsuite/libgomp.fortran/reference2.f90: New test.
5251         * testsuite/libgomp.fortran/character2.f90: Remove explicit
5252         declaration of omp_get_thread_num.
5253         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
5254         use omp_lib.
5256         * testsuite/libgomp.fortran/reduction1.f90: New test.
5257         * testsuite/libgomp.fortran/reduction2.f90: New test.
5258         * testsuite/libgomp.fortran/reduction3.f90: New test.
5259         * testsuite/libgomp.fortran/reduction4.f90: New test.
5261 2005-10-13  Richard Henderson  <rth@redhat.com>
5263         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
5264         * Makefile.in: Regenerate.
5265         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
5266         * libgomp.h: Include bar.h.
5267         (struct gomp_barrier): Remove.
5268         (struct gomp_team): Add barrier.  Replace master_barrier with
5269         master_release.  Replace threads with ordered_release.
5270         (struct gomp_thread): Replace barrier with release.
5271         * ordered.c (gomp_ordered_first): Update for ordered_release change.
5272         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
5273         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
5274         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
5275         (GOMP_single_copy_end): Likewise.
5276         * team.c (gomp_threads_dock): New.
5277         (gomp_barrier_init, gomp_barrier_destroy): Remove.
5278         (gomp_thread_start): Use gomp_barrier_wait.
5279         (new_team, free_team): Update for gomp_team changes.
5280         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
5281         (gomp_team_end): Use gomp_barrier_wait.
5282         (initialize_team): Update for gomp_thread changes.
5283         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
5284         (gomp_work_share_end_nowait): Use atomic ops when available.
5285         * config/linux/bar.c, config/linux/bar.h: New files.
5286         * config/posix/bar.c, config/posix/bar.h: New files.
5288 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
5290         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
5291         * testsuite/libgomp.dg/single-2.c: New test.
5293         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
5294         lang_link_flags): Unset, so that they aren't inherited from previously
5295         sourced *.exp.
5297         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
5299 2005-10-12  Richard Henderson  <rth@redhat.com>
5301         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
5302         (libgomp_init): Use lang_test_file, lang_library_path, and
5303         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
5305         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
5306         (lang_test_file, lang_link_flags): New.
5307         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
5309         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
5310         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
5311         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
5312         testsuite/libgomp.c++/parallel-1.C,
5313         testsuite/libgomp.c++/reduction-1.C,
5314         testsuite/libgomp.c++/reduction-2.C,
5315         testsuite/libgomp.c++/reduction-3.C,
5316         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
5317         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
5318         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
5319         New files, largely cribbed from the C testsuite.
5321 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
5323         * testsuite/libgomp.fortran/character1.f90: New test.
5324         * testsuite/libgomp.fortran/character2.f90: New test.
5326         * testsuite/libgomp.dg/nested-1.c: New test.
5327         * testsuite/libgomp.dg/nested-2.c: New test.
5328         * testsuite/libgomp.fortran/do1.f90: New test.
5329         * testsuite/libgomp.fortran/do2.f90: New test.
5331         * testsuite/libgomp.fortran/reference1.f90: New test.
5333 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
5335         * testsuite/libgomp.dg/reduction-1.c: New test.
5336         * testsuite/libgomp.dg/reduction-2.c: New test.
5337         * testsuite/libgomp.dg/reduction-3.c: New test.
5339 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
5341         * testsuite/libgomp.dg/atomic-1.c: New test.
5342         * testsuite/libgomp.dg/atomic-2.c: New test.
5344 2005-10-09  Richard Henderson  <rth@redhat.com>
5346         * critical.c (atomic_lock): New.
5347         (initialize_critical): Initialize it.
5348         (GOMP_atomic_start, GOMP_atomic_end): New.
5349         * libgomp.map: Export them.
5350         * libgomp_g.h: Declare them.
5352         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
5354 2005-10-02  Richard Henderson  <rth@redhat.com>
5356         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
5357         to XCFLAGS instead of CFLAGS.
5359 2005-09-30  Richard Henderson  <rth@redhat.com>
5361         * configure.ac: Determine whether -pthread or -lpthread is needed.
5362         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
5363         * Makefine.in, configure: Rebuild.
5365 2005-09-28  Richard Henderson  <rth@redhat.com>
5367         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
5368         * testsuite/libgomp.dg/omp-single-3.c: New test.
5370 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
5372         * testsuite/libgomp.dg/omp-single-2.c: New test.
5373         * testsuite/libgomp.dg/shared-2.c: Fix return code.
5375 2005-09-27  Richard Henderson  <rth@redhat.com>
5377         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
5378         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
5380 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
5382         * testsuite/libgomp.dg/omp-loop03.c: New test.
5384 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
5386         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
5388 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
5390         * testsuite/libgomp.dg/omp-single-1.c: New test.
5391         * testsuite/libgomp.dg/shared-1.c: Return 0.
5392         Add prototype for abort.
5393         * testsuite/libgomp.dg/shared-2.c: Likewise.
5395 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
5397         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
5398         constructs.
5400 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
5402         * testsuite/libgomp.dg/shared-1.c: New test.
5403         * testsuite/libgomp.dg/shared-2.c: New test.
5405 2005-09-24  Richard Henderson  <rth@redhat.com>
5407         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
5409 2005-09-24  Richard Henderson  <rth@redhat.com>
5411         * iter.c (gomp_iter_static_next): Round up when computing number
5412         of iterations.  Don't bother distributing a remainder equally.
5414         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
5415         Don't call srand.  Zero b before testing.
5416         (main): New.
5418 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
5420         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
5421         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
5423 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
5425         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
5426         without !$omp end do, followed immediately by subroutine end.
5428 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
5430         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
5432 2005-09-22  Richard Henderson  <rth@redhat.com>
5434         * critical.c (GOMP_critical_name_start): Change argument to void**.
5435         Reuse the pointer space if the mutex fits.
5436         (GOMP_critical_name_end): Likewise.
5437         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
5438         * libgomp_g.h (GOMP_critical_name_start): Update decl.
5439         (GOMP_critical_name_end): Likewise.
5440         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
5441         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
5443 2005-09-20  Richard Henderson  <rth@redhat.com>
5445         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
5446         (create_lock_lock): New.
5447         (initialize_critical): Initialize it.
5448         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
5449         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
5451 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
5453         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
5455 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
5457         * testsuite/libgomp.dg/omp-loop01.c: New test.
5458         * testsuite/libgomp.dg/omp-loop02.c: New test.
5460 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
5462         * configure.ac (AC_PROG_FC): Add.
5463         (USE_FORTRAN): New automake conditional.
5464         * configure: Rebuilt.
5465         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
5466         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
5467         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
5468         Add rules to build them.
5469         * Makefile.in: Rebuilt.
5470         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
5471         OMP_NEST_LOCK_KIND.
5472         * libgomp.map: Add Fortran wrappers.
5473         * libgomp_f.h.in: New file.
5474         * omp_lib.h.in: New file.
5475         * omp_lib.f90.in: New file.
5476         * fortran.c: New file.
5477         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
5478         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
5479         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
5480         libgfortran has been built.
5481         * testsuite/libgomp.fortran/fortran.exp: New file.
5482         * testsuite/libgomp.fortran/omp_cond1.f: New test.
5483         * testsuite/libgomp.fortran/omp_cond2.f: New test.
5484         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
5485         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
5486         * testsuite/libgomp.fortran/omp_hello.f: New test.
5487         * testsuite/libgomp.fortran/omp_orphan.f: New test.
5488         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
5489         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
5490         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
5491         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
5492         * testsuite/libgomp.fortran/omp_reduction.f: New test.
5493         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
5494         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
5496 2005-08-30  Richard Henderson  <rth@redhat.com>
5498         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
5499         function for when aliases are not usable.
5500         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
5501         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
5502         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
5503         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
5504         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
5505         GOMP_loop_ordered_guided_next): Likewise.
5506         * ordered.c (GOMP_ordered_start): Likewise.
5508 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
5510         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
5511         * testsuite/libgomp.dg/omp_hello.c: Fix return code
5512         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
5513         * testsuite/libgomp.dg/omp_orphan.c: Likewise
5514         * testsuite/libgomp.dg/omp_reduction.c: Likewise
5515         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
5516         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
5517         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
5518         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
5520 2005-07-07  Eric Christopher  <echristo@redhat.com>
5521             Diego Novillo  <dnovillo@redhat.com>
5523         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
5524         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
5525         up code.
5526         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
5527         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
5528         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
5529         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
5530         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
5531         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
5532         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
5534 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
5536         * TOPLEVEL.patch: Remove.
5538 2005-05-16  Richard Henderson  <rth@redhat.com>
5540         * configure.ac: Test for clock_gettime.
5541         * config.h.in, configure: Rebuild.
5542         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
5543         (omp_get_wtime): Use clock_gettime if available.
5544         (omp_get_wtick): Use clock_getres if available.
5546 2005-05-11  Richard Henderson  <rth@redhat.com>
5548         * config/linux/ia64/futex.h: New file.
5549         * configure.tgt: Use it.
5551         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
5553 2005-05-07  Richard Henderson  <rth@redhat.com>
5555         * config/linux/powerpc/futex.h: New file.
5556         * configure.tgt: Use it.
5558         * config/linux/i486/futex.h: Merge ...
5559         * config/linux/x86_64/futex.h: ... into ...
5560         * config/linux/x86/futex.h: ... here.
5561         * configure.tgt: Update to match.
5563 2005-05-06  Richard Henderson  <rth@redhat.com>
5565         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
5566         * config/linux/i486/futex.h: Likewise.
5567         * config/linux/x86_64/futex.h: Likewise.
5569         * config/linux/lock.c: New file.
5570         * config/linux/omp-lock.h: New file.
5572         * critical.c, env.h: Don't include omp.h
5573         * config/posix/lock.c: Include libgomp.h instead of omp.h.
5574         * config/posix/time.c: Likewise.
5575         * config/posix/omp-lock.h: New file.
5576         * libgomp.h: Include omp-lock.h and omp.h.
5577         * Makefile.am (nodist_include_HEADERS): New.
5578         (omp.h): New rule.
5579         * configure.ac (PERL): New.
5580         * mkomp_h.pl: New file.
5581         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
5582         with templates.
5583         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
5585         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
5586         build directory.  Re-add -march=i486 hack.
5588         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
5589         (libgomp_link_flags): Remove.
5590         (libgomp_initialized): Remove.
5591         (libgomp_init): Don't protect from reinitialization.  Copy code
5592         from libstdc++ for getting the multilib set correctly.
5594 2005-05-05  Richard Henderson  <rth@redhat.com>
5596         * config/linux/alpha/futex.h: New file.
5597         * configure.tgt (alpha*-*-linux*): Use it.
5599         * config/posix/mutex.c: New file.
5600         * config/posix/sem.c: Use libgomp.h.
5602         * configure.tgt (x86_64-linux): Also test CC for -m32.
5603         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
5605         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
5606         after $gccpath.
5608         * Makefile.am (SUBDIRS): New.
5609         (libgomp_la_LDFLAGS): Add -lpthread.
5610         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
5611         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
5613         * libgomp_g.h: New file.
5614         * libgomp.h: Split out all public declarations to libgomp_g.h.
5615         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
5616         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
5617         * config/linux/sem.h: Likewise.
5618         * config/posix/sem.h: Likewise.
5620         * Makefile.am (AM_LDFLAGS): New.
5621         (libgomp_version_script): Split out from ...
5622         (libgomp_la_LDFLAGS): ... here.
5623         (libgomp_version_info): New.
5624         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
5625         (LIBGOMP_ENABLE): New.
5626         (LIBGOMP_CHECK_LINKER_FEATURES): New.
5627         (LIBGOMP_ENABLE_SYMVERS): New.
5628         * configure.ac (AC_INIT): Version 1.0.
5629         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
5630         (enable-linux-futex): Likewise.  Rename from enable-futex.
5631         (libtool_VERSION): New.
5632         (LIBGOMP_ENABLE_SYMVERS): Use it.
5633         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
5634         * Makefile.in, aclocal.m4, configure: Rebuild.
5636         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
5637         (gomp_mutex_unlock_slow): Fix typo.
5638         * config/linux/sem.c: Similarly.
5639         (gomp_sem_post_slow): Fix typo.
5640         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
5641         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
5642         [__PIC__] (sys_futex0): Don't use tmp output in asm.
5644         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
5645         (libgomp_la_LDFLAGS): Add top_srcdir to path.
5646         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
5647         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
5648         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
5649         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
5650         LDFLAGS.  Pull enable_futex check to top-level.
5651         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
5652         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
5654         First attempt at real configury.
5655         * Makefile, config.h: Remove file.
5656         * Makefile.am, Makefile.in: New file.
5657         * acinclude.m4 aclocal.m4: New file.
5658         * configure.ac, configure.tgt, configure: New file.
5660         * config/posix/lock.c: Rename from sys-lock.c.
5661         * config/posix/mutex.h: Rename from sys-mutex.h.
5662         * config/posix/sem.c: Rename from sys-sem.c.
5663         * config/posix/sem.h: Rename from sys-sem.h.
5664         * config/posix/proc.c: Rename from sys-proc.c.
5665         * config/posix/time.c: Rename from sys-proc.c.
5667         * config/linux/mutex.c: New file.
5668         * config/linux/mutex.h: New file.
5669         * config/linux/sem.c: New file.
5670         * config/linux/sem.h: New file.
5671         * config/linux/i486/futex.h: New file.
5672         * config/linux/x86_64/futex.h: New file.
5674 2005-05-04  Richard Henderson  <rth@redhat.com>
5676         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
5677         * libgomp.h: Declare them.
5678         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
5679         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
5681 2005-05-04  Richard Henderson  <rth@redhat.com>
5683         * libgomp-1 code drop
5685 2005-05-04  Richard Henderson  <rth@redhat.com>
5687         * iter.c (gomp_iter_static_next): Return tri-state on 0.
5688         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
5689         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
5690         (gomp_iter_static_next): Update.
5691         (gomp_ordered_static_next): Update.
5692         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
5693         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
5694         totally empty range.
5695         (gomp_loop_ordered_static_next): Refine test for calling
5696         gomp_ordered_static_next.
5697         * testsuite/ordered-1.c: Add case for more threads than iterations.
5699         * iter.c (gomp_iter_runtime_next_locked): Remove.
5700         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
5701         gomp_loop_guided_start, gomp_loop_ordered_static_start,
5702         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
5703         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
5704         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
5705         gomp_loop_ordered_guided_next): Downcase name, make static, add
5706         an external alias with the old name.
5707         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
5708         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
5709         switch and call one of the above static functions.
5710         * libgomp.h: Update.
5712         * work.c (gomp_work_share_start): Lock the mutex for !first too.
5713         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
5714         GOMP_loop_guided_start, GOMP_loop_runtime_start,
5715         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
5716         GOMP_loop_ordered_guided_start): Update to match.
5717         * sections.c (GOMP_sections_start): Likewise.
5718         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
5720         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
5721         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
5722         Use bounds check instead of modulus.
5723         (gomp_ordered_sync): Split out of GOMP_ordered_start.
5724         (gomp_ordered_last): Don't sync with ordered_owner here.
5725         (gomp_ordered_next): Likewise.
5726         (gomp_ordered_static_loop_next): Likewise.
5727         * loop.c, libgomp.h: Update to match.
5729         * libgomp.h (GOMP_barrier): Declare.
5731         * testsuite/barrier-1.c: New file.
5732         * testsuite/critical-1.c: New file.
5733         * testsuite/ordered-2.c: New file.
5734         * testsuite/ordered-1.c: New file.
5735         * testsuite/sections-1.c: New file.
5736         * testsuite/single-1.c: New file.
5737         * testsuite/Makefile (TESTS): Add them.
5739 2005-05-04  Richard Henderson  <rth@redhat.com>
5741         * libgomp.h (struct gomp_work_share): Add ordered_owner.
5742         * loop.c (GOMP_loop_static_start): If not the startup thread,
5743         acquire the mutex to wait for initialization complete.
5744         (GOMP_loop_ordered_static_start): Likewise.
5745         (GOMP_loop_ordered_runtime_start): Likewise.
5746         (GOMP_loop_ordered_static_first): Remove.
5747         (GOMP_loop_ordered_dynamic_first): Remove.
5748         (GOMP_loop_ordered_guided_first): Remove.
5749         (GOMP_loop_ordered_runtime_first): Remove.
5750         * ordered.c (gomp_ordered_loop_first): Post to own release when
5751         we're the first thread.
5752         (gomp_ordered_loop_last): Wait on release if not owner.
5753         (gomp_ordered_loop_next): Likewise.
5754         (gomp_ordered_static_loop_init): New.
5755         (gomp_ordered_static_loop_next): Use ordered_owner.
5756         (GOMP_ordered_start): Likewise.
5757         * work.c (gomp_new_work_share): Initialize ordered_owner.
5759 2005-05-03  Richard Henderson  <rth@redhat.com>
5761         * Makefile (OPT): New.
5762         (CFLAGS): Use it.
5764         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
5765         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
5766         * libgomp.h, libgomp.map, NOTES: Update to match.
5768         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
5769         Add initialized and thr members.
5770         (gomp_thread_start): Pause when initially spawned to wait for
5771         the whole team to be created.
5772         (gomp_team_start): Release team members at the end.
5774         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
5775         (f_foo_1): Use GOMP_loop_end.
5776         (f_foo_2): Use GOMP_loop_end_nowait.
5778         * testsuite/loop-2.c: New file.
5779         * testsuite/Makefile (TESTS): Add it.
5781 2005-05-03  Richard Henderson  <rth@redhat.com>
5783         * iter.c (gomp_iter_static_next): Fix overflow check typo.
5784         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
5785         * team.c (new_team): Initialize oldest_live_gen to 1 if no
5786         initial work_share.
5788         * testsuite/Makefile: New file.
5789         * testsuite/loop-1.c: New file.
5791 2005-05-03  Richard Henderson  <rth@redhat.com>
5793         Initial implementation and checkin.