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