12016-06-03 Release Manager 2 3 * GCC 5.4.0 released. 4 52016-04-07 Thomas Schwinge <thomas@codesourcery.com> 6 7 Backport trunk r234428: 8 9 2016-03-23 James Norris <jnorris@codesourcery.com> 10 Daichi Fukuoka <dc-fukuoka@sgi.com> 11 12 PR libgomp/69414 13 * oacc-mem.c (delete_copyout, update_dev_host): Fix device address. 14 * testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests. 15 * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise. 16 * testsuite/libgomp.oacc-fortran/update-1.f90: New file. 17 182016-02-16 Tom de Vries <tom@codesourcery.com> 19 20 backport from trunk: 21 PR lto/67709 22 2016-02-16 Tom de Vries <tom@codesourcery.com> 23 24 * testsuite/libgomp.fortran/declare-simd-4.f90: New test. 25 262016-02-10 Jakub Jelinek <jakub@redhat.com> 27 28 Backported from mainline 29 2016-01-07 Jakub Jelinek <jakub@redhat.com> 30 31 PR middle-end/68960 32 * testsuite/libgomp.c/pr68960.c: New test. 33 342016-01-26 Tom de Vries <tom@codesourcery.com> 35 36 PR tree-optimization/69110 37 * testsuite/libgomp.c/pr69110.c: New test. 38 392016-01-14 Dominique d'Humieres <dominiq@lps.ens.fr> 40 41 PR fortran/66680 42 * testsuite/libgomp.fortran/pr66680.f90: New test. 43 442015-12-04 Release Manager 45 46 * GCC 5.3.0 released. 47 482015-11-26 David Edelsohn <dje.gcc@gmail.com> 49 50 * configure: Regenerate. 51 522015-09-22 Chung-Lin Tang <cltang@codesourcery.com> 53 54 Backport from mainline: 55 56 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com> 57 58 PR libgomp/67141 59 * oacc-int.h (goacc_host_init): Add declaration. 60 * oacc-host.c (goacc_host_init): Remove static and constructor attribute. 61 * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end. 62 632015-08-24 Joost VandeVondele <vondele@gnu.gcc.org> 64 65 PR libgomp/66761 66 PR libgomp/67303 67 * iter.c (gomp_iter_dynamic_next): Employ an atomic load. 68 (gomp_iter_guided_next): Idem. 69 * iter_ull.c (gomp_iter_ull_dynamic_next): Idem. 70 (gomp_iter_ull_guided_next): Idem. 71 * config/linux/wait.h (do_spin): Idem. 72 732015-07-16 Release Manager 74 75 * GCC 5.2.0 released. 76 772015-07-15 Thomas Schwinge <thomas@codesourcery.com> 78 79 Backport trunk r225560: 80 81 2015-07-08 Thomas Schwinge <thomas@codesourcery.com> 82 83 PR libgomp/65099 84 * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not 85 in a 64-bit configuration. 86 * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia 87 offloading testing if no such device is available. 88 * testsuite/libgomp.oacc-c/c.exp: Likewise. 89 * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. 90 91 Backport trunk r223801: 92 93 2015-05-28 Julian Brown <julian@codesourcery.com> 94 95 PR libgomp/65742 96 97 * oacc-init.c (plugin/plugin-host.h): Include. 98 (acc_on_device): Check whether we're in an offloaded region for 99 host_nonshm 100 plugin. Don't use __builtin_acc_on_device. 101 * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set 102 nonshm_exec flag in thread-local data. 103 (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local 104 data for host_nonshm plugin. 105 (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data 106 for host_nonshm plugin. 107 * plugin/plugin-host.h: New. 108 1092015-06-30 Jakub Jelinek <jakub@redhat.com> 110 111 PR middle-end/66702 112 * testsuite/libgomp.c++/pr66702-1.C: New test. 113 * testsuite/libgomp.c++/pr66702-2.C: New test. 114 1152015-05-22 Jakub Jelinek <jakub@redhat.com> 116 117 Backported from mainline 118 2015-05-19 Jakub Jelinek <jakub@redhat.com> 119 120 PR middle-end/66199 121 * testsuite/libgomp.c/pr66199-1.c: New test. 122 * testsuite/libgomp.c/pr66199-2.c: New test. 123 * testsuite/libgomp.c++/pr66199-1.C: New test. 124 * testsuite/libgomp.c++/pr66199-2.C: New test. 125 * testsuite/libgomp.fortran/pr66199-1.f90: New test. 126 * testsuite/libgomp.fortran/pr66199-2.f90: New test. 127 128 2015-05-13 Jakub Jelinek <jakub@redhat.com> 129 130 PR middle-end/66133 131 * testsuite/libgomp.c/pr66133.c: New test. 132 1332015-04-22 Release Manager 134 135 * GCC 5.1.0 released. 136 1372015-04-08 Julian Brown <julian@codesourcery.com> 138 139 * libgomp.h (target_mem_desc: Remove mem_map field. 140 (acc_dispatch_t): Remove open_device_func, close_device_func, 141 get_device_num_func, set_device_num_func, target_data members. 142 Change create_thread_data_func argument to device number instead of 143 generic pointer. 144 * oacc-async.c (assert.h): Include. 145 (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async) 146 (acc_wait_all, acc_wait_all_async): Use current host thread's 147 active device, not base_dev. 148 * oacc-cuda.c (acc_get_current_cuda_device) 149 (acc_get_current_cuda_context, acc_get_cuda_stream) 150 (acc_set_cuda_stream): Likewise. 151 * oacc-host.c (host_dispatch): Don't set open_device_func, 152 close_device_func, get_device_num_func or set_device_num_func. 153 * oacc-init.c (base_dev, init_key): Remove. 154 (cached_base_dev): New. 155 (name_of_acc_device_t): New. 156 (acc_init_1): Initialise default-numbered device, not zeroth. 157 (acc_shutdown_1): Close all devices of a given type. 158 (goacc_destroy_thread): Don't use base_dev. 159 (lazy_open, lazy_init, lazy_init_and_open): Remove. 160 (goacc_attach_host_thread_to_device): New. 161 (acc_init): Reimplement with goacc_attach_host_thread_to_device. 162 (acc_get_num_devices): Don't use base_dev. 163 (acc_set_device_type): Reimplement. 164 (acc_get_device_type): Don't use base_dev. 165 (acc_get_device_num): Tweak logic. 166 (acc_set_device_num): Likewise. 167 (acc_on_device): Use acc_get_device_type. 168 (goacc_runtime_initialize): Initialize cached_base_dev not base_dev. 169 (goacc_lazy_initialize): Reimplement with acc_init and 170 goacc_attach_host_thread_to_device. 171 * oacc-int.h (goacc_thread): Add base_dev field. 172 (base_dev): Remove extern declaration. 173 (goacc_attach_host_thread_to_device): Add prototype. 174 * oacc-mem.c (acc_malloc): Use current thread's device instead of 175 base_dev. 176 (acc_free): Likewise. 177 (acc_memcpy_to_device): Likewise. 178 (acc_memcpy_from_device): Likewise. 179 * oacc-parallel.c (select_acc_device): Remove. Replace calls with 180 goacc_lazy_initialize (throughout). 181 (GOACC_parallel): Use tgt_offset to locate target functions. 182 * target.c (gomp_map_vars): Don't set tgt->mem_map. 183 (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map. 184 (gomp_load_plugin_for_device): Remove open_device, close_device, 185 get_device_num, set_device_num openacc hook initialisation. Don't set 186 openacc.target_data. 187 * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device) 188 (GOMP_OFFLOAD_openacc_close_device) 189 (GOMP_OFFLOAD_openacc_get_device_num) 190 (GOMP_OFFLOAD_openacc_set_device_num): Remove. 191 (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument 192 to int. 193 * plugin/plugin-nvptx.c (ptx_inited): Remove. 194 (instantiated_devices, ptx_dev_lock): New. 195 (struct ptx_image_data): New. 196 (ptx_devices, ptx_images, ptx_image_lock): New. 197 (fini_streams_for_device): Reorder cuStreamDestroy call. 198 (nvptx_get_num_devices): Remove forward declaration. 199 (nvptx_init): Change return type to bool. 200 (nvptx_fini): Remove. 201 (nvptx_attach_host_thread_to_device): New. 202 (nvptx_open_device): Return struct ptx_device* instead of void*. 203 (nvptx_close_device): Change argument type to struct ptx_device*, 204 return type to void. 205 (nvptx_get_num_devices): Use instantiated_devices not ptx_inited. 206 (kernel_target_data, kernel_host_table): Remove static globals. 207 (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove. 208 (GOMP_OFFLOAD_init_device): Reimplement. 209 (GOMP_OFFLOAD_fini_device): Likewise. 210 (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New. 211 (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host) 212 (GOMP_OFFLOAD_host2dev): Use ORD argument. 213 (GOMP_OFFLOAD_openacc_open_device) 214 (GOMP_OFFLOAD_openacc_close_device) 215 (GOMP_OFFLOAD_openacc_set_device_num) 216 (GOMP_OFFLOAD_openacc_get_device_num): Remove. 217 (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int 218 (device number). 219 220 testsuite/ 221 * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test. 222 2232015-04-06 Ilya Verbin <ilya.verbin@intel.com> 224 225 * libgomp-plugin.h (struct mapping_table): Replace with addr_pair. 226 * libgomp.h (struct gomp_memory_mapping): Remove. 227 (struct target_mem_desc): Change type of mem_map from 228 gomp_memory_mapping * to splay_tree_s *. 229 (struct gomp_device_descr): Remove register_image_func, get_table_func. 230 Add load_image_func, unload_image_func. 231 Change type of mem_map from gomp_memory_mapping to splay_tree_s. 232 Remove offload_regions_registered. 233 (gomp_init_tables): Remove. 234 (gomp_free_memmap): Change type of argument from gomp_memory_mapping * 235 to splay_tree_s *. 236 * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister. 237 * oacc-host.c (host_dispatch): Do not initialize register_image_func, 238 get_table_func, mem_map.is_initialized, mem_map.splay_tree.root, 239 offload_regions_registered. 240 Initialize load_image_func, unload_image_func, mem_map.root. 241 (goacc_host_init): Do not initialize host_dispatch.mem_map.lock. 242 * oacc-init.c (lazy_open): Don't call gomp_init_tables. 243 (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's. 244 * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of 245 gomp_memory_mapping *. Use dev's lock and splay_tree. 246 (lookup_dev): Use dev's lock. 247 (acc_deviceptr): Pass dev to lookup_host instead of mem_map. 248 (acc_is_present): Likewise. 249 (acc_map_data): Likewise. 250 (acc_unmap_data): Likewise. Use dev's lock. 251 (present_create_copy): Likewise. 252 (delete_copyout): Pass dev to lookup_host instead of mem_map. 253 (update_dev_host): Likewise. 254 (gomp_acc_remove_pointer): Likewise. Use dev's lock. 255 * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree. 256 * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove. 257 (GOMP_OFFLOAD_get_table): Remove 258 (GOMP_OFFLOAD_load_image): New function. 259 (GOMP_OFFLOAD_unload_image): New function. 260 * target.c (register_lock): New mutex for offload image registration. 261 (num_devices): Do not guard with PLUGIN_SUPPORT. 262 (gomp_realloc_unlock): New static function. 263 (gomp_map_vars_existing): Add device descriptor argument. Unlock mutex 264 before gomp_fatal. 265 (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's. 266 Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal. 267 (gomp_copy_from_async): Use dev's lock and splay_tree instead of 268 mem_map's. 269 (gomp_unmap_vars): Likewise. 270 (gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and 271 splay_tree instead of mm's. Unlock mutex before gomp_fatal. 272 (gomp_offload_image_to_device): New static function. 273 (GOMP_offload_register): Add mutex lock. 274 Call gomp_offload_image_to_device for all initialized devices. 275 Replace gomp_realloc with gomp_realloc_unlock. 276 (GOMP_offload_unregister): New function. 277 (gomp_init_tables): Replace with gomp_init_device. Replace a call to 278 get_table_func from the plugin with calls to init_device_func and 279 gomp_offload_image_to_device. 280 (gomp_free_memmap): Change type of argument from gomp_memory_mapping * 281 to splay_tree_s *. 282 (GOMP_target): Do not call gomp_init_tables. Use dev's lock and 283 splay_tree instead of mem_map's. Unlock mutex before gomp_fatal. 284 (GOMP_target_data): Do not call gomp_init_tables. 285 (GOMP_target_update): Likewise. Remove argument from gomp_update. 286 (gomp_load_plugin_for_device): Replace register_image and get_table 287 with load_image and unload_image in DLSYM (). 288 (gomp_register_images_for_device): Remove function. 289 (gomp_target_init): Do not initialize current_device.mem_map.*, 290 current_device.offload_regions_registered. 291 Remove call to gomp_register_images_for_device. 292 Do not free offload_images and num_offload_images. 293 2942015-03-30 Jakub Jelinek <jakub@redhat.com> 295 296 PR fortran/65597 297 * testsuite/libgomp.fortran/pr65597.f90: New test. 298 2992015-03-27 Tom de Vries <tom@codesourcery.com> 300 301 PR testsuite/65594 302 * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare. 303 (init, check): New function. 304 (foo): Change return type to void. 305 (main): Call init and check. 306 3072015-03-27 Tom de Vries <tom@codesourcery.com> 308 309 PR testsuite/65594 310 * testsuite/libgomp.graphite/force-parallel-6.c (M): Define. 311 (foo): Use M for non-inner loops to scale down test-case. 312 3132015-03-25 Kai Tietz <ktietz@redhat.com> 314 315 PR libgomp/64972 316 * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available. 317 (GOACC_data_start): Likewise. 318 * target.c (gomp_map_vars): Likewise. 319 3202015-03-21 John David Anglin <danglin@gcc.gnu.org> 321 322 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on 323 hppa*-*-hpux*. 324 3252015-03-19 Jakub Jelinek <jakub@redhat.com> 326 327 * testsuite/libgomp.c/target-10.c: New test. 328 * testsuite/libgomp.c++/target-4.C: New test. 329 3302015-03-13 Ilya Verbin <ilya.verbin@intel.com> 331 332 * testsuite/libgomp.fortran/declare-target-1.f90: New test. 333 * testsuite/libgomp.fortran/declare-target-2.f90: New file. 334 3352015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de> 336 337 * configure.tgt (*-*-rtems*): Use local-exec TLS model. 338 * configure.ac (*-*-rtems*): Assume Pthread is supported. 339 (pthread.h): Check for this header file. 340 * configure: Regenerate. 341 3422015-02-25 Tom de Vries <tom@codesourcery.com> 343 344 * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA) 345 (check_reduction_op, check_reduction_macro, max, min): 346 Declare. 347 (test_reductions_int, test_reductions_minmax, test_reductions_bool): New 348 function. 349 (main): Use new functions. 350 3512015-02-18 Ilya Tocar <ilya.tocar@intel.com> 352 353 * target.c (gomp_load_plugin_for_device): Use const char * instead of 354 char * for variables holding dlerror return values. 355 (DLSYM_OPT): Ditto. 356 3572015-02-17 Thomas Schwinge <thomas@codesourcery.com> 358 359 * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo. 360 3612015-02-17 Thomas Schwinge <thomas@codesourcery.com> 362 Cesar Philippidis <cesar@codesourcery.com> 363 364 * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid, 365 GOACC_ctaid, and GOACC_nctaid routines. 366 3672015-02-11 Jakub Jelinek <jakub@redhat.com> 368 369 PR c/64824 370 * testsuite/libgomp.c/atomic-18.c: New test. 371 * testsuite/libgomp.c++/atomic-16.C: New test. 372 3732015-02-04 Jakub Jelinek <jakub@redhat.com> 374 375 PR c/64824 376 PR c/64868 377 * testsuite/libgomp.c/pr64824.c: New test. 378 * testsuite/libgomp.c/pr64868.c: New test. 379 * testsuite/libgomp.c++/pr64824.C: New test. 380 * testsuite/libgomp.c++/pr64868.C: New test. 381 3822015-02-01 David Edelsohn <dje.gcc@gmail.com> 383 384 PR libgomp/64635 385 * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h. 386 Link with -lpthread. 387 * config/aix/plugin-suffix.h: Delete. 388 3892015-01-28 Jack Howarth <howarth.at.gcc@gmail.com> 390 391 PR libgomp/64635 392 * configure.tgt (*-*-aix*): Use config_path "aix posix". 393 (*-*-darwin*): Use config_path "bsd darwin posix". 394 (*-*-hpux*): Use config_path "hpux posix". 395 * target.c: Add include of plugin-suffix.h and use 396 SONAME_SUFFIX macro. 397 * config/aix/plugin-suffix.h: New file. 398 * config/darwin/plugin-suffix.h: New file. 399 * config/hpux/plugin-suffix.h: New file. 400 * config/posix/plugin-suffix.h: New file. 401 4022015-01-23 Jakub Jelinek <jakub@redhat.com> 403 404 PR middle-end/64734 405 * libgomp.c/pr64734.c: New test. 406 4072015-01-23 Tom de Vries <tom@codesourcery.com> 408 409 PR libgomp/64672 410 * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test. 411 4122015-01-23 Tom de Vries <tom@codesourcery.com> 413 414 PR libgomp/64707 415 * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to 416 dg-options. 417 4182015-01-19 Thomas Schwinge <thomas@codesourcery.com> 419 420 PR libgomp/64625 421 * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data) 422 (GOACC_parallel, GOACC_update): Remove const_void *offload_table 423 formal parameter. Update all users. 424 * target.c (GOMP_target, GOMP_target_data, GOMP_target_update): 425 Document unused formal parameter. 426 4272015-01-16 Thomas Schwinge <thomas@codesourcery.com> 428 429 * oacc-parallel.c: Don't include <alloca.h>. 430 (GOACC_parallel): Use gomp_alloca instead of alloca. 431 4322015-01-16 Gerald Pfeifer <gerald@pfeifer.com> 433 434 * target.c (num_devices): Guard with PLUGIN_SUPPORT. 435 4362015-01-15 Thomas Schwinge <thomas@codesourcery.com> 437 James Norris <jnorris@codesourcery.com> 438 Tom de Vries <tom@codesourcery.com> 439 Julian Brown <julian@codesourcery.com> 440 Cesar Philippidis <cesar@codesourcery.com> 441 Nathan Sidwell <nathan@codesourcery.com> 442 Tobias Burnus <burnus@net-b.de> 443 444 * Makefile.am (search_path): Add $(top_srcdir)/../include. 445 (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c, 446 oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c, 447 oacc-async.c, oacc-plugin.c, oacc-cuda.c. 448 [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90. 449 Include $(top_srcdir)/plugin/Makefrag.am. 450 (nodist_libsubinclude_HEADERS): Add openacc.h. 451 [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h, 452 openacc.f90, openacc.mod, openacc_kinds.mod. 453 (omp_lib.mod): Generalize into... 454 (%.mod): ... this new rule. 455 (openacc_kinds.mod, openacc.mod): New rules. 456 * plugin/configfrag.ac: New file. 457 * configure.ac: Move plugin/offloading support into it. Include 458 it. Instantiate testsuite/libgomp-test-support.pt.exp. 459 * plugin/Makefrag.am: New file. 460 * testsuite/Makefile.am (OFFLOAD_TARGETS) 461 (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't 462 export. 463 (libgomp-test-support.exp): New rule. 464 (all-local): Depend on it. 465 * Makefile.in: Regenerate. 466 * testsuite/Makefile.in: Regenerate. 467 * config.h.in: Likewise. 468 * configure: Likewise. 469 * configure.tgt: Harden shell syntax. 470 * env.c: Include "oacc-int.h". 471 (parse_acc_device_type): New function. 472 (gomp_debug_var, goacc_device_type, goacc_device_num): New 473 variables. 474 (initialize_env): Initialize those. Call 475 goacc_runtime_initialize. 476 * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions. 477 (gomp_fatal): Call gomp_vfatal. 478 * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>. 479 (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug) 480 (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once) 481 (splay_tree_node, splay_tree, splay_tree_key) 482 (struct target_mem_desc, struct splay_tree_key_s) 483 (struct gomp_memory_mapping, struct acc_dispatch_t) 484 (struct gomp_device_descr, gomp_acc_insert_pointer) 485 (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async) 486 (gomp_unmap_vars, gomp_init_device, gomp_init_tables) 487 (gomp_free_memmap, gomp_fini_device): New declarations. 488 (gomp_vdebug, gomp_debug): New macros. 489 Include "splay-tree.h". 490 * libgomp.map (OACC_2.0): New symbol version. Use for 491 acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type, 492 acc_set_device_type_h_, acc_get_device_type, 493 acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_, 494 acc_get_device_num, acc_get_device_num_h_, acc_async_test, 495 acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_, 496 acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_, 497 acc_wait_all, acc_wait_all_h_, acc_wait_all_async, 498 acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown, 499 acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc, 500 acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_, 501 acc_copyin_array_h_, acc_present_or_copyin, 502 acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_, 503 acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_, 504 acc_create_64_h_, acc_create_array_h_, acc_present_or_create, 505 acc_present_or_create_32_h_, acc_present_or_create_64_h_, 506 acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_, 507 acc_copyout_64_h_, acc_copyout_array_h_, acc_delete, 508 acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_, 509 acc_update_device, acc_update_device_32_h_, 510 acc_update_device_64_h_, acc_update_device_array_h_, 511 acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_, 512 acc_update_self_array_h_, acc_map_data, acc_unmap_data, 513 acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_, 514 acc_is_present_64_h_, acc_is_present_array_h_, 515 acc_memcpy_to_device, acc_memcpy_from_device, 516 acc_get_current_cuda_device, acc_get_current_cuda_context, 517 acc_get_cuda_stream, acc_set_cuda_stream. 518 (GOACC_2.0): New symbol version. Use for GOACC_data_end, 519 GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel, 520 GOACC_update, GOACC_wait, GOACC_get_thread_num, 521 GOACC_get_num_threads. 522 (GOMP_PLUGIN_1.0): New symbol version. Use for 523 GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared, 524 GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error, 525 GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars, 526 GOMP_PLUGIN_acc_thread. 527 * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG 528 environment variable. 529 * libgomp_g.h (GOACC_data_start, GOACC_data_end) 530 (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait) 531 (GOACC_get_num_threads, GOACC_get_thread_num): New declarations. 532 * splay-tree.h (splay_tree_lookup, splay_tree_insert) 533 (splay_tree_remove): New declarations. 534 (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert) 535 (splay_tree_remove, splay_tree_lookup): Move into... 536 * splay-tree.c: ... this new file. 537 * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>. 538 (splay_tree_node, splay_tree, splay_tree_key) 539 (struct target_mem_desc, struct splay_tree_key_s) 540 (struct gomp_device_descr): Don't declare. 541 (num_devices_openmp): New variable. 542 (gomp_get_num_devices ): Use it. 543 (gomp_init_targets_once): New function. 544 (gomp_get_num_devices ): Use it. 545 (get_kind, gomp_copy_from_async, gomp_free_memmap) 546 (gomp_fini_device, gomp_register_image_for_device): New functions. 547 (gomp_map_vars): Add devaddrs parameter. 548 (gomp_update): Add mm parameter. 549 (gomp_init_device): Move most of it into... 550 (gomp_init_tables): ... this new function. 551 (gomp_register_images_for_device): Remove function. 552 (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device): 553 Make them hidden instead of static. 554 (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars) 555 (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data) 556 (GOMP_target_end_data, GOMP_target_update) 557 (gomp_load_plugin_for_device, gomp_target_init): Update for 558 OpenACC changes. 559 * oacc-async.c: New file. 560 * oacc-cuda.c: Likewise. 561 * oacc-host.c: Likewise. 562 * oacc-init.c: Likewise. 563 * oacc-int.h: Likewise. 564 * oacc-mem.c: Likewise. 565 * oacc-parallel.c: Likewise. 566 * oacc-plugin.c: Likewise. 567 * oacc-plugin.h: Likewise. 568 * oacc-ptx.h: Likewise. 569 * openacc.f90: Likewise. 570 * openacc.h: Likewise. 571 * openacc_lib.h: Likewise. 572 * plugin/plugin-host.c: Likewise. 573 * plugin/plugin-nvptx.c: Likewise. 574 * libgomp-plugin.c: Likewise. 575 * libgomp-plugin.h: Likewise. 576 * libgomp_target.h: Remove file after merging content into the 577 former file. Update all users. 578 * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp. 579 (offload_targets_s, offload_targets_s_openacc): New variables. 580 (check_effective_target_openacc_nvidia_accel_present) 581 (check_effective_target_openacc_nvidia_accel_selected): New 582 procedures. 583 (libgomp_init): Update for OpenACC changes. 584 * testsuite/libgomp-test-support.exp.in: New file. 585 * testsuite/libgomp.oacc-c++/c++.exp: Likewise. 586 * testsuite/libgomp.oacc-c/c.exp: Likewise. 587 * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. 588 * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise. 589 * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise. 590 * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise. 591 * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise. 592 * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise. 593 * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise. 594 * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise. 595 * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise. 596 * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise. 597 * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise. 598 * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise. 599 * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise. 600 * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise. 601 * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise. 602 * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise. 603 * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise. 604 * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise. 605 * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise. 606 * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. 607 * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. 608 * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise. 609 * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise. 610 * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise. 611 * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise. 612 * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise. 613 * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise. 614 * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise. 615 * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise. 616 * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise. 617 * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise. 618 * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise. 619 * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise. 620 * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise. 621 * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise. 622 * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise. 623 * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise. 624 * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise. 625 * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise. 626 * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise. 627 * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. 628 * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. 629 * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. 630 * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise. 631 * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise. 632 * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. 633 * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. 634 * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. 635 * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. 636 * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise. 637 * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. 638 * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise. 639 * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise. 640 * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. 641 * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. 642 * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise. 643 * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. 644 * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise. 645 * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise. 646 * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise. 647 * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. 648 * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise. 649 * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise. 650 * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise. 651 * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise. 652 * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise. 653 * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise. 654 * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise. 655 * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise. 656 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. 657 * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. 658 * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. 659 * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise. 660 * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise. 661 * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. 662 * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. 663 * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise. 664 * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise. 665 * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise. 666 * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise. 667 * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. 668 * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. 669 * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. 670 * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise. 671 * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise. 672 * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise. 673 * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise. 674 * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise. 675 * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise. 676 * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise. 677 * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise. 678 * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise. 679 * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise. 680 * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise. 681 * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise. 682 * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise. 683 * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise. 684 * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise. 685 * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise. 686 * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise. 687 * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise. 688 * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise. 689 * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise. 690 * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise. 691 * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise. 692 * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise. 693 * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise. 694 * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise. 695 * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise. 696 * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise. 697 * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise. 698 * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise. 699 * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise. 700 * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise. 701 * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise. 702 * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise. 703 * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise. 704 * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise. 705 * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise. 706 * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise. 707 * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise. 708 * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise. 709 * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise. 710 * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise. 711 * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise. 712 * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise. 713 * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise. 714 * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise. 715 * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise. 716 * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise. 717 * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise. 718 * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise. 719 * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise. 720 * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise. 721 * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise. 722 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise. 723 * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise. 724 * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: 725 Likewise. 726 * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise. 727 * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise. 728 * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise. 729 * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise. 730 * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise. 731 * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise. 732 * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise. 733 * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise. 734 * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise. 735 * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise. 736 * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise. 737 * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise. 738 * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise. 739 * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise. 740 * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise. 741 * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise. 742 * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise. 743 * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise. 744 * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise. 745 * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise. 746 * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise. 747 * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise. 748 * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise. 749 * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise. 750 * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise. 751 * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise. 752 * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise. 753 * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise. 754 * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise. 755 * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise. 756 * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise. 757 * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise. 758 * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise. 759 * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise. 760 * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise. 761 * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise. 762 * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise. 763 * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise. 764 * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise. 765 * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise. 766 * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise. 767 * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise. 768 * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise. 769 * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise. 770 * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise. 771 * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise. 772 * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise. 773 * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise. 774 * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise. 775 * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise. 776 * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise. 777 * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise. 778 * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise. 779 * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise. 780 * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise. 781 * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise. 782 * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise. 783 * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise. 784 * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise. 785 * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise. 786 7872015-01-10 Thomas Schwinge <thomas@codesourcery.com> 788 Julian Brown <julian@codesourcery.com> 789 David Malcolm <dmalcolm@redhat.com> 790 791 * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library" 792 to "GNU Offloading and Multi Processing Runtime Library". Change 793 all users. 794 * configure: Regenerate. 795 * libgomp.texi: Update. 796 7972015-01-08 Thomas Schwinge <thomas@codesourcery.com> 798 799 * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add 800 "$tgt_dir/lib32". 801 * configure: Regenerate. 802 803 * testsuite/lib/libgomp.exp (libgomp_init): Correctly match 804 "intelmic" in $offload_targets. 805 8062015-01-05 Jakub Jelinek <jakub@redhat.com> 807 808 Update copyright years. 809 810 * libgomp.texi: Bump @copying's copyright year. 811 8122014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 813 814 * testsuite/lib/libgomp.exp: Load target-utils.exp. 815 Move load of target-supportes.exp earlier. 816 8172014-12-10 Ilya Verbin <ilya.verbin@intel.com> 818 819 * testsuite/libgomp.c/target-9.c: New test. 820 8212014-12-09 Varvara Rainchik <varvara.rainchik@intel.com> 822 823 * config.h.in: Regenerate. 824 * configure: Regenerate. 825 * configure.ac: Add GCC_CHECK_EMUTLS. 826 * libgomp.h: Add check for USE_EMUTLS: this case 827 is equal to HAVE_TLS. 828 * team.c: Likewise. 829 8302014-12-03 Uros Bizjak <ubizjak@gmail.com> 831 832 * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic. 833 8342014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com> 835 Ilya Verbin <ilya.verbin@intel.com> 836 837 * testsuite/libgomp.c/target-critical-1.c: New test. 838 8392014-11-26 Jakub Jelinek <jakub@redhat.com> 840 841 * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20 842 to dg-options unless expensive testing is on. 843 (TESTITERS): Define to N if not defined. 844 (main): Use TESTITERS instead of N. 845 * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from 846 dg-additional-options depending on whether expensive testing is on. 847 * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod): 848 Decrease N to 100000 and CHUNKSZ to 10000. 849 8502014-11-24 Jakub Jelinek <jakub@redhat.com> 851 852 PR fortran/63938 853 * testsuite/libgomp.fortran/pr63938-1.f90: New test. 854 * testsuite/libgomp.fortran/pr63938-2.f90: New test. 855 8562014-11-21 Steve Ellcey <sellcey@imgtec.com> 857 858 * config/linux/mips/futex.h (SYS_futex): Define if not already done. 859 8602014-11-21 H.J. Lu <hongjiu.lu@intel.com> 861 862 PR bootstrap/63784 863 * configure: Regenerated. 864 8652014-11-19 Uros Bizjak <ubizjak@gmail.com> 866 867 * testsuite/libgomp.c/examples-4/e.53.5.c: Require 868 vect_simd_clones effective target. 869 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto. 870 8712014-11-14 Jakub Jelinek <jakub@redhat.com> 872 873 * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead 874 of 32 as block_size. 875 * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8 876 instead of 32 as block_size. 877 8782014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com> 879 Ilya Verbin <ilya.verbin@intel.com> 880 881 * Makefile.in: Regenerate. 882 * configure: Regenerate. 883 * configure.ac: Set up offload_additional_options, 884 offload_additional_lib_paths and offload_targets. 885 * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS, 886 OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS. 887 * testsuite/Makefile.in: Regenerate. 888 * testsuite/lib/libgomp.exp (libgomp_init): Append 889 offload_additional_lib_paths to LD_LIBRARY_PATH. Append 890 offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic 891 build directory to LD_LIBRARY_PATH for intelmic offload targets. 892 8932014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com> 894 Ilya Verbin <ilya.verbin@intel.com> 895 Kirill Yukhin <kirill.yukhin@intel.com> 896 Ilya Tocar <ilya.tocar@intel.com> 897 898 * testsuite/lib/libgomp.exp 899 (check_effective_target_offload_device): New. 900 * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories. 901 * testsuite/libgomp.c++/examples-4/e.51.5.C: New test. 902 * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto. 903 * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto. 904 * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto. 905 * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto. 906 * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto. 907 * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto. 908 * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto. 909 * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto. 910 * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto. 911 * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto. 912 * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto. 913 * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto. 914 * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto. 915 * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto. 916 * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto. 917 * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto. 918 * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto. 919 * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto. 920 * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto. 921 * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto. 922 * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto. 923 * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto. 924 * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto. 925 * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto. 926 * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto. 927 * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto. 928 * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto. 929 * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto. 930 * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto. 931 * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto. 932 * testsuite/libgomp.c/target-7.c: Fix test. 933 * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test. 934 * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto. 935 * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto. 936 * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto. 937 * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto. 938 * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto. 939 * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto. 940 * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto. 941 * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto. 942 * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto. 943 * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto. 944 * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto. 945 * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto. 946 * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto. 947 * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto. 948 * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto. 949 * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto. 950 * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto. 951 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto. 952 * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto. 953 * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto. 954 * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto. 955 * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto. 956 * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto. 957 * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto. 958 * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto. 959 * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto. 960 * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto. 961 * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto. 962 * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto. 963 * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto. 964 9652014-11-13 Jakub Jelinek <jakub@redhat.com> 966 Ilya Verbin <ilya.verbin@intel.com> 967 Thomas Schwinge <thomas@codesourcery.com> 968 Andrey Turetskiy <andrey.turetskiy@intel.com> 969 970 * libgomp.map (GOMP_4.0.1): New symbol version. 971 Add GOMP_offload_register. 972 * libgomp_target.h: New file. 973 * splay-tree.h: New file. 974 * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h. 975 (gomp_target_init): New forward declaration. 976 (gomp_is_initialized): New static variable. 977 (splay_tree_node, splay_tree, splay_tree_key): New typedefs. 978 (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr): 979 New structures. 980 (offload_images, num_offload_images, devices, num_devices): New static 981 variables. 982 (splay_compare): New static function. 983 (struct gomp_device_descr): New structure. 984 (gomp_get_num_devices): Call gomp_target_init. 985 (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt) 986 (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions. 987 (GOMP_offload_register): New function. 988 (GOMP_target): Arrange for host callback to be performed in a separate 989 initial thread and contention group, inheriting ICVs from 990 gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars. 991 Add device initialization and lookup for target function in splay tree. 992 (GOMP_target_data): Add device initialization and call gomp_map_vars. 993 (GOMP_target_end_data): Call gomp_unmap_vars. 994 (GOMP_target_update): Add device initialization and call gomp_update. 995 (gomp_load_plugin_for_device, gomp_register_images_for_device) 996 (gomp_target_init): New static functions. 997 9982014-11-13 Bernd Schmidt <bernds@codesourcery.com> 999 Thomas Schwinge <thomas@codesourcery.com> 1000 Ilya Verbin <ilya.verbin@intel.com> 1001 Andrey Turetskiy <andrey.turetskiy@intel.com> 1002 1003 * config.h.in: Regenerate. 1004 * configure: Regenerate. 1005 * configure.ac: Check for libdl, required for plugin support. 1006 (PLUGIN_SUPPORT): Define if plugins are supported. 1007 (enable_offload_targets): Support Intel MIC targets. 1008 (OFFLOAD_TARGETS): List of target names suitable for offloading. 1009 10102014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 1011 1012 PR target/63610 1013 * configure: Regenerate. 1014 10152014-11-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1016 1017 * config/posix/lock.c (_XOPEN_SOURCE) Define as 600. 1018 10192014-10-06 Marek Polacek <polacek@redhat.com> 1020 1021 * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>. 1022 * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>. 1023 * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h> 1024 * testsuite/libgomp.c/thread-limit-2.c: Likewise. 1025 10262014-10-06 Marek Polacek <polacek@redhat.com> 1027 1028 * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations. 1029 * testsuite/libgomp.c/nqueens-1.c: Likewise. 1030 * testsuite/libgomp.c/pr26943-3.c: Likewise. 1031 * testsuite/libgomp.c/pr26943-4.c: Likewise. 1032 * testsuite/libgomp.c/pr36802-2.c: Likewise. 1033 * testsuite/libgomp.c/pr36802-3.c: Likewise. 1034 * testsuite/libgomp.c/thread-limit-1.c: Likewise. 1035 * testsuite/libgomp.c/thread-limit-2.c: Likewise. 1036 * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>. 1037 * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int. 1038 * testsuite/libgomp.c/omp-parallel-for.c: Likewise. 1039 * testsuite/libgomp.c/omp-parallel-if.c: Likewise. 1040 * testsuite/libgomp.c/omp-single-1.c: Likewise. 1041 * testsuite/libgomp.c/omp-single-2.c: Likewise. 1042 * testsuite/libgomp.c/omp_matvec.c: Likewise. 1043 * testsuite/libgomp.c/omp_workshare3.c: Likewise. 1044 * testsuite/libgomp.c/omp_workshare4.c: Likewise. 1045 * testsuite/libgomp.c/shared-1.c: Fix defaulting to int. Fix implicit 1046 declarations. 1047 10482014-10-03 Jakub Jelinek <jakub@redhat.com> 1049 1050 PR libgomp/61200 1051 * testsuite/libgomp.c/pr61200.c: New test. 1052 10532014-09-18 Jakub Jelinek <jakub@redhat.com> 1054 1055 PR c++/63248 1056 * testsuite/libgomp.c++/pr63248.C: New test. 1057 10582014-08-04 Jakub Jelinek <jakub@redhat.com> 1059 1060 * task.c (GOMP_taskgroup_end): If taskgroup->num_children 1061 is not zero, but taskgroup->children is NULL and there are 1062 any task->children, schedule those instead of waiting. 1063 * testsuite/libgomp.c/depend-6.c: New test. 1064 * testsuite/libgomp.c/depend-7.c: New test. 1065 * testsuite/libgomp.c/depend-8.c: New test. 1066 * testsuite/libgomp.c/depend-9.c: New test. 1067 * testsuite/libgomp.c/depend-10.c: New test. 1068 10692014-08-01 Jakub Jelinek <jakub@redhat.com> 1070 1071 * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. 1072 (struct gomp_taskwait): New type. 1073 (struct gomp_task): Add taskwait and parent_depends_on, remove 1074 in_taskwait and taskwait_sem fields. 1075 (gomp_finish_task): Don't destroy taskwait_sem. 1076 * task.c (gomp_init_task): Don't init in_taskwait, instead init 1077 taskwait and parent_depends_on. 1078 (GOMP_task): For if (0) tasks with depend clause that depend on 1079 earlier tasks don't defer them, instead call 1080 gomp_task_maybe_wait_for_dependencies to wait for the dependencies. 1081 Initialize redundant_out field, for redundant out entries just 1082 move them at the end of linked list instead of removing them 1083 completely, and set redundant_out flag instead of redundant. 1084 (gomp_task_run_pre): Update last_parent_depends_on if scheduling 1085 that task. 1086 (gomp_task_run_post_handle_dependers): If parent is in 1087 gomp_task_maybe_wait_for_dependencies and newly runnable task 1088 is not parent_depends_on, queue it in parent->children linked 1089 list after all runnable tasks with parent_depends_on set. 1090 Adjust for addition of taskwait indirection. 1091 (gomp_task_run_post_remove_parent): If parent is in 1092 gomp_task_maybe_wait_for_dependencies and task to be removed 1093 is parent_depends_on, decrement n_depend and if needed awake 1094 parent. Adjust for addition of taskwait indirection. 1095 (GOMP_taskwait): Adjust for addition of taskwait indirection. 1096 (gomp_task_maybe_wait_for_dependencies): New function. 1097 * testsuite/libgomp.c/depend-5.c: New test. 1098 10992014-07-13 Tobias Burnus <burnus@net-b.de> 1100 1101 * testsuite/libgomp.fortran/pr34020.f90: Make compile 1102 with TS 18508/Fortran 2015. 1103 11042014-07-06 Marek Polacek <polacek@redhat.com> 1105 1106 PR c/6940 1107 * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings. 1108 11092014-07-03 Jakub Jelinek <jakub@redhat.com> 1110 1111 * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source 1112 matches regex $lang_source_re, add $lang_include_flags to options. 1113 * testsuite/libgomp.c/c.exp: Unset lang_include_flags. 1114 * testsuite/libgomp.c++/c++.exp: Likewise. 1115 * testsuite/libgomp.fortran/fortran.exp: Likewise. Set lang_source_re 1116 and lang_include_flags instead of adding -fintrinsic-modules-path= to 1117 ALWAYS_CFLAGS. 1118 * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags. 1119 11202014-07-03 Thomas Schwinge <thomas@codesourcery.com> 1121 1122 * testsuite/libgomp.fortran/fortran.exp: Explain 1123 gfortran-dg-runtest usage. 1124 11252014-06-25 Jakub Jelinek <jakub@redhat.com> 1126 1127 * testsuite/libgomp.fortran/simd5.f90: New test. 1128 * testsuite/libgomp.fortran/simd6.f90: New test. 1129 * testsuite/libgomp.fortran/simd7.f90: New test. 1130 11312014-06-24 Jakub Jelinek <jakub@redhat.com> 1132 1133 * testsuite/libgomp.c/for-2.c: Define SC to static for 1134 #pragma omp for simd testing. 1135 * testsuite/libgomp.c/for-2.h (SC): Define if not defined. 1136 (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use 1137 SC macro. 1138 * testsuite/libgomp.c/simd-14.c: New test. 1139 * testsuite/libgomp.c/simd-15.c: New test. 1140 * testsuite/libgomp.c/simd-16.c: New test. 1141 * testsuite/libgomp.c/simd-17.c: New test. 1142 * testsuite/libgomp.c++/for-10.C: Define SC to static for 1143 #pragma omp for simd testing. 1144 * testsuite/libgomp.c++/simd10.C: New test. 1145 * testsuite/libgomp.c++/simd11.C: New test. 1146 * testsuite/libgomp.c++/simd12.C: New test. 1147 * testsuite/libgomp.c++/simd13.C: New test. 1148 1149 * testsuite/libgomp.fortran/aligned1.f03: New test. 1150 * testsuite/libgomp.fortran/nestedfn5.f90: New test. 1151 * testsuite/libgomp.fortran/target7.f90: Surround loop spawning 1152 tasks with !$omp parallel !$omp single. 1153 * testsuite/libgomp.fortran/target8.f90: New test. 1154 * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust 1155 not to use trim in the combiner, instead call elemental function. 1156 (fn): New elemental function. 1157 * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init): 1158 Make elemental. 1159 * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out, 1160 omp_in): Likewise. 1161 * testsuite/libgomp.fortran/udr12.f90: New test. 1162 * testsuite/libgomp.fortran/udr13.f90: New test. 1163 * testsuite/libgomp.fortran/udr14.f90: New test. 1164 * testsuite/libgomp.fortran/udr15.f90: New test. 1165 11662014-06-18 Jakub Jelinek <jakub@redhat.com> 1167 1168 * omp_lib.f90.in (openmp_version): Set to 201307. 1169 * omp_lib.h.in (openmp_version): Likewise. 1170 * testsuite/libgomp.c/target-8.c: New test. 1171 * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch 1172 and inbranch clauses. 1173 * testsuite/libgomp.fortran/depend-3.f90: New test. 1174 * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new 1175 openmp_version. 1176 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise. 1177 * testsuite/libgomp.fortran/target1.f90: New test. 1178 * testsuite/libgomp.fortran/target2.f90: New test. 1179 * testsuite/libgomp.fortran/target3.f90: New test. 1180 * testsuite/libgomp.fortran/target4.f90: New test. 1181 * testsuite/libgomp.fortran/target5.f90: New test. 1182 * testsuite/libgomp.fortran/target6.f90: New test. 1183 * testsuite/libgomp.fortran/target7.f90: New test. 1184 11852014-06-10 Jakub Jelinek <jakub@redhat.com> 1186 1187 PR fortran/60928 1188 * testsuite/libgomp.fortran/allocatable9.f90: New test. 1189 * testsuite/libgomp.fortran/allocatable10.f90: New test. 1190 * testsuite/libgomp.fortran/allocatable11.f90: New test. 1191 * testsuite/libgomp.fortran/allocatable12.f90: New test. 1192 * testsuite/libgomp.fortran/alloc-comp-1.f90: New test. 1193 * testsuite/libgomp.fortran/alloc-comp-2.f90: New test. 1194 * testsuite/libgomp.fortran/alloc-comp-3.f90: New test. 1195 * testsuite/libgomp.fortran/associate1.f90: New test. 1196 * testsuite/libgomp.fortran/associate2.f90: New test. 1197 * testsuite/libgomp.fortran/procptr1.f90: New test. 1198 11992014-06-06 Jakub Jelinek <jakub@redhat.com> 1200 1201 * testsuite/libgomp.fortran/simd1.f90: New test. 1202 * testsuite/libgomp.fortran/udr1.f90: New test. 1203 * testsuite/libgomp.fortran/udr2.f90: New test. 1204 * testsuite/libgomp.fortran/udr3.f90: New test. 1205 * testsuite/libgomp.fortran/udr4.f90: New test. 1206 * testsuite/libgomp.fortran/udr5.f90: New test. 1207 * testsuite/libgomp.fortran/udr6.f90: New test. 1208 * testsuite/libgomp.fortran/udr7.f90: New test. 1209 * testsuite/libgomp.fortran/udr8.f90: New test. 1210 * testsuite/libgomp.fortran/udr9.f90: New test. 1211 * testsuite/libgomp.fortran/udr10.f90: New test. 1212 * testsuite/libgomp.fortran/udr11.f90: New test. 1213 12142014-05-27 Uros Bizjak <ubizjak@gmail.com> 1215 1216 * testsuite/libgomp.fortran/declare-simd-1.f90: Require 1217 vect_simd_clones effective target. 1218 * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto. 1219 12202014-05-21 Jakub Jelinek <jakub@redhat.com> 1221 1222 PR middle-end/61252 1223 * testsuite/libgomp.c++/simd-9.C: New test. 1224 12252014-05-18 Uros Bizjak <ubizjak@gmail.com> 1226 1227 * libgomp.texi (Runitme Library Routines): Remove multiple @menu. 1228 (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node 1229 texts according to their @menu entry positions. 1230 12312014-05-11 Jakub Jelinek <jakub@redhat.com> 1232 1233 * testsuite/libgomp.fortran/cancel-do-1.f90: New test. 1234 * testsuite/libgomp.fortran/cancel-do-2.f90: New test. 1235 * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test. 1236 * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test. 1237 * testsuite/libgomp.fortran/cancel-sections-1.f90: New test. 1238 * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test. 1239 * testsuite/libgomp.fortran/declare-simd-1.f90: New test. 1240 * testsuite/libgomp.fortran/declare-simd-2.f90: New test. 1241 * testsuite/libgomp.fortran/declare-simd-3.f90: New test. 1242 * testsuite/libgomp.fortran/depend-1.f90: New test. 1243 * testsuite/libgomp.fortran/depend-2.f90: New test. 1244 * testsuite/libgomp.fortran/omp_atomic5.f90: New test. 1245 * testsuite/libgomp.fortran/simd1.f90: New test. 1246 * testsuite/libgomp.fortran/simd2.f90: New test. 1247 * testsuite/libgomp.fortran/simd3.f90: New test. 1248 * testsuite/libgomp.fortran/simd4.f90: New test. 1249 * testsuite/libgomp.fortran/taskgroup1.f90: New test. 1250 12512014-05-02 Jakub Jelinek <jakub@redhat.com> 1252 1253 * testsuite/libgomp.c/simd-10.c: New test. 1254 * testsuite/libgomp.c/simd-11.c: New test. 1255 * testsuite/libgomp.c/simd-12.c: New test. 1256 * testsuite/libgomp.c/simd-13.c: New test. 1257 12582014-04-24 Jakub Jelinek <jakub@redhat.com> 1259 1260 * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and 1261 atomic type clauses in any order and optional comma in between. 1262 * testsuite/libgomp.c++/atomic-15.C: Likewise. 1263 * testsuite/libgomp.c/atomic-17.c: Likewise. 1264 1265 * testsuite/libgomp.c/simd-7.c: New test. 1266 * testsuite/libgomp.c/simd-8.c: New test. 1267 * testsuite/libgomp.c/simd-9.c: New test. 1268 * testsuite/libgomp.c/loop-16.c: New test. 1269 12702014-04-02 Richard Henderson <rth@redhat.com> 1271 1272 * config/linux/futex.h (futex_wait): Get error value from errno. 1273 (futex_wake): Likewise. 1274 12752014-03-25 Jakub Jelinek <jakub@redhat.com> 1276 1277 PR c++/60331 1278 * testsuite/libgomp.c++/udr-11.C: New test. 1279 * testsuite/libgomp.c++/udr-12.C: New test. 1280 * testsuite/libgomp.c++/udr-13.C: New test. 1281 * testsuite/libgomp.c++/udr-14.C: New test. 1282 * testsuite/libgomp.c++/udr-15.C: New test. 1283 * testsuite/libgomp.c++/udr-16.C: New test. 1284 * testsuite/libgomp.c++/udr-17.C: New test. 1285 * testsuite/libgomp.c++/udr-18.C: New test. 1286 * testsuite/libgomp.c++/udr-19.C: New test. 1287 12882014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 1289 1290 Update copyright years 1291 12922014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 1293 1294 * hashtab.h: Use the standard form for the copyright notice. 1295 12962014-01-02 Tobias Burnus <burnus@net-b.de> 1297 1298 * libgomp.texi: Bump @copying's copyright year. 1299 13002013-12-17 Andreas Tobler <andreast@gcc.gnu.org> 1301 1302 * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace 1303 alloca () with __builtin_alloca (). 1304 * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage. 1305 * testsuite/libgomp.c/lock-3.c: Likewise. 1306 * testsuite/libgomp.c/pr48591.c: Likewise. 1307 13082013-12-17 Jakub Jelinek <jakub@redhat.com> 1309 1310 PR testsuite/59534 1311 * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited 1312 comparisons. 1313 13142013-12-16 Jakub Jelinek <jakub@redhat.com> 1315 1316 PR libgomp/58756 1317 * testsuite/libgomp.c/pr58756.c: New test. 1318 13192013-12-12 Jakub Jelinek <jakub@redhat.com> 1320 1321 PR libgomp/59467 1322 * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to 1323 !$omp parallel. 1324 13252013-11-07 Thomas Schwinge <thomas@codesourcery.com> 1326 1327 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to 1328 ALWAYS_CFLAGS. 1329 * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp. 1330 * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise. 1331 * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise. 1332 * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS): 1333 Likewise. 1334 1335 * libgomp_g.h: Include <stddef.h> for size_t. 1336 1337 * libgomp.spec.in: Update comment about libgomp's dependencies. 1338 * configure.ac: Likewise. 1339 * configure: Regenerate. 1340 13412013-10-16 Tobias Burnus <burnus@net-b.de> 1342 1343 * libgomp.texi: (Runtime Library Routines): Update references for 1344 OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device, 1345 omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind, 1346 omp_get_team_num, omp_is_initial_device, omp_set_default_device. 1347 (Environment Variables): Update references for OpenMP 4.0. Add 1348 OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES. 1349 Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical 1350 order. 1351 13522013-10-14 Jakub Jelinek <jakub@redhat.com> 1353 1354 * env.c (parse_bind_var): Initialize value to avoid 1355 (false positive) warning. 1356 13572013-10-12 Jakub Jelinek <jakub@redhat.com> 1358 1359 PR libgomp/58691 1360 * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute 1361 to check variable. 1362 (gomp_init_num_threads): Move i variable declaration into 1363 #ifdef CPU_ALLOC_SIZE block. 1364 * config/linux/affinity.c (gomp_affinity_init_level): Test 1365 gomp_places_list_len == 0 rather than gomp_places_list == 0 1366 when checking for topology reading error. 1367 * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false. 1368 * env.c (parse_affinity): Add ignore argument, if true, don't populate 1369 gomp_places_list, only parse env var and always return false. 1370 (parse_places_var): Likewise. Don't check gomp_global_icv.bind_var. 1371 (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env 1372 vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified 1373 and either of these variables were parsed correctly into a places 1374 list. 1375 13762013-10-11 Thomas Schwinge <thomas@codesourcery.com> 1377 Jakub Jelinek <jakub@redhat.com> 1378 1379 * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead 1380 of 5 loopfn matches. 1381 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise. 1382 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise. 1383 * testsuite/libgomp.graphite/force-parallel-4.c: Likewise. 1384 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise. 1385 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise. 1386 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. 1387 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. 1388 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise. 1389 13902013-10-11 Thomas Schwinge <thomas@codesourcery.com> 1391 1392 * Makefile.am (omp_lib.mod): Streamline rule. 1393 * Makefile.in: Regenerate. 1394 1395 * libgomp.texi (Runtime Library Routines): C linkage, don't throw 1396 exceptions. 1397 1398 * testsuite/libgomp.c/lib-1.c (main): Add missing error check. 1399 * testsuite/libgomp.fortran/lib1.f90: Likewise. 1400 * testsuite/libgomp.fortran/lib2.f: Likewise. 1401 * testsuite/libgomp.fortran/lib3.f: Likewise. 1402 1403 * configure.ac: Typo fix. 1404 * configure: Regenerate. 1405 1406 * testsuite/libgomp.fortran/openmp_version-1.f: New file. 1407 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise. 1408 1409 * omp.h.in: Don't touch the user's namespace. 1410 14112013-10-11 Jakub Jelinek <jakub@redhat.com> 1412 Tobias Burnus <burnus@net-b.de> 1413 Richard Henderson <rth@redhat.com> 1414 1415 * target.c: New file. 1416 * Makefile.am (libgomp_la_SOURCES): Add target.c. 1417 * Makefile.in: Regenerated. 1418 * libgomp_g.h (GOMP_task): Add depend argument. 1419 (GOMP_barrier_cancel, GOMP_loop_end_cancel, 1420 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data, 1421 GOMP_target_end_data, GOMP_target_update, GOMP_teams, 1422 GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic, 1423 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime, 1424 GOMP_parallel, GOMP_cancel, GOMP_cancellation_point, 1425 GOMP_taskgroup_start, GOMP_taskgroup_end, 1426 GOMP_parallel_sections): New prototypes. 1427 * fortran.c (omp_is_initial_device): Add ialias_redirect. 1428 (omp_is_initial_device_): New function. 1429 (ULP, STR1, STR2, ialias_redirect): Removed. 1430 (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_, 1431 omp_set_default_device_8_, omp_get_default_device_, 1432 omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New 1433 functions. 1434 * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel, 1435 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data, 1436 GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export 1437 @@GOMP_4.0. 1438 (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation, 1439 omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_, 1440 omp_set_default_device, omp_set_default_device_, 1441 omp_set_default_device_8_, omp_get_default_device, 1442 omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_, 1443 omp_get_num_teams, omp_get_num_teams_, omp_get_team_num, 1444 omp_get_team_num_): Export @@OMP_4.0. 1445 * team.c (struct gomp_thread_start_data): Add place field. 1446 (gomp_thread_start): Clear thr->thread_pool and 1447 thr->task before returning. Use gomp_team_barrier_wait_final 1448 instead of gomp_team_barrier_wait. Initialize thr->place. 1449 (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled, 1450 team_cancelled and task_queued_count fields. 1451 (gomp_free_pool_helper): Clear thr->thread_pool and thr->task 1452 before calling pthread_exit. 1453 (gomp_free_thread): No longer static. Use 1454 gomp_managed_threads_lock instead of gomp_remaining_threads_lock. 1455 (gomp_team_start): Add flags argument. Set 1456 thr->thread_pool->threads_busy to nthreads immediately after creating 1457 new pool. Use gomp_managed_threads_lock instead of 1458 gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity. 1459 (gomp_team_end): Use gomp_managed_threads_lock instead of 1460 gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead 1461 of gomp_team_barrier_wait. If team->team_cancelled, call 1462 gomp_fini_worshare on ws chain starting at team->work_shares_to_free 1463 rather than thr->ts.work_share. 1464 (initialize_team): Don't call gomp_sem_init here. 1465 * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start 1466 caller. 1467 (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions. 1468 * env.c (gomp_global_icv): Add default_device_var, target_data and 1469 bind_var initializers. 1470 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove. 1471 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list, 1472 gomp_places_list_len): New variables. 1473 (parse_bind_var, parse_one_place, parse_places_var): New functions. 1474 (parse_affinity): Rewritten to construct OMP_PLACES list with unit 1475 sized places. 1476 (gomp_cancel_var): New global variable. 1477 (parse_int): New function. 1478 (handle_omp_display_env): New function. 1479 (initialize_env): Use it. Initialize default_device_var. 1480 Parse OMP_CANCELLATION env var. Use parse_bind_var to parse 1481 OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for 1482 OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has 1483 been successfully parsed (and call gomp_init_affinity in that case). 1484 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, 1485 omp_get_default_device, omp_get_num_devices, omp_get_num_teams, 1486 omp_get_team_num, omp_is_initial_device): New functions. 1487 * libgomp.h: Include stdlib.h. 1488 (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call): 1489 Define. 1490 (struct target_mem_desc): Forward declare. 1491 (struct gomp_task_icv): Add default_device_var, target_data, bind_var 1492 and thread_limit_var fields. 1493 (gomp_get_num_devices): New prototype. 1494 (gomp_cancel_var): New extern decl. 1495 (struct gomp_team): Add work_shares_to_free, work_share_cancelled, 1496 team_cancelled and task_queued_count fields. Add comments about 1497 task_{,queued_,running_}count. 1498 (gomp_cancel_kind): New enum. 1499 (gomp_work_share_end_cancel): New prototype. 1500 (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup, 1501 copy_ctors_done, dependers, depend_hash, depend_count, num_dependees 1502 and depend fields. 1503 (struct gomp_taskgroup): New type. 1504 (struct gomp_task_depend_entry, 1505 struct gomp_dependers_vec): New types. 1506 (gomp_finish_task): Free depend_hash if non-NULL. 1507 (struct gomp_team_state): Add place_partition_off 1508 and place_partition_len fields. 1509 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list, 1510 gomp_places_list_len): New extern decls. 1511 (struct gomp_thread): Add place field. 1512 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove. 1513 (gomp_init_thread_affinity): Add place argument. 1514 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus, 1515 gomp_affinity_remove_cpu, gomp_affinity_copy_place, 1516 gomp_affinity_same_place, gomp_affinity_finalize_place_list, 1517 gomp_affinity_init_level, gomp_affinity_print_place): New 1518 prototypes. 1519 (gomp_team_start): Add flags argument. 1520 (gomp_thread_limit_var, gomp_remaining_threads_count, 1521 gomp_remaining_threads_lock): Remove. 1522 (gomp_managed_threads_lock): New variable. 1523 (struct gomp_thread_pool): Add threads_busy field. 1524 (gomp_free_thread): New prototype. 1525 * task.c: Include hashtab.h. 1526 (hash_entry_type): New typedef. 1527 (htab_alloc, htab_free, htab_hash, htab_eq): New inlines. 1528 (gomp_init_task): Clear dependers, depend_hash, depend_count, 1529 copy_ctors_done and taskgroup fields. 1530 (GOMP_task): Add depend argument, handle depend clauses. If 1531 gomp_team_barrier_cancelled or if it's taskgroup has been 1532 cancelled, don't queue or start new tasks. Set copy_ctors_done 1533 field if needed. Initialize taskgroup field. If copy_ctors_done 1534 and already cancelled, don't discard the task. If taskgroup is 1535 non-NULL, enqueue the task into taskgroup queue. Increment 1536 num_children field in taskgroup. Increment task_queued_count. 1537 (gomp_task_run_pre, gomp_task_run_post_remove_parent, 1538 gomp_task_run_post_remove_taskgroup): New inline functions. 1539 (gomp_task_run_post_handle_depend_hash, 1540 gomp_task_run_post_handle_dependers, 1541 gomp_task_run_post_handle_depend): New functions. 1542 (GOMP_taskwait): Use them. If more than one new tasks 1543 have been queued, wake other threads if needed. 1544 (gomp_barrier_handle_tasks): Likewise. If 1545 gomp_team_barrier_cancelled, don't start any new tasks, just free 1546 all tasks. 1547 (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions. 1548 * omp_lib.f90.in 1549 (omp_proc_bind_kind, omp_proc_bind_false, 1550 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close, 1551 omp_proc_bind_spread): New params. 1552 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, 1553 omp_get_default_device, omp_get_num_devices, omp_get_num_teams, 1554 omp_get_team_num, omp_is_initial_device): New interfaces. 1555 (omp_get_dynamic, omp_get_nested, omp_in_parallel, 1556 omp_get_max_threads, omp_get_num_procs, omp_get_num_threads, 1557 omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels, 1558 omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num, 1559 omp_get_team_size, omp_get_active_level, omp_in_final): Remove 1560 useless use omp_lib_kinds. 1561 * omp.h.in (omp_proc_bind_t): New typedef. 1562 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, 1563 omp_get_default_device, omp_get_num_devices, omp_get_num_teams, 1564 omp_get_team_num, omp_is_initial_device): New prototypes. 1565 * loop.c (gomp_parallel_loop_start): Add flags argument, pass it 1566 through to gomp_team_start. 1567 (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start, 1568 GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start): 1569 Adjust gomp_parallel_loop_start callers. 1570 (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic, 1571 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime, 1572 GOMP_loop_end_cancel): New functions. 1573 (GOMP_parallel_end): Add ialias_redirect. 1574 * hashtab.h: New file. 1575 * libgomp.texi (Environment Variables): Minor cleanup, 1576 update section refs to OpenMP 4.0rc2. 1577 (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these 1578 environment variables. 1579 * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set 1580 team->work_shares_to_free to thr->ts.work_share before calling 1581 free_work_share. 1582 (gomp_work_share_end_cancel): New function. 1583 * config/linux/proc.c: Include errno.h. 1584 (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables. 1585 (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of 1586 sizeof (cpu_set_t) to determine number of iterations. Fix up check 1587 extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if 1588 gomp_cpuset_size is sizeof (cpu_set_t). 1589 (gomp_init_num_threads): Initialize gomp_cpuset_size, 1590 gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead 1591 of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t) 1592 to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't 1593 contain any logical CPUs. 1594 (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp 1595 is NULL. Use gomp_cpusetp instead of &cpuset and pass 1596 gomp_get_cpuset_size instead of sizeof (cpu_set_t) to 1597 pthread_getaffinity_np. Check gomp_places_list instead of 1598 gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller. 1599 * config/linux/bar.c (gomp_barrier_wait_end, 1600 gomp_barrier_wait_last): Use BAR_* defines. 1601 (gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED 1602 from state where needed. Set work_share_cancelled to 0 on last 1603 thread. 1604 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end, 1605 gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New 1606 functions. 1607 * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden. 1608 Add cpusetsize argument. 1609 (gomp_cpuset_size, gomp_cpusetp): Declare. 1610 * config/linux/affinity.c: Include errno.h, stdio.h and string.h. 1611 (affinity_counter): Remove. 1612 (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define 1613 if CPU_ALLOC_SIZE isn't defined. 1614 (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try 1615 silently create OMP_PLACES=threads, if it is non-NULL afterwards, 1616 bind current thread to the first place. 1617 (gomp_init_thread_affinity): Rewritten. Add place argument, just 1618 pthread_setaffinity_np to gomp_places_list[place]. 1619 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus, 1620 gomp_affinity_remove_cpu, gomp_affinity_copy_place, 1621 gomp_affinity_same_place, gomp_affinity_finalize_place_list, 1622 gomp_affinity_init_level, gomp_affinity_print_place): New functions. 1623 * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST, 1624 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define. 1625 (gomp_barrier_t): Add awaited_final field. 1626 (gomp_barrier_init): Initialize awaited_final field. 1627 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel, 1628 gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New 1629 prototypes. 1630 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_* 1631 defines. 1632 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start, 1633 gomp_team_barrier_cancelled): New inline functions. 1634 (gomp_barrier_last_thread, 1635 gomp_team_barrier_set_task_pending, 1636 gomp_team_barrier_clear_task_pending, 1637 gomp_team_barrier_set_waiting_for_tasks, 1638 gomp_team_barrier_waiting_for_tasks, 1639 gomp_team_barrier_done): Use BAR_* defines. 1640 * config/posix/bar.c (gomp_barrier_init): Clear cancellable field. 1641 (gomp_barrier_wait_end): Use BAR_* defines. 1642 (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state. 1643 Set work_share_cancelled to 0 on last thread, use __atomic_load_n. 1644 Use BAR_* defines. 1645 (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel, 1646 gomp_team_barrier_cancel): New functions. 1647 * config/posix/affinity.c (gomp_init_thread_affinity): Add place 1648 argument. 1649 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus, 1650 gomp_affinity_remove_cpu, gomp_affinity_copy_place, 1651 gomp_affinity_same_place, gomp_affinity_finalize_place_list, 1652 gomp_affinity_init_level, gomp_affinity_print_place): New stubs. 1653 * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST, 1654 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define. 1655 (gomp_barrier_t): Add cancellable field. 1656 (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end, 1657 gomp_team_barrier_cancel): New prototypes. 1658 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. 1659 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final, 1660 gomp_team_barrier_cancelled): New inline functions. 1661 (gomp_barrier_wait_start, gomp_barrier_last_thread, 1662 gomp_team_barrier_set_task_pending, 1663 gomp_team_barrier_clear_task_pending, 1664 gomp_team_barrier_set_waiting_for_tasks, 1665 gomp_team_barrier_waiting_for_tasks, 1666 gomp_team_barrier_done): Use BAR_* defines. 1667 * barrier.c (GOMP_barrier_cancel): New function. 1668 * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false, 1669 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close, 1670 omp_proc_bind_spread): New params. 1671 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, 1672 omp_get_default_device, omp_get_num_devices, omp_get_num_teams, 1673 omp_get_team_num, omp_is_initial_device): New externals. 1674 * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point): 1675 New functions. 1676 (gomp_resolve_num_threads): Adjust for thread_limit now being in 1677 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as 1678 infinity. If not nested, just return minimum of max_num_threads 1679 and icv->thread_limit_var and if thr->thread_pool, set threads_busy 1680 to the returned value. Otherwise, don't update atomically 1681 gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy. 1682 (GOMP_parallel_end): Adjust for thread_limit now being in 1683 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as 1684 infinity. Adjust threads_busy in the pool rather than 1685 gomp_remaining_threads_count. Remember team->nthreads and call 1686 gomp_team_end before adjusting threads_busy, if not nested 1687 afterwards, just set it to 1 non-atomically. Add ialias. 1688 (GOMP_parallel_start): Adjust gomp_team_start caller. 1689 * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid. 1690 * testsuite/libgomp.c/affinity-1.c: New test. 1691 * testsuite/libgomp.c/atomic-15.c: New test. 1692 * testsuite/libgomp.c/atomic-16.c: New test. 1693 * testsuite/libgomp.c/atomic-17.c: New test. 1694 * testsuite/libgomp.c/cancel-for-1.c: New test. 1695 * testsuite/libgomp.c/cancel-for-2.c: New test. 1696 * testsuite/libgomp.c/cancel-parallel-1.c: New test. 1697 * testsuite/libgomp.c/cancel-parallel-2.c: New test. 1698 * testsuite/libgomp.c/cancel-parallel-3.c: New test. 1699 * testsuite/libgomp.c/cancel-sections-1.c: New test. 1700 * testsuite/libgomp.c/cancel-taskgroup-1.c: New test. 1701 * testsuite/libgomp.c/cancel-taskgroup-2.c: New test. 1702 * testsuite/libgomp.c/depend-1.c: New test. 1703 * testsuite/libgomp.c/depend-2.c: New test. 1704 * testsuite/libgomp.c/depend-3.c: New test. 1705 * testsuite/libgomp.c/depend-4.c: New test. 1706 * testsuite/libgomp.c/for-1.c: New test. 1707 * testsuite/libgomp.c/for-1.h: New file. 1708 * testsuite/libgomp.c/for-2.c: New test. 1709 * testsuite/libgomp.c/for-2.h: New file. 1710 * testsuite/libgomp.c/for-3.c: New test. 1711 * testsuite/libgomp.c/pr58392.c: New test. 1712 * testsuite/libgomp.c/simd-1.c: New test. 1713 * testsuite/libgomp.c/simd-2.c: New test. 1714 * testsuite/libgomp.c/simd-3.c: New test. 1715 * testsuite/libgomp.c/simd-4.c: New test. 1716 * testsuite/libgomp.c/simd-5.c: New test. 1717 * testsuite/libgomp.c/simd-6.c: New test. 1718 * testsuite/libgomp.c/target-1.c: New test. 1719 * testsuite/libgomp.c/target-2.c: New test. 1720 * testsuite/libgomp.c/target-3.c: New test. 1721 * testsuite/libgomp.c/target-4.c: New test. 1722 * testsuite/libgomp.c/target-5.c: New test. 1723 * testsuite/libgomp.c/target-6.c: New test. 1724 * testsuite/libgomp.c/target-7.c: New test. 1725 * testsuite/libgomp.c/taskgroup-1.c: New test. 1726 * testsuite/libgomp.c/thread-limit-1.c: New test. 1727 * testsuite/libgomp.c/thread-limit-2.c: New test. 1728 * testsuite/libgomp.c/thread-limit-3.c: New test. 1729 * testsuite/libgomp.c/udr-1.c: New test. 1730 * testsuite/libgomp.c/udr-2.c: New test. 1731 * testsuite/libgomp.c/udr-3.c: New test. 1732 * testsuite/libgomp.c++/affinity-1.C: New test. 1733 * testsuite/libgomp.c++/atomic-10.C: New test. 1734 * testsuite/libgomp.c++/atomic-11.C: New test. 1735 * testsuite/libgomp.c++/atomic-12.C: New test. 1736 * testsuite/libgomp.c++/atomic-13.C: New test. 1737 * testsuite/libgomp.c++/atomic-14.C: New test. 1738 * testsuite/libgomp.c++/atomic-15.C: New test. 1739 * testsuite/libgomp.c++/cancel-for-1.C: New test. 1740 * testsuite/libgomp.c++/cancel-for-2.C: New test. 1741 * testsuite/libgomp.c++/cancel-parallel-1.C: New test. 1742 * testsuite/libgomp.c++/cancel-parallel-2.C: New test. 1743 * testsuite/libgomp.c++/cancel-parallel-3.C: New test. 1744 * testsuite/libgomp.c++/cancel-sections-1.C: New test. 1745 * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test. 1746 * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test. 1747 * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test. 1748 * testsuite/libgomp.c++/cancel-test.h: New file. 1749 * testsuite/libgomp.c++/for-9.C: New test. 1750 * testsuite/libgomp.c++/for-10.C: New test. 1751 * testsuite/libgomp.c++/for-11.C: New test. 1752 * testsuite/libgomp.c++/simd-1.C: New test. 1753 * testsuite/libgomp.c++/simd-2.C: New test. 1754 * testsuite/libgomp.c++/simd-3.C: New test. 1755 * testsuite/libgomp.c++/simd-4.C: New test. 1756 * testsuite/libgomp.c++/simd-5.C: New test. 1757 * testsuite/libgomp.c++/simd-6.C: New test. 1758 * testsuite/libgomp.c++/simd-7.C: New test. 1759 * testsuite/libgomp.c++/simd-8.C: New test. 1760 * testsuite/libgomp.c++/target-1.C: New test. 1761 * testsuite/libgomp.c++/target-2.C: New test. 1762 * testsuite/libgomp.c++/target-2-aux.cc: New file. 1763 * testsuite/libgomp.c++/target-3.C: New test. 1764 * testsuite/libgomp.c++/taskgroup-1.C: New test. 1765 * testsuite/libgomp.c++/udr-1.C: New test. 1766 * testsuite/libgomp.c++/udr-2.C: New test. 1767 * testsuite/libgomp.c++/udr-3.C: New test. 1768 * testsuite/libgomp.c++/udr-4.C: New test. 1769 * testsuite/libgomp.c++/udr-5.C: New test. 1770 * testsuite/libgomp.c++/udr-6.C: New test. 1771 * testsuite/libgomp.c++/udr-7.C: New test. 1772 * testsuite/libgomp.c++/udr-8.C: New test. 1773 * testsuite/libgomp.c++/udr-9.C: New test. 1774 17752013-09-20 Jakub Jelinek <jakub@redhat.com> 1776 1777 PR testsuite/57605 1778 * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to 1779 ALWAYS_CFLAGS. 1780 17812013-09-20 Alan Modra <amodra@gmail.com> 1782 1783 * configure: Regenerate. 1784 17852013-09-19 Jakub Jelinek <jakub@redhat.com> 1786 1787 * testsuite/libgomp.c/sections-2.c: New test. 1788 17892013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> 1790 1791 * testsuite/libgomp.fortran/strassen.f90: 1792 Add dg-skip-if aarch64_tiny. 1793 17942013-06-20 Iain Sandoe <iain@codesourcery.com> 1795 Cesar Philippidis <cesar@codesourcery.com> 1796 1797 * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order. 1798 Do not load_gcc_lib gcc-dg.exp and add a comment as to why. 1799 * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp. 1800 * testsuite/libgomp.fortran/fortran.exp: Likewise. 1801 * testsuite/libgomp.graphite/graphite.exp: Likewise. 1802 * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp. 1803 Use dg-runtest rather than gfortran-dg-runtest. 1804 18052013-06-10 Thomas Schwinge <thomas@codesourcery.com> 1806 1807 * testsuite/libgomp.c/icv-2.c: Extend current handling of 1808 Linux-based x86 systems to cover all GNU systems. 1809 * testsuite/libgomp.c/lock-3.c: Likewise. 1810 * testsuite/libgomp.c/pr48591.c: Likewise. 1811 18122013-06-06 Thomas Schwinge <thomas@codesourcery.com> 1813 1814 * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for 1815 GNU/Hurd, as done for Linux-based systems. 1816 1817 * config/posix/ptrlock.h: Fix comment. 1818 18192013-05-27 Tobias Burnus <burnus@net-b.de> 1820 1821 PR fortran/57423 1822 * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested, 1823 omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock, 1824 omp_unset_lock, omp_destroy_lock, omp_init_nest_lock, 1825 omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock, 1826 omp_destroy_nest_lock): Correct arguments to match the one in 1827 the OpenMP spec. 1828 * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock 1829 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock, 1830 omp_unset_nest_lock, omp_set_dynamic, omp_set_nested, 1831 omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto. 1832 18332013-05-16 Jakub Jelinek <jakub@redhat.com> 1834 1835 * testsuite/libgomp.c/loop-13.c: New test. 1836 * testsuite/libgomp.c/loop-14.c: New test. 1837 * testsuite/libgomp.c/loop-15.c: New test. 1838 * testsuite/libgomp.c++/loop-13.C: New test. 1839 * testsuite/libgomp.c++/loop-14.C: New test. 1840 * testsuite/libgomp.c++/loop-15.C: New test. 1841 18422013-02-06 Jakub Jelinek <jakub@redhat.com> 1843 1844 PR middle-end/56217 1845 * testsuite/libgomp.c++/pr56217.C: New test. 1846 18472013-02-01 Alan Modra <amodra@gmail.com> 1848 1849 * task.c (GOMP_task, GOMP_taskwait): Comment. 1850 18512013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org> 1852 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> 1853 1854 PR libgomp/55561 1855 * config/linux/wait.h (do_spin): Use atomic load for addr. 1856 * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic 1857 for intptr and ptrlock. 1858 * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load 1859 for ptrlock. 1860 18612013-01-22 Alan Modra <amodra@gmail.com> 1862 1863 PR libgomp/51376 1864 PR libgomp/56073 1865 * task.c (GOMP_task): Revert 2011-12-09 change. 1866 (GOMP_taskwait): Likewise. Instead use atomic load with acquire 1867 barrier to read task->children.. 1868 (gomp_barrier_handle_tasks): ..and matching atomic store with 1869 release barrier here when setting parent->children to NULL. 1870 18712013-01-16 Jakub Jelinek <jakub@redhat.com> 1872 Tobias Burnus <burnus@net-b.de> 1873 1874 PR driver/55884 1875 * testsuite/libgomp.fortran/fortran.exp: Use 1876 -fintrinsic-modules-path= instead of 1877 -fintrinsic-modules-path. 1878 18792013-01-14 Richard Sandiford <rdsandiford@googlemail.com> 1880 1881 Update copyright years. 1882 18832012-12-19 Tobias Burnus <burnus@net-b.de> 1884 1885 * testsuite/libgomp.fortran/fortran.exp: Set 1886 -fintrinsic-modules-path. 1887 18882012-12-19 Tobias Burnus <burnus@net-b.de> 1889 1890 * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved 1891 from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90. 1892 18932012-11-21 Jakub Jelinek <jakub@redhat.com> 1894 1895 PR libgomp/55411 1896 * team.c (gomp_free_thread): Decrease gomp_managed_threads 1897 if pool had any threads_used. 1898 18992012-11-07 Jack Howarth <howarth@bromo.med.uc.edu> 1900 1901 * testsuite/libgomp.c++/pr24455.C: Use 1902 -Wl,-undefined,dynamic_lookup on darwin. 1903 19042012-11-07 David Edelsohn <dje.gcc@gmail.com> 1905 1906 * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX. 1907 19082012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr> 1909 1910 * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops. 1911 19122012-10-23 Ian Bolton <ian.bolton@arm.com> 1913 Jim MacArthur <jim.macarthur@arm.com> 1914 Marcus Shawcroft <marcus.shawcroft@arm.com> 1915 Nigel Stephens <nigel.stephens@arm.com> 1916 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 1917 Richard Earnshaw <rearnsha@arm.com> 1918 Sofiane Naci <sofiane.naci@arm.com> 1919 Stephen Thomas <stephen.thomas@arm.com> 1920 Tejas Belagod <tejas.belagod@arm.com> 1921 Yufeng Zhang <yufeng.zhang@arm.com> 1922 1923 * configure.tgt: Add AArch64. 1924 19252012-10-04 Jason Merrill <jason@redhat.com> 1926 1927 * testsuite/libgomp.c++/tls-init1.C: New. 1928 19292012-09-14 David Edelsohn <dje.gcc@gmail.com> 1930 1931 * configure: Regenerated. 1932 19332012-08-29 Chung-Lin Tang <cltang@codesourcery.com> 1934 1935 * config/linux/mips/futex.h (sys_futex0): Change to static 1936 function with noinline, nomips16 attributes under MIPS16. Adjust 1937 asm statement to place 'li v0,SYS_futex' immediately before 1938 syscall insn. 1939 19402012-07-04 Sandra Loosemore <sandra@codesourcery.com> 1941 1942 * libgomp.texi (Library Index): Renamed from "Index" to prevent 1943 conflict with index.html on case-insensitive file systems. 1944 19452012-07-03 Uros Bizjak <ubizjak@gmail.com> 1946 1947 * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause. 1948 * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto. 1949 19502012-07-02 Richard Guenther <rguenther@suse.de> 1951 Michael Matz <matz@suse.de> 1952 Tobias Grosser <tobias@grosser.es> 1953 Sebastian Pop <sebpop@gmail.com> 1954 1955 * testsuite/libgomp.graphite/force-parallel-4.c: Adjust. 1956 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise. 1957 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. 1958 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. 1959 19602012-06-28 Andreas Schwab <schwab@linux-m68k.org> 1961 1962 * libgomp.texi: Include gpl_v3.texi instead of gpl.texi. 1963 19642012-06-22 Richard Guenther <rguenther@suse.de> 1965 1966 Merge from graphite branch 1967 2012-01-13 Tobias Grosser <tobias@grosser.es> 1968 1969 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. 1970 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise. 1971 19722012-06-07 Jakub Jelinek <jakub@redhat.com> 1973 1974 PR middle-end/53580 1975 * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier, 1976 use GOMP_barrier () call instead. 1977 * testsuite/libgomp.c/pr26943-3.c: Likewise. 1978 * testsuite/libgomp.c/pr26943-4.c: Likewise. 1979 * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier, 1980 call GOMP_barrier instead. 1981 * testsuite/libgomp.fortran/vla5.f90: Likewise. 1982 19832012-06-06 Jakub Jelinek <jakub@redhat.com> 1984 1985 PR libgomp/52993 1986 * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last 1987 argument to memset call. 1988 19892012-05-16 H.J. Lu <hongjiu.lu@intel.com> 1990 1991 * configure: Regenerated. 1992 19932012-04-11 Manuel L��pez-Ib����ez <manu@gcc.gnu.org> 1994 1995 * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret. 1996 19972012-03-31 H.J. Lu <hongjiu.lu@intel.com> 1998 1999 PR bootstrap/52812 2000 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64. 2001 20022012-03-22 Jakub Jelinek <jakub@redhat.com> 2003 2004 PR middle-end/52547 2005 * testsuite/libgomp.c/pr52547.c: New test. 2006 20072012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 2008 2009 * testsuite/lib/libgomp.exp: load fortran-modules.exp 2010 20112012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2012 2013 * configure.tgt (mips-sgi-irix6*): Remove. 2014 20152012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2016 2017 * configure.tgt (alpha*-dec-osf*): Remove. 2018 2019 * config/osf/sem.h: Remove. 2020 * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally. 2021 20222012-02-29 Eric Botcazou <ebotcazou@adacore.com> 2023 2024 * config/linux/sparc/futex.h (cpu_relax): Read from CC register. 2025 20262012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2027 2028 PR libstdc++/52188 2029 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming. 2030 Remove ENABLE_SYMVERS_SOL2. 2031 * configure: Regenerate. 2032 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable. 2033 (PREPROCESS): New variable. 2034 (libgomp.ver): New target. 2035 [LIBGOMP_BUILD_VERSIONED_SHLIB && 2036 LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove 2037 LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling. 2038 Use libgomp.ver. 2039 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun. 2040 * Makefile.in: Regenerate. 2041 20422012-02-14 Walter Lee <walt@tilera.com> 2043 2044 * configure.tgt: Handle tilegx and tilepro. 2045 * config/linux/tile/futex.h: New file. 2046 20472012-02-08 Richard Guenther <rguenther@suse.de> 2048 2049 PR tree-optimization/46886 2050 * testsuite/libgomp.c/pr46886.c: New testcase. 2051 20522012-01-25 Matthias Klose <doko@ubuntu.com> 2053 2054 * config/linux/arm: Remove empty directory. 2055 * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*. 2056 20572011-12-09 Alan Modra <amodra@gmail.com> 2058 2059 PR libgomp/51376 2060 * task.c (GOMP_taskwait): Don't access task->children outside of 2061 task_lock mutex region. 2062 (GOMP_task): Likewise. 2063 20642011-12-06 Jakub Jelinek <jakub@redhat.com> 2065 2066 PR libgomp/51132 2067 * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays 2068 to file scope. 2069 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise. 2070 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise. 2071 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. 2072 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. 2073 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise. 2074 20752011-12-02 Alan Modra <amodra@gmail.com> 2076 2077 * config/linux/affinity.c: Use atomic rather than sync builtin. 2078 * config/linux/lock.c: Likewise. 2079 * config/linux/ptrlock.h: Likewise. 2080 * config/linux/ptrlock.c: Likewise. 2081 * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here.. 2082 * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here. 2083 * config/linux/futex.h (atomic_write_barrier): Delete unused function. 2084 * config/linux/alpha/futex.h (atomic_write_barrier): Likewise. 2085 * config/linux/ia64/futex.h (atomic_write_barrier): Likewise. 2086 * config/linux/mips/futex.h (atomic_write_barrier): Likewise. 2087 * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise. 2088 * config/linux/s390/futex.h (atomic_write_barrier): Likewise. 2089 * config/linux/sparc/futex.h (atomic_write_barrier): Likewise. 2090 * config/linux/x86/futex.h (atomic_write_barrier): Likewise. 2091 20922011-11-30 Alan Modra <amodra@gmail.com> 2093 2094 PR libgomp/51298 2095 * config/linux/bar.h: Use atomic rather than sync builtins. 2096 * config/linux/bar.c: Likewise. Add missing acquire 2097 synchronisation on generation field. 2098 * task.c (gomp_barrier_handle_tasks): Regain lock so as to not 2099 double unlock. 2100 21012011-11-30 Alan Modra <amodra@gmail.com> 2102 2103 * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence. 2104 * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence. 2105 * config/linux/mutex.h: Use atomic rather than sync builtins. 2106 * config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state. 2107 * config/linux/omp-lock.h: Comment fix. 2108 * config/linux/arm/mutex.h: Delete. 2109 * config/linux/powerpc/mutex.h: Delete. 2110 * config/linux/ia64/mutex.h: Delete. 2111 * config/linux/mips/mutex.h: Delete. 2112 21132011-11-30 Alan Modra <amodra@gmail.com> 2114 2115 PR libgomp/51249 2116 * config/linux/sem.h: Rewrite. 2117 * config/linux/sem.c: Rewrite. 2118 21192011-11-28 Richard Henderson <rth@redhat.com> 2120 2121 * libgomp.h (enum memmodel): New. 2122 21232011-11-21 Andreas Tobler <andreast@fgznet.ch> 2124 2125 * configure: Regenerate. 2126 21272011-10-10 Matthias Klose <doko@ubuntu.com> 2128 2129 * config/posix95: Remove empty directory. 2130 21312011-08-26 Jakub Jelinek <jakub@redhat.com> 2132 2133 * testsuite/libgomp.fortran/threadprivate4.f90: New test. 2134 21352011-08-19 Jakub Jelinek <jakub@redhat.com> 2136 2137 PR fortran/49792 2138 * testsuite/libgomp.fortran/pr49792-1.f90: New test. 2139 * testsuite/libgomp.fortran/pr49792-2.f90: New test. 2140 21412011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2142 2143 * config/posix95/lock.c, posix95/omp-lock.h: Remove. 2144 21452011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2146 2147 PR libgomp/49965 2148 * testsuite/libgomp.c++/task-8.C: Replaced err by errval. 2149 21502011-08-03 Uros Bizjak <ubizjak@gmail.com> 2151 2152 * config/linux/proc.h: New. 2153 * config/linux/proc.c: Include "proc.h". Do not include <sched.h>. 2154 (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static. 2155 (gomp_init_num_threads): Update call to cpuset_popcount. 2156 (get_num_procs): Ditto. 2157 * config/linux/affinity.c (gomp_init_affinity): Call 2158 gomp_cpuset_popcount. 2159 21602011-08-02 Jakub Jelinek <jakub@redhat.com> 2161 2162 PR fortran/42041 2163 PR fortran/46752 2164 * omp.h.in (omp_in_final): New prototype. 2165 * omp_lib.f90.in (omp_in_final): New interface. 2166 (omp_integer_kind, omp_logical_kind): Remove 2167 and replace all its uses in the module with 4. 2168 (openmp_version): Change to 201107. 2169 * omp_lib.h.in (omp_sched_static, omp_sched_dynamic, 2170 omp_sched_guided, omp_sched_auto): Use omp_sched_kind 2171 kind for the parameters. 2172 (omp_in_final): New external. 2173 (openmp_version): Change to 201107. 2174 * task.c (omp_in_final): New function. 2175 (gomp_init_task): Initialize final_task. 2176 (GOMP_task): Remove unused attribute from flags. Handle final 2177 tasks. 2178 (GOMP_taskyield): New function. 2179 (omp_in_final): Return true if if (false) or final (true) task 2180 or descendant of final (true). 2181 * fortran.c (omp_in_final_): New function. 2182 * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_. 2183 (GOMP_3.0): Export GOMP_taskyield. 2184 * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New 2185 variables. 2186 (parse_unsigned_long_list): New function. 2187 (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean 2188 with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity 2189 even if parse_affinity returned false. 2190 * config/linux/affinity.c (gomp_init_affinity): Handle 2191 gomp_cpu_affinity_len == 0. 2192 * libgomp_g.h (GOMP_taskyield): New prototype. 2193 * libgomp.h (struct gomp_task): Add final_task field. 2194 (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs. 2195 * team.c (gomp_team_start): Override new task's nthreads_var icv 2196 if list form OMP_NUM_THREADS has been used and it has value for 2197 the new nesting level. 2198 2199 * testsuite/libgomp.c/atomic-11.c: New test. 2200 * testsuite/libgomp.c/atomic-12.c: New test. 2201 * testsuite/libgomp.c/atomic-13.c: New test. 2202 * testsuite/libgomp.c/atomic-14.c: New test. 2203 * testsuite/libgomp.c/reduction-6.c: New test. 2204 * testsuite/libgomp.c/task-5.c: New test. 2205 * testsuite/libgomp.c++/atomic-2.C: New test. 2206 * testsuite/libgomp.c++/atomic-3.C: New test. 2207 * testsuite/libgomp.c++/atomic-4.C: New test. 2208 * testsuite/libgomp.c++/atomic-5.C: New test. 2209 * testsuite/libgomp.c++/atomic-6.C: New test. 2210 * testsuite/libgomp.c++/atomic-7.C: New test. 2211 * testsuite/libgomp.c++/atomic-8.C: New test. 2212 * testsuite/libgomp.c++/atomic-9.C: New test. 2213 * testsuite/libgomp.c++/task-8.C: New test. 2214 * testsuite/libgomp.c++/reduction-4.C: New test. 2215 * testsuite/libgomp.fortran/allocatable7.f90: New test. 2216 * testsuite/libgomp.fortran/allocatable8.f90: New test. 2217 * testsuite/libgomp.fortran/crayptr3.f90: New test. 2218 * testsuite/libgomp.fortran/omp_atomic3.f90: New test. 2219 * testsuite/libgomp.fortran/omp_atomic4.f90: New test. 2220 * testsuite/libgomp.fortran/pointer1.f90: New test. 2221 * testsuite/libgomp.fortran/pointer2.f90: New test. 2222 * testsuite/libgomp.fortran/task4.f90: New test. 2223 22242011-08-02 Tobias Burnus <burnus@net-b.de> 2225 2226 * libgomp.texi: Update OpenMP spec references to 3.1. 2227 (omp_in_final,OMP_PROC_BIND): New sections. 2228 (OMP_NUM_THREADS): Document that the value can be now a list. 2229 (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref. 2230 22312011-08-02 H.J. Lu <hongjiu.lu@intel.com> 2232 2233 * config/linux/x86/futex.h: Check __x86_64__ instead of 2234 __LP64__. 2235 22362011-07-29 Jakub Jelinek <jakub@redhat.com> 2237 2238 PR middle-end/49897 2239 PR middle-end/49898 2240 * testsuite/libgomp.c/pr49897-1.c: New test. 2241 * testsuite/libgomp.c/pr49897-2.c: New test. 2242 * testsuite/libgomp.c/pr49898-1.c: New test. 2243 * testsuite/libgomp.c/pr49898-2.c: New test. 2244 22452011-07-28 H.J. Lu <hongjiu.lu@intel.com> 2246 2247 * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486 2248 for ia32 instead of ilp32. 2249 2250 * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32. 2251 * testsuite/libgomp.c/atomic-6.c: Likewise. 2252 22532011-07-23 Sebastian Pop <sebastian.pop@amd.com> 2254 2255 * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail. 2256 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern. 2257 22582011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2259 2260 PR libgomp/45351 2261 * config/osf/sem.h: New file. 2262 * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path. 2263 22642011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2265 2266 PR target/49541 2267 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to 2268 ldflags. 2269 22702011-07-15 Jakub Jelinek <jakub@redhat.com> 2271 2272 * config/linux/wait.h (do_spin): New inline, largely copied 2273 from do_wait, just don't do futex_wait here, instead return true if 2274 it should be done. 2275 (do_wait): Implement using do_spin. 2276 * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument 2277 to prototype. 2278 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of 2279 __sync_bool_compare_and_swap, pass the oldval to 2280 gomp_mutex_lock_slow. 2281 * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument. 2282 If all mutex contenders are just spinning and not sleeping, don't 2283 change state to 2 unnecessarily. Optimize the loop when state has 2284 already become 2 to use just one atomic operation per loop instead 2285 of two. 2286 * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument 2287 to prototype. 2288 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of 2289 __sync_bool_compare_and_swap, pass the oldval to 2290 gomp_mutex_lock_slow. 2291 22922011-06-22 Jakub Jelinek <jakub@redhat.com> 2293 2294 PR libgomp/49490 2295 * iter.c (gomp_iter_static_next): For chunk size 0 2296 only use n ceil/ nthreads size for the first 2297 n % nthreads threads in the team instead of 2298 all threads except for the last few ones which 2299 get less work or none at all. 2300 * iter_ull.c (gomp_iter_ull_static_next): Likewise. 2301 * env.c (parse_schedule): If OMP_SCHEDULE doesn't have 2302 chunk argument, set run_sched_modifier to 0 for static 2303 resp. 1 for other kinds. If chunk argument is 0 2304 and not static, set value to 1. 2305 23062011-05-19 Jakub Jelinek <jakub@redhat.com> 2307 2308 PR c++/49043 2309 * testsuite/libgomp.c++/pr49043.C: New test. 2310 2311 PR c++/48869 2312 * testsuite/libgomp.c++/pr48869.C: New test. 2313 23142011-05-06 Jakub Jelinek <jakub@redhat.com> 2315 2316 PR fortran/48894 2317 * fortran.c: Include limits.h. 2318 (TO_INT): Define. 2319 (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of 2320 *set. 2321 (omp_set_num_threads_8_, omp_set_schedule_8_, 2322 omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_, 2323 omp_get_team_size_8_): Use TO_INT macro. 2324 * testsuite/libgomp.fortran/pr48894.f90: New test. 2325 23262011-04-13 Jakub Jelinek <jakub@redhat.com> 2327 2328 PR middle-end/48591 2329 * testsuite/libgomp.c/pr48591.c: New test. 2330 23312011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2332 2333 PR bootstrap/48135 2334 * acinclude.m4 (enable_symvers): Handle --disable-symvers. 2335 * configure: Regenerate. 2336 23372011-02-27 Jakub Jelinek <jakub@redhat.com> 2338 2339 PR fortran/47886 2340 * testsuite/libgomp.fortran/task3.f90: New test. 2341 23422011-02-24 Tobias Burnus <burnus@net-b.de> 2343 2344 * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE. 2345 23462011-02-23 Jakub Jelinek <jakub@redhat.com> 2347 2348 PR libgomp/47854 2349 * libgomp.texi (omp_get_wtime): Don't say time in the past 2350 must be Unix Epoch. 2351 23522011-02-18 Jakub Jelinek <jakub@redhat.com> 2353 2354 PR libgomp/47804 2355 * testsuite/libgomp.fortran/fortran.exp: Check for both 2356 libquadmath.a and libquadmath.${shlib_ext}. If neither exists, 2357 but $blddir != "", still append ${blddir}/${lang_library_path} 2358 to ld_library_path. 2359 23602011-02-16 Tobias Burnus <burnus@net-b.de> 2361 2362 PR libgomp/47758 2363 * testsuite/libgomp.fortran/fortran.exp: Check for the existence 2364 of libquadmath.a before adding its libpath to ldflags. 2365 23662011-02-14 Jakub Jelinek <jakub@redhat.com> 2367 2368 PR libgomp/47731 2369 * config/linux/futex.h (futex_wait): Pass NULL as timeout argument 2370 to FUTEX_WAIT futex syscall. 2371 * config/linux/wait.h: Include <futex.h> instead of "futex.h". 2372 23732011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2374 2375 * configure: Regenerate. 2376 23772011-01-20 Benjamin Kosnik <bkoz@redhat.com> 2378 2379 PR libstdc++/36104 2380 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants. 2381 23822011-01-16 Gerald Pfeifer 2383 2384 * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS. 2385 23862010-12-14 Jakub Jelinek <jakub@redhat.com> 2387 2388 PR fortran/46874 2389 * libgomp.fortran/allocatable6.f90: New test. 2390 23912010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2392 2393 * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no. 2394 * configure: Regenerate. 2395 23962010-12-06 Dave Korn <dave.korn.cygwin@gmail.com> 2397 2398 PR target/40125 2399 PR lto/46695 2400 * configure.ac: Invoke ACX_LT_HOST_FLAGS. 2401 * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags. 2402 * aclocal.m4: Regenerate. 2403 * configure: Regenerate. 2404 * Makefile.in: Regenerate. 2405 * testsuite/Makefile.in: Regenerate. 2406 24072010-12-02 Jakub Jelinek <jakub@redhat.com> 2408 2409 PR fortran/46753 2410 * libgomp.fortran/pr46753.f90: New test. 2411 2412 PR libgomp/43706 2413 * env.c (initialize_env): Default to spin count 300000 2414 instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT 2415 is specified. 2416 2417 PR libgomp/45240 2418 * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock 2419 at the end if sync builtins aren't supported. 2420 24212010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2422 2423 * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS. 2424 24252010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2426 2427 * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0. 2428 24292010-11-24 Iain Sandoe <iains@gcc.gnu.org> 2430 2431 * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath. 2432 24332010-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2434 Tobias Burnus <burnus@net-b.de> 2435 2436 PR fortran/32049 2437 * configure.ac: 2438 * configure: Regenerate. 2439 24402010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com> 2441 2442 * config/linux/futex.h: New. 2443 * config/linux/arm/mutex.h: New. 2444 * configure.tgt (arm*-*-linux*): Add config path. 2445 24462010-09-30 Sebastian Pop <sebastian.pop@amd.com> 2447 2448 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. 2449 24502010-09-23 Tobias Burnus <burnus@net-b.de> 2451 2452 * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic): 2453 Change Fortran datatype to LOGICAL. 2454 (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock, 2455 omp_unset_nested_lock): Use intent(inout) instead of intent(out). 2456 24572010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2458 2459 * configure: Regenerate. 2460 24612010-07-26 Jakub Jelinek <jakub@redhat.com> 2462 2463 * libgomp.texi: Add function keyword to a couple of Fortran 2464 interfaces, use integer instead of int for Fortran. 2465 24662010-07-26 Aldy Hernandez <aldyh@redhat.com> 2467 2468 * libgomp.texi: Fix spelling and pasto problems throughout. 2469 Adjust prototypes to match code. 2470 24712010-07-24 Tobias Burnus <burnus@net-b.de> 2472 2473 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to 2474 silence -fwhole-file warning. 2475 24762010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2477 2478 * configure.tgt (*-*-solaris2.[56]*): Removed. 2479 24802010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2481 2482 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style. 2483 Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU, 2484 LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals. 2485 (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless 2486 targetting solaris2*. 2487 * configure: Regenerate. 2488 * config.h.in: Regenerate. 2489 2490 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect 2491 libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU. 2492 Add libgomp_version_dep. 2493 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol 2494 versioning. 2495 [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep. 2496 (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep). 2497 * Makefile.in: Regenerate. 2498 2499 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless 2500 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT. 2501 * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0 2502 to common block, protected by 2503 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT. 2504 25052010-06-10 Gerald Pfeifer <gerald@pfeifer.com> 2506 2507 * libgomp.texi: Move to GFDL version 1.3. Update copyright years. 2508 25092010-06-09 Iain Sandoe <iains@gcc.gnu.org> 2510 2511 PR bootstrap/43170 2512 * configure: Regenerate. 2513 25142010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2515 2516 PR other/43620 2517 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. 2518 * configure: Regenerate. 2519 * Makefile.in: Regenerate. 2520 * testsuite/Makefile.in: Regenerate. 2521 25222010-04-26 Jakub Jelinek <jakub@redhat.com> 2523 2524 PR c/43893 2525 * testsuite/libgomp.c/pr43893.c: New test. 2526 * testsuite/libgomp.c++/pr43893.C: New test. 2527 25282010-04-21 Jakub Jelinek <jakub@redhat.com> 2529 2530 PR middle-end/43570 2531 * testsuite/libgomp.fortran/vla8.f90: New test. 2532 25332010-04-20 Jakub Jelinek <jakub@redhat.com> 2534 2535 PR libgomp/43706 2536 * config/linux/affinity.c (gomp_init_affinity): Decrease 2537 gomp_available_cpus if affinity mask confines the process to fewer 2538 CPUs. 2539 * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is 2540 non-NULL, just return gomp_available_cpus. 2541 2542 PR libgomp/43569 2543 * sections.c (gomp_sections_init): Initialize ws->mode. 2544 25452010-04-14 Uros Bizjak <ubizjak@gmail.com> 2546 2547 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but 2548 not unused bar variable. 2549 * configure: Regenerate. 2550 25512010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2552 2553 * Makefile.in: Regenerate. 2554 * aclocal.m4: Regenerate. 2555 * testsuite/Makefile.in: Regenerate. 2556 25572010-03-22 Jakub Jelinek <jakub@redhat.com> 2558 2559 PR libgomp/42942 2560 * env.c (parse_unsigned_long): Add ALLOW_ZERO argument. 2561 (initialize_env): Adjust callers. 2562 (omp_set_max_active_levels): Set gomp_max_active_levels_var even 2563 when the argument is 0. 2564 2565 * testsuite/libgomp.c/pr42942.c: New test. 2566 25672010-03-08 Tobias Grosser <grosser@fim.uni-passau.de> 2568 2569 PR middle-end/42644 2570 PR middle-end/42130 2571 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. 2572 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust. 2573 25742010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2575 2576 * testsuite/libgomp.c++/task-1.C: Renamed err to e. 2577 * testsuite/libgomp.c++/task-6.C: Likewise. 2578 25792010-01-28 Steve Ellcey <sje@cup.hp.com> 2580 2581 * configure.tgt (*-*-hpux*): Add -frandom-seed flag. 2582 25832010-01-26 Paolo Bonzini <bonzini@gnu.org> 2584 2585 * configure.ac: Test for executability of _the first word_ of GFORTRAN. 2586 * configure: Regenerate. 2587 25882010-01-26 Jakub Jelinek <jakub@redhat.com> 2589 2590 PR fortran/42866 2591 * testsuite/libgomp.fortran/allocatable5.f90: New test. 2592 25932010-01-20 Paolo Bonzini <bonzini@gnu.org> 2594 2595 * configure.ac: Test for executability of GFORTRAN. 2596 * configure: Regenerate. 2597 25982010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2599 2600 * configure: Regenerate. 2601 26022010-01-04 H.J. Lu <hongjiu.lu@intel.com> 2603 2604 PR libgomp/42602 2605 * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic. 2606 26072010-01-03 Richard Guenther <rguenther@suse.de> 2608 2609 * testsuite/libgomp.fortran/recursion1.f90: New testcase. 2610 26112009-12-23 Sebastian Pop <sebpop@gmail.com> 2612 2613 * testsuite/libgomp.graphite/pr4118.c: New. 2614 26152009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2616 2617 * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage 2618 for darwin, protect the test with require-effective-target tls_runtime. 2619 * testsuite/libgomp.fortran/pr32550.f90: Ditto. 2620 26212009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2622 2623 PR target/41605 2624 * testsuite/lib/libgomp.exp: Provide -B options to allow for 2625 link spec %s substitutions for static libraries. 2626 26272009-12-18 Jack Howarth <howarth@bromo.med.uc.edu> 2628 2629 PR testsuite/42135 2630 * libgomp.graphite/force-parallel-2.c: Reduce array size. 2631 26322009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2633 2634 * Makefile.in: Regenerate. 2635 * configure: Regenerate. 2636 * testsuite/Makefile.in: Regenerate. 2637 26382009-11-30 Dave Korn <dave.korn.cygwin@gmail.com> 2639 2640 * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent 2641 settings for LC_ALL and LANG. 2642 26432009-11-25 Jakub Jelinek <jakub@redhat.com> 2644 2645 PR fortran/42162 2646 * testsuite/libgomp.fortran/pr42162.f90: New test. 2647 26482009-11-13 Jakub Jelinek <jakub@redhat.com> 2649 2650 PR middle-end/42029 2651 * testsuite/libgomp.c/pr42029.c: New test. 2652 26532009-10-26 Jakub Jelinek <jakub@redhat.com> 2654 2655 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many 2656 *s. Accept ld version without text in ()s. 2657 * configure: Regenerated. 2658 26592009-10-22 Razya Ladelsky <razya@il.ibm.com> 2660 2661 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan. 2662 26632009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2664 2665 PR libgomp/41418 2666 * configure.ac: Set FC to "no" if $GFORTRAN starts with "no" 2667 or a hyphen (happens with fortran language disabled). 2668 * configure: Regenerate. 2669 26702009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2671 2672 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head', 2673 use sed script portable to Solaris /bin/sed for extracting ld 2674 version. 2675 * configure: Regenerate. 2676 26772009-09-17 Alexander Monakov <amonakov@ispras.ru> 2678 2679 * testsuite/libgomp.graphite/bounds.c: New test. 2680 26812009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2682 2683 * Makefile.am (libgomp_la_LINK): New. 2684 * Makefile.in: Regenerate. 2685 26862009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2687 2688 * configure.ac (AC_PREREQ): Bump to 2.64. 2689 26902009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2691 2692 * Makefile.am (install-html, install-pdf): Remove. 2693 * Makefile.in: Regenerate. 2694 2695 * Makefile.in: Regenerate. 2696 * aclocal.m4: Regenerate. 2697 * config.h.in: Regenerate. 2698 * configure: Regenerate. 2699 * testsuite/Makefile.in: Regenerate. 2700 27012009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2702 2703 * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS). 2704 * Makefile.in: Regenerate. 2705 27062009-08-20 Dave Korn <dave.korn.cygwin@gmail.com> 2707 2708 * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag. 2709 * Makefile.in: Regenerate. 2710 27112009-08-19 Tobias Burnus <burnus@net-b.de> 2712 2713 PR fortran/41102 2714 omp_lib.h.in: Fix -std=f95 errors. 2715 2716 27172009-08-14 David Edelsohn <edelsohn@gnu.org> 2718 2719 * testsuite/libgomp.graphite: Move from gcc.dg/graphite. 2720 * testsuite/libgomp.graphite/graphite_autopar.exp: Delete. 2721 * testsuite/libgomp.graphite/graphite.exp: New. 2722 27232009-08-05 Andreas Tobler <a.tobler@schweiz.org> 2724 2725 * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared 2726 only build. 2727 27282009-08-04 David Daney <ddaney@caviumnetworks.com> 2729 2730 * config/linux/mutex.h (gomp_mutex_unlock): Add comment about 2731 needed memory barrier semantics. 2732 * config/linux/mips/mutex.h: New file. 2733 27342009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2735 2736 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force. 2737 27382009-07-16 Joseph Myers <joseph@codesourcery.com> 2739 2740 * configure: Regenerate. 2741 27422009-07-11 Richard Sandiford <rdsandiford@googlemail.com> 2743 2744 PR testsuite/40699 2745 PR testsuite/40707 2746 PR testsuite/40709 2747 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits. 2748 * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp, 2749 testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits. 2750 27512009-07-02 Richard Sandiford <r.sandiford@uk.ibm.com> 2752 2753 * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS 2754 options when choosing a multilib. 2755 27562009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com> 2757 2758 * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to 2759 ld_library_path. Use add_path. Add just find_libgcc_s to 2760 ld_library_path, not every libgcc multilib directory. 2761 * testsuite/libgomp.c/c.exp (ld_library_path): Don't call 2762 gcc-set-multilib-library-path; rely on $always_ld_library_path instead. 2763 * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise. 2764 Use add_path. 2765 * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise. 2766 27672009-06-09 Nathan Froyd <froydnj@codesourcery.com> 2768 2769 * Makefile.am (LTLDFLAGS): Define. 2770 (LINK): Define. 2771 * Makefile.in: Regenerate. 2772 27732009-05-27 Janne Blomqvist <jb@gcc.gnu.org> 2774 2775 PR fortran/39718 2776 * testsuite/libgomp.fortran/fortran.exp: Don't link with 2777 libgfortranbegin, check existence of libgfortran.a instead of 2778 libgfortranbegin.a. 2779 27802009-05-20 Jakub Jelinek <jakub@redhat.com> 2781 2782 PR libgomp/40174 2783 * team.c (gomp_thread_start): Destroy thr->release semaphore. 2784 (gomp_free_pool_helper): Likewise. 2785 27862009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com> 2787 Jakub Jelinek <jakub@redhat.com> 2788 2789 PR fortran/35423 2790 * testsuite/libgomp.fortran/workshare2.f90: New test. 2791 27922009-04-09 Nick Clifton <nickc@redhat.com> 2793 2794 * iter.c: Change copyright header to refer to version 3 of the 2795 GNU General Public License with version 3.1 of the GCC Runtime 2796 Library Exception and to point readers at the COPYING3 and 2797 COPYING3.RUNTIME files and the FSF's license web page. 2798 * alloc.c: Likewise. 2799 * barrier.c: Likewise. 2800 * config/bsd/proc.c: Likewise. 2801 * config/linux/affinity.c: Likewise. 2802 * config/linux/alpha/futex.h: Likewise. 2803 * config/linux/bar.c: Likewise. 2804 * config/linux/bar.h: Likewise. 2805 * config/linux/ia64/futex.h: Likewise. 2806 * config/linux/ia64/mutex.h: Likewise. 2807 * config/linux/lock.c: Likewise. 2808 * config/linux/mips/futex.h: Likewise. 2809 * config/linux/mutex.c: Likewise. 2810 * config/linux/mutex.h: Likewise. 2811 * config/linux/powerpc/futex.h: Likewise. 2812 * config/linux/proc.c: Likewise. 2813 * config/linux/ptrlock.c: Likewise. 2814 * config/linux/ptrlock.h: Likewise. 2815 * config/linux/s390/futex.h: Likewise. 2816 * config/linux/sem.c: Likewise. 2817 * config/linux/sem.h: Likewise. 2818 * config/linux/sparc/futex.h: Likewise. 2819 * config/linux/wait.h: Likewise. 2820 * config/linux/x86/futex.h: Likewise. 2821 * config/mingw32/proc.c: Likewise. 2822 * config/mingw32/time.c: Likewise. 2823 * config/posix/affinity.c: Likewise. 2824 * config/posix/bar.c: Likewise. 2825 * config/posix/bar.h: Likewise. 2826 * config/posix/lock.c: Likewise. 2827 * config/posix/mutex.h: Likewise. 2828 * config/posix/proc.c: Likewise. 2829 * config/posix/ptrlock.h: Likewise. 2830 * config/posix/sem.c: Likewise. 2831 * config/posix/sem.h: Likewise. 2832 * config/posix/time.c: Likewise. 2833 * config/posix95/lock.c: Likewise. 2834 * critical.c: Likewise. 2835 * env.c: Likewise. 2836 * error.c: Likewise. 2837 * fortran.c: Likewise. 2838 * iter_ull.c: Likewise. 2839 * libgomp.h: Likewise. 2840 * libgomp_f.h.in: Likewise. 2841 * libgomp_g.h: Likewise. 2842 * loop.c: Likewise. 2843 * loop_ull.c: Likewise. 2844 * omp.h.in: Likewise. 2845 * omp_lib.f90.in: Likewise. 2846 * omp_lib.h.in: Likewise. 2847 * ordered.c: Likewise. 2848 * parallel.c: Likewise. 2849 * sections.c: Likewise. 2850 * single.c: Likewise. 2851 * task.c: Likewise. 2852 * team.c: Likewise. 2853 * work.c: Likewise. 2854 28552009-04-09 Jakub Jelinek <jakub@redhat.com> 2856 2857 * testsuite/config/default.exp: Change copyright header to refer to 2858 version 3 of the GNU General Public License and to point readers 2859 at the COPYING3 file and the FSF's license web page. 2860 28612009-04-08 Jakub Jelinek <jakub@redhat.com> 2862 2863 PR middle-end/39573 2864 * libgomp.c++/pr39573.C: New test. 2865 28662009-04-01 Jakub Jelinek <jakub@redhat.com> 2867 2868 PR other/39591 2869 * testsuite/libgomp.c/pr39591-1.c: New test. 2870 * testsuite/libgomp.c/pr39591-2.c: New test. 2871 * testsuite/libgomp.c/pr39591-3.c: New test. 2872 28732009-03-25 Uros Bizjak <ubizjak@gmail.com> 2874 2875 * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage. 2876 * testsuite/libgomp.c/atomic-6.c: Ditto. 2877 28782009-03-23 Jakub Jelinek <jakub@redhat.com> 2879 2880 PR c/39495 2881 * testsuite/libgomp.c/loop-12.c: New test. 2882 * testsuite/libgomp.c/loop-11.c: New test. 2883 * testsuite/libgomp.c++/loop-11.C: New test. 2884 * testsuite/libgomp.c++/loop-12.C: New test. 2885 * testsuite/libgomp.c++/for-8.C: New test. 2886 28872009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2888 2889 * configure: Regenerate. 2890 28912009-02-11 Jakub Jelinek <jakub@redhat.com> 2892 2893 PR middle-end/39154 2894 * testsuite/libgomp.c/pr39154.c: New test. 2895 28962009-01-30 Ian Lance Taylor <iant@google.com> 2897 2898 * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set 2899 libgomp_ld_is_gold. Get gold version number. 2900 (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning. 2901 * configure: Rebuild. 2902 29032009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2904 2905 * testsuite/lib/libgomp.exp: Add -B option for targets that 2906 use libgfortran.a%s in their specs. 2907 29082009-01-07 Jakub Jelinek <jakub@redhat.com> 2909 2910 PR libgomp/38086 2911 * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check. 2912 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if 2913 HAVE_AS_SYMVER_DIRECTIVE is not defined. 2914 * configure: Regenerated. 2915 * config.h.in: Likewise. 2916 29172008-12-28 Jakub Jelinek <jakub@redhat.com> 2918 2919 PR c++/38650 2920 * testsuite/libgomp.c/pr38650.c: New test. 2921 * testsuite/libgomp.c++/pr38650.C: New test. 2922 29232008-12-27 Jakub Jelinek <jakub@redhat.com> 2924 2925 * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause. 2926 29272008-12-26 Uros Bizjak <ubizjak@gmail.com> 2928 2929 * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets. 2930 29312008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2932 2933 * configure: Regenerate. 2934 29352008-12-08 Jakub Jelinek <jakub@redhat.com> 2936 2937 PR middle-end/36802 2938 * testsuite/libgomp.c/pr36802-1.c: New test. 2939 * testsuite/libgomp.c/pr36802-2.c: New test. 2940 * testsuite/libgomp.c/pr36802-3.c: New test. 2941 29422008-12-01 Janis Johnson <janis187@us.ibm.com> 2943 2944 PR libgomp/38270 2945 * config/linux/powerpc/mutex.h: New. 2946 29472008-12-01 Jakub Jelinek <jakub@redhat.com> 2948 2949 PR c++/38257 2950 * testsuite/libgomp.c++/for-7.C: New test. 2951 2952 PR c++/38348 2953 * testsuite/libgomp.c++/for-6.C: New test. 2954 29552008-11-26 Janis Johnson <janis187@us.ibm.com> 2956 2957 PR testsuite/28870 2958 * testsuite/lib/libgomp.exp: Include new timeout library files. 2959 (libgomp_target_compile): Set timeout value from new proc. 2960 29612008-11-13 Steve Ellcey <sje@cup.hp.com> 2962 2963 PR libgomp/37938 2964 * config/linux/ia64/mutex.h: New. 2965 29662008-11-04 Tobias Burnus <burnus@net-b.de> 2967 2968 PR libgomp/37935 2969 * libgomp.texi (Runtime library routines, environment variables): 2970 Update for OpenMP version 3.0. 2971 29722008-09-26 Peter O'Gorman <pogma@thewrittenword.com> 2973 Steve Ellcey <sje@cup.hp.com> 2974 2975 * configure: Regenerate for new libtool. 2976 * Makefile.in: Ditto. 2977 * testsuite/Makefile.in: Ditto. 2978 29792008-09-19 Jakub Jelinek <jakub@redhat.com> 2980 Andreas Tobler <a.tobler@schweiz.org> 2981 2982 * config/bsd/proc.c: New file. 2983 * configure.tgt (*-*-darwin*): Use config_path "bsd posix". 2984 * configure.ac: Check for header <sys/sysctl.h> 2985 * configure: Regenerate. 2986 * config.h.in: Likewise. 2987 29882008-09-05 Janis Johnson <janis187@us.ibm.com> 2989 2990 * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists. 2991 29922008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 2993 2994 * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined. 2995 * Makefile.in: Regenerated. 2996 * testsuite/Makefile.in: Regenerated. 2997 29982008-08-21 Nathan Froyd <froydnj@codesourcery.com> 2999 3000 * testsuite/lib/libgomp.exp (libgomp_init): Only set things that 3001 depend on blddir if blddir exists. 3002 (libgomp_target_compile): Likewise. 3003 * testsuite/libgomp.c++/c++.exp: Likewise. 3004 * testsuite/libgomp.fortran/fortran.exp: Likewise. 3005 30062008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3007 3008 * libgomp.texi: Update to GFDL 1.2. Update copyright years. 3009 Do not list GPL as Invariant Section. 3010 30112008-07-28 Ilie Garbacea <ilie@mips.com> 3012 Chao-ying Fu <fu@mips.com> 3013 3014 * configure.tgt: Enable futex for MIPS. 3015 * config/linux/mips/futex.h: New file. 3016 30172008-07-16 Jakub Jelinek <jakub@redhat.com> 3018 3019 * team.c (gomp_team_end): Free team immediately if it has 3020 just one thread. 3021 30222008-07-08 David Edelsohn <edelsohn@gnu.org> 3023 3024 * testsuite/libgomp.c++/c++.exp: Append multilib library path. 3025 * testsuite/libgomp.fortran/fortran.exp: Same. 3026 * testsuite/libgomp.c/c.exp: Same. 3027 * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib 3028 directory to library path first. 3029 30302008-06-29 Krister Walfridsson <krister.walfridsson@gmail.com> 3031 3032 * env.c (parse_stacksize): Add cast to avoid warning. 3033 (parse_spincount): Likewise. 3034 30352008-06-27 Jakub Jelinek <jakub@redhat.com> 3036 3037 * testsuite/libgomp.c/loop-10.c: New test. 3038 * libgomp.c/loop-3.c (main): Add lastprivate clause. 3039 * libgomp.c++/loop-6.C (main): Likewise. 3040 3041 PR debug/36617 3042 * testsuite/libgomp.c/debug-1.c: New test. 3043 30442008-06-19 Jakub Jelinek <jakub@redhat.com> 3045 3046 * testsuite/libgomp.c/nqueens-1.c: New test. 3047 3048 PR c++/36523 3049 * testsuite/libgomp.c++/task-7.C: New function. 3050 30512008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3052 3053 * configure: Regenerate. 3054 30552008-06-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3056 3057 * env.c (initialize_env): Always initialize gomp_remaining_threads_lock 3058 mutex when HAVE_SYNC_BUILTINS isn't defined. 3059 30602008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3061 3062 * libgomp.texi (omp_test_lock): Fix typo. 3063 30642008-06-12 Tobias Burnus <burnus@net-b.de> 3065 3066 * omp_lib.f90.in: Add "implicit none". 3067 30682008-06-12 Jakub Jelinek <jakub@redhat.com> 3069 3070 PR middle-end/36506 3071 * testsuite/libgomp.c/reduction-5.c: New test. 3072 30732008-06-11 Jakub Jelinek <jakub@redhat.com> 3074 3075 * libgomp.h (struct gomp_task): Add in_tied_task field. 3076 * task.c (gomp_init_task): Initialize it. 3077 (GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending 3078 unconditionally. Don't call gomp_team_barrier_wake if 3079 current task is implicit or if(0) from implicit and number of 3080 running tasks is equal to nthreads - 1. 3081 3082 PR libgomp/36471 3083 * omp_lib.f90.in (omp_get_ancestor_thread_num_8, 3084 omp_get_team_size_8): Fix pastos. 3085 3086 PR libgomp/36469 3087 * configure.ac: Add AC_CHECK_FUNCS (strtoull). 3088 * configure: Regenerated. 3089 * config.h.in: Regenerated. 3090 * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not 3091 defined. 3092 30932008-06-06 Andreas Tobler <a.tobler@schweiz.org> 3094 3095 PR bootstrap/36452 3096 * loop_ull.c (GOMP_loop_ull_static_start): Adjust API. 3097 (GOMP_loop_ull_dynamic_start): Likewise. 3098 (GOMP_loop_ull_guided_start): Likewise. 3099 (GOMP_loop_ull_ordered_static_start): Likewise. 3100 (GOMP_loop_ull_ordered_dynamic_start): Likewise. 3101 (GOMP_loop_ull_ordered_guided_start): Likewise. 3102 31032008-06-06 Jakub Jelinek <jakub@redhat.com> 3104 Richard Henderson <rth@redhat.com> 3105 Ulrich Drepper <drepper@redhat.com> 3106 Jakob Blomer <jakob.blomer@ira.uka.de> 3107 3108 * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE. 3109 Substitute also OMP_*LOCK_25*. 3110 * configure: Regenerated. 3111 * config.h.in: Regenerated. 3112 * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c, 3113 ptrlock.c and task.c. 3114 * Makefile.in: Regenerated. 3115 * testsuite/Makefile.in: Regenerated. 3116 * task.c: New file. 3117 * loop_ull.c: New file. 3118 * iter_ull.c: New file. 3119 * libgomp.h: Include ptrlock.h. 3120 (enum gomp_task_kind): New type. 3121 (struct gomp_team): Add task_lock, task_queue, task_count, 3122 task_running_count, single_count fields. Add 3123 work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS. 3124 Remove work_share_lock, generation_mask, 3125 oldest_live_gen, num_live_gen and init_work_shares fields, add 3126 work work_share_list_alloc, work_share_list_free and work_share_chunk 3127 fields. Change work_shares from pointer to pointers into an array. 3128 Change ordered_release field into gomp_sem_t ** from flexible array 3129 member. Add implicit_task and initial_work_shares fields. 3130 Move close to the end of the struct. 3131 (struct gomp_team_state): Add single_count, last_work_share, 3132 active_level and level fields, remove work_share_generation. 3133 (gomp_barrier_handle_tasks): New prototype. 3134 (gomp_finish_task): New inline function. 3135 (struct gomp_work_share): Move chunk_size, end, incr into 3136 transparent union/struct, add chunk_size_ull, end_ll, incr_ll and 3137 next_ll fields. Reshuffle fields. Add next_alloc, 3138 next_ws, next_free and inline_ordered_team_ids fields, change 3139 ordered_team_ids into pointer from flexible array member. 3140 Add mode field. Put lock and next into a different cache line 3141 from most of the write-once fields. 3142 (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked, 3143 gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next, 3144 gomp_iter_ull_guided_next): New prototypes. 3145 (gomp_new_icv): New prototype. 3146 (struct gomp_thread): Add thread_pool and task fields. 3147 (struct gomp_thread_pool): New type. 3148 (gomp_new_team): New prototype. 3149 (gomp_team_start): Change type of last argument. 3150 (gomp_new_work_share): Removed. 3151 (gomp_init_work_share, gomp_fini_work_share): New prototypes. 3152 (gomp_work_share_init_done): New static inline. 3153 (gomp_throttled_spin_count_var, gomp_available_cpus, 3154 gomp_managed_threads): New extern decls. 3155 (gomp_init_task): New prototype. 3156 (gomp_spin_count_var): New extern var decl. 3157 (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility 3158 or no alias support, or if not PIC. 3159 (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30, 3160 gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30, 3161 gomp_destroy_nest_lock_30, gomp_set_nest_lock_30, 3162 gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25, 3163 gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25, 3164 gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25, 3165 gomp_set_nest_lock_25, gomp_unset_nest_lock_25, 3166 gomp_test_nest_lock_25): New prototypes. 3167 (omp_lock_symver, strong_alias): Define. 3168 (gomp_remaining_threads_count, gomp_remaining_threads_lock): New 3169 decls. 3170 (gomp_end_task): New. 3171 (struct gomp_task_icv, gomp_global_icv): New. 3172 (gomp_thread_limit_var, gomp_max_active_levels_var): New. 3173 (struct gomp_task): New. 3174 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var, 3175 gomp_run_sched_var, gomp_run_sched_chunk): Remove. 3176 (gomp_icv): New. 3177 (gomp_schedule_type): Reorder enum to match 3178 omp_sched_t. 3179 * team.c (struct gomp_thread_start_data): Add thread_pool and task 3180 fields. 3181 (gomp_thread_start): Add gomp_team_barrier_wait call. 3182 For non-nested case remove clearing of docked thread thr fields. 3183 Use pool fields instead of global gomp_* variables. Use 3184 gomp_barrier_wait_last when needed. Initialize ts.active_level. 3185 Create tasks for each member thread. 3186 (free_team): Only destroy team barrier, task_lock here and free it. 3187 (gomp_free_thread): Free last_team if non-NULL. 3188 (gomp_team_end): Call gomp_team_barrier_wait instead of 3189 gomp_barrier_wait. For nested case call one extra 3190 gomp_barrier_wait. Move here some destruction from free_team. 3191 Call free_team on pool->last_team if any, rather than freeing 3192 current team. Destroy work_share_list_free_lock ifndef 3193 HAVE_SYNC_BUILTINS. 3194 (gomp_new_icv): New function. 3195 (gomp_threads, gomp_threads_size, gomp_threads_used, 3196 gomp_threads_dock): Removed. 3197 (gomp_thread_destructor): New variable. 3198 (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New 3199 functions. 3200 (gomp_team_start): Create new pool if current thread doesn't have 3201 one. Use pool fields instead of global gomp_* variables. 3202 Initialize thread_pool field for new threads. Clear single_count. 3203 Change last argument from ws to team, don't create 3204 new team, set ts.work_share to &team->work_shares[0] and clear 3205 ts.last_work_share. Don't clear ts.work_share_generation. 3206 If number of threads changed, adjust atomically gomp_managed_threads. 3207 Use gomp_init_task instead of gomp_new_task, 3208 set thr->task to the corresponding implicit_task array entry. 3209 Create tasks for each member thread. Initialize ts.level. 3210 (initialize_team): Call pthread_key_create on 3211 gomp_thread_destructor. 3212 (team_destructor): New function. 3213 (new_team): Removed. 3214 (gomp_new_team): New function. 3215 (free_team): Free gomp_work_share blocks chained through next_alloc, 3216 instead of freeing work_shares and destroying work_share_lock. 3217 (gomp_team_end): Call gomp_fini_work_share. If number of threads 3218 changed, adjust atomically gomp_managed_threads. Use gomp_end_task. 3219 * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead 3220 of gomp_barrier_wait. 3221 * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait 3222 instead of gomp_barrier_wait. Call gomp_work_share_init_done 3223 if gomp_work_share_start returned true. Don't unlock ws->lock. 3224 (GOMP_single_copy_end): Call gomp_team_barrier_wait instead 3225 of gomp_barrier_wait. 3226 (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call 3227 gomp_work_share_init_done if gomp_work_share_start returned true. 3228 Don't unlock ws->lock. 3229 * work.c: Include stddef.h. 3230 (free_work_share): Use work_share_list_free_lock instead 3231 of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument. 3232 Call gomp_fini_work_share and then either free ws if orphaned, or 3233 put it into work_share_list_free list of the current team. 3234 (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New 3235 functions. 3236 (gomp_work_share_start, gomp_work_share_end, 3237 gomp_work_share_end_nowait): Rewritten. 3238 * omp_lib.f90.in Change some tabs to spaces to prevent warnings. 3239 (openmp_version): Set to 200805. 3240 (omp_sched_kind, omp_sched_static, omp_sched_dynamic, 3241 omp_sched_guided, omp_sched_auto): New parameters. 3242 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit, 3243 omp_set_max_active_levels, omp_get_max_active_levels, 3244 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size, 3245 omp_get_active_level): New interfaces. 3246 * omp_lib.h.in (openmp_version): Set to 200805. 3247 (omp_sched_kind, omp_sched_static, omp_sched_dynamic, 3248 omp_sched_guided, omp_sched_auto): New parameters. 3249 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit, 3250 omp_set_max_active_levels, omp_get_max_active_levels, 3251 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size, 3252 omp_get_active_level): New externals. 3253 * loop.c: Include limits.h. 3254 (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle 3255 GFS_AUTO. 3256 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start): 3257 Likewise. Use gomp_icv. 3258 (gomp_loop_static_start, gomp_loop_dynamic_start): Clear 3259 ts.static_trip here. 3260 (gomp_loop_static_start, gomp_loop_ordered_static_start): Call 3261 gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock. 3262 (gomp_loop_dynamic_start, gomp_loop_guided_start): Call 3263 gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS, 3264 don't unlock ws->lock, otherwise lock it. 3265 (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call 3266 gomp_work_share_init_done after gomp_loop_init. Lock ws->lock. 3267 (gomp_parallel_loop_start): Call gomp_new_team instead of 3268 gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0]. 3269 Adjust gomp_team_start caller. Pass 0 as second argument to 3270 gomp_resolve_num_threads. 3271 (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr. 3272 If adding ws->chunk_size nthreads + 1 times after end won't 3273 overflow, set ws->mode to 1. 3274 * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start, 3275 GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start, 3276 GOMP_loop_ull_ordered_static_start, 3277 GOMP_loop_ull_ordered_dynamic_start, 3278 GOMP_loop_ull_ordered_guided_start, 3279 GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next, 3280 GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next, 3281 GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next, 3282 GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next, 3283 GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New 3284 prototypes. 3285 * libgomp.map: Export lock routines also @@OMP_2.0. 3286 (GOMP_loop_ordered_dynamic_first, 3287 GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first, 3288 GOMP_loop_ordered_static_first): Remove. 3289 (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start, 3290 GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start, 3291 GOMP_loop_ull_ordered_dynamic_next, 3292 GOMP_loop_ull_ordered_dynamic_start, 3293 GOMP_loop_ull_ordered_guided_next, 3294 GOMP_loop_ull_ordered_guided_start, 3295 GOMP_loop_ull_ordered_runtime_next, 3296 GOMP_loop_ull_ordered_runtime_start, 3297 GOMP_loop_ull_ordered_static_next, 3298 GOMP_loop_ull_ordered_static_start, 3299 GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start, 3300 GOMP_loop_ull_static_next, GOMP_loop_ull_static_start, 3301 GOMP_task, GOMP_taskwait): Export @@GOMP_2.0. 3302 (omp_set_schedule, omp_get_schedule, 3303 omp_get_thread_limit, omp_set_max_active_levels, 3304 omp_get_max_active_levels, omp_get_level, 3305 omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level, 3306 omp_set_schedule_, omp_set_schedule_8_, 3307 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_, 3308 omp_set_max_active_levels_, omp_set_max_active_levels_8_, 3309 omp_get_max_active_levels_, omp_get_level_, 3310 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_, 3311 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_): 3312 New exports @@OMP_3.0. 3313 * omp.h.in (omp_sched_t): New type. 3314 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit, 3315 omp_set_max_active_levels, omp_get_max_active_levels, 3316 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size, 3317 omp_get_active_level): New prototypes. 3318 * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var, 3319 gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var, 3320 gomp_thread_limit_var, gomp_remaining_threads_count, 3321 gomp_remaining_threads_lock): New variables. 3322 (parse_spincount): New function. 3323 (initialize_env): Call gomp_init_num_threads unconditionally. 3324 Initialize gomp_available_cpus. Call parse_spincount, 3325 initialize gomp_{,throttled_}spin_count_var 3326 depending on presence and value of OMP_WAIT_POLICY and 3327 GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var. 3328 Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS, 3329 OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification 3330 for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and 3331 gomp_remaining_threads_lock if needed. Use gomp_global_icv. 3332 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var, 3333 gomp_run_sched_var, gomp_run_sched_chunk): Remove. 3334 (gomp_global_icv): New. 3335 (parse_schedule): Use it. Parse "auto". 3336 (omp_set_num_threads): Use gomp_icv. 3337 (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested): 3338 Likewise. 3339 (omp_get_max_threads): Move from parallel.c. 3340 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit, 3341 omp_set_max_active_levels, omp_get_max_active_levels): New functions, 3342 add ialias. 3343 (parse_stacksize, parse_wait_policy): New functions. 3344 * fortran.c: Rewrite lock wrappers, if symbol versioning provide 3345 both wrappers for compatibility and new locks. 3346 (omp_set_schedule, omp_get_schedule, 3347 omp_get_thread_limit, omp_set_max_active_levels, 3348 omp_get_max_active_levels, omp_get_level, 3349 omp_get_ancestor_thread_num, omp_get_team_size, 3350 omp_get_active_level): New ialias_redirect. 3351 (omp_set_schedule_, omp_set_schedule_8_, 3352 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_, 3353 omp_set_max_active_levels_, omp_set_max_active_levels_8_, 3354 omp_get_max_active_levels_, omp_get_level_, 3355 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_, 3356 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_): 3357 New functions. 3358 * parallel.c: Include limits.h. 3359 (gomp_resolve_num_threads): Add count argument. Rewritten. 3360 (GOMP_parallel_start): Call gomp_new_team and pass that as last 3361 argument to gomp_team_start. Pass 0 as second argument to 3362 gomp_resolve_num_threads. 3363 (GOMP_parallel_end): Decrease gomp_remaining_threads_count 3364 if gomp_thread_limit_var != ULONG_MAX. 3365 (omp_in_parallel): Implement using ts.active_level. 3366 (omp_get_max_threads): Move to env.c. 3367 (omp_get_level, omp_get_ancestor_thread_num, 3368 omp_get_team_size, omp_get_active_level): New functions, 3369 add ialias. 3370 * sections.c (GOMP_sections_start): Call gomp_work_share_init_done 3371 after gomp_sections_init. If HAVE_SYNC_BUILTINS, call 3372 gomp_iter_dynamic_next instead of the _locked variant and don't take 3373 lock around it, otherwise acquire it before calling 3374 gomp_iter_dynamic_next_locked. 3375 (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call 3376 gomp_iter_dynamic_next instead of the _locked variant and don't take 3377 lock around it. 3378 (GOMP_parallel_sections_start): Call gomp_new_team instead of 3379 gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0]. 3380 Adjust gomp_team_start caller. Pass count as second argument to 3381 gomp_resolve_num_threads, don't adjust num_threads after the call. 3382 Use gomp_icv. 3383 * iter.c (gomp_iter_dynamic_next_locked): Don't multiply 3384 ws->chunk_size by incr. 3385 (gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient 3386 code. 3387 * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New 3388 types. 3389 (omp_lock_25_arg, omp_nest_lock_25_arg): New macros. 3390 (omp_check_defines): Check even the compat defines. 3391 * config/linux/ptrlock.c: New file. 3392 * config/linux/ptrlock.h: New file. 3393 * config/linux/wait.h: New file. 3394 * config/posix/ptrlock.c: New file. 3395 * config/posix/ptrlock.h: New file. 3396 * config/linux/bar.h (gomp_team_barrier_wait, 3397 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes. 3398 (gomp_team_barrier_set_task_pending, 3399 gomp_team_barrier_clear_task_pending, 3400 gomp_team_barrier_set_waiting_for_tasks, 3401 gomp_team_barrier_waiting_for_tasks, 3402 gomp_team_barrier_done): New inlines. 3403 (gomp_barrier_t): Rewritten. 3404 (gomp_barrier_state_t): New typedef. 3405 (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy, 3406 gomp_barrier_wait_start): Rewritten. 3407 (gomp_barrier_wait_end): Change second argument to 3408 gomp_barrier_state_t. 3409 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static 3410 inlines. 3411 * config/linux/bar.c: Include wait.h instead of libgomp.h and 3412 futex.h. 3413 (gomp_barrier_wait_end): Rewritten. 3414 (gomp_team_barrier_wait, gomp_team_barrier_wait_end, 3415 gomp_team_barrier_wake, gomp_barrier_wait_last): New functions. 3416 * config/posix/bar.h (gomp_barrier_t): Add generation field. 3417 (gomp_barrier_state_t): New typedef. 3418 (gomp_team_barrier_wait, 3419 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes. 3420 (gomp_barrier_wait_start): Or all but low 2 bits from generation 3421 into the return value. Return gomp_barrier_state_t. 3422 (gomp_team_barrier_set_task_pending, 3423 gomp_team_barrier_clear_task_pending, 3424 gomp_team_barrier_set_waiting_for_tasks, 3425 gomp_team_barrier_waiting_for_tasks, 3426 gomp_team_barrier_done): New inlines. 3427 (gomp_barrier_wait_end): Change second argument to 3428 gomp_barrier_state_t. 3429 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static 3430 inlines. 3431 * config/posix/bar.c (gomp_barrier_init): Clear generation field. 3432 (gomp_barrier_wait_end): Change second argument to 3433 gomp_barrier_state_t. 3434 (gomp_team_barrier_wait, gomp_team_barrier_wait_end, 3435 gomp_team_barrier_wake): New functions. 3436 * config/linux/mutex.c: Include wait.h instead of libgomp.h and 3437 futex.h. 3438 (gomp_futex_wake, gomp_futex_wait): New variables. 3439 (gomp_mutex_lock_slow): Call do_wait instead of futex_wait. 3440 * config/linux/lock.c: Rewrite to make locks task owned, 3441 for backwards compatibility provide the old entrypoints 3442 if symbol versioning. Include wait.h instead of libgomp.h and 3443 futex.h. 3444 (gomp_set_nest_lock_25): Call do_wait instead of futex_wait. 3445 * config/posix95/lock.c: Rewrite to make locks task owned, 3446 for backwards compatibility provide the old entrypoints 3447 if symbol versioning. 3448 * config/posix/lock.c: Rewrite to make locks task owned, 3449 for backwards compatibility provide the old entrypoints 3450 if symbol versioning. 3451 * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv. 3452 (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv. 3453 * config/posix/proc.c, config/mingw32/proc.c: Similarly. 3454 * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. 3455 (sys_futex0): Return error code. 3456 (futex_wake, futex_wait): If ENOSYS was returned, clear 3457 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. 3458 (cpu_relax, atomic_write_barrier): New static inlines. 3459 * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. 3460 (futex_wake, futex_wait): If ENOSYS was returned, clear 3461 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. 3462 (cpu_relax, atomic_write_barrier): New static inlines. 3463 * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. 3464 (sys_futex0): Return error code. 3465 (futex_wake, futex_wait): If ENOSYS was returned, clear 3466 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. 3467 (cpu_relax, atomic_write_barrier): New static inlines. 3468 * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. 3469 (sys_futex0): Return error code. 3470 (futex_wake, futex_wait): If ENOSYS was returned, clear 3471 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. 3472 (cpu_relax, atomic_write_barrier): New static inlines. 3473 * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. 3474 (sys_futex0): Return error code. 3475 (futex_wake, futex_wait): If ENOSYS was returned, clear 3476 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. 3477 (cpu_relax, atomic_write_barrier): New static inlines. 3478 * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. 3479 (sys_futex0): Return error code. 3480 (futex_wake, futex_wait): If ENOSYS was returned, clear 3481 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. 3482 (cpu_relax, atomic_write_barrier): New static inlines. 3483 * config/linux/sem.c: Include wait.h instead of libgomp.h and 3484 futex.h. 3485 (gomp_sem_wait_slow): Call do_wait instead of futex_wait. 3486 * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS. 3487 * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New 3488 types. 3489 (omp_nest_lock_t): Change owner into void *, add lock field. 3490 * config/posix95/omp-lock.h: Include semaphore.h. 3491 (omp_lock_25_t, omp_nest_lock_25_t): New types. 3492 (omp_lock_t): Use sem_t instead of mutex if semaphores 3493 aren't broken. 3494 (omp_nest_lock_t): Likewise. Change owner to void *. 3495 * config/posix/omp-lock.h: Include semaphore.h. 3496 (omp_lock_25_t, omp_nest_lock_25_t): New types. 3497 (omp_lock_t): Use sem_t instead of mutex if semaphores 3498 aren't broken. 3499 (omp_nest_lock_t): Likewise. Add owner field. 3500 35012008-06-06 Jakub Jelinek <jakub@redhat.com> 3502 3503 * testsuite/libgomp.c/collapse-1.c: New test. 3504 * testsuite/libgomp.c/collapse-2.c: New test. 3505 * testsuite/libgomp.c/collapse-3.c: New test. 3506 * testsuite/libgomp.c/icv-1.c: New test. 3507 * testsuite/libgomp.c/icv-2.c: New test. 3508 * testsuite/libgomp.c/lib-2.c: New test. 3509 * testsuite/libgomp.c/lock-1.c: New test. 3510 * testsuite/libgomp.c/lock-2.c: New test. 3511 * testsuite/libgomp.c/lock-3.c: New test. 3512 * testsuite/libgomp.c/loop-4.c: New test. 3513 * testsuite/libgomp.c/loop-5.c: New test. 3514 * testsuite/libgomp.c/loop-6.c: New test. 3515 * testsuite/libgomp.c/loop-7.c: New test. 3516 * testsuite/libgomp.c/loop-8.c: New test. 3517 * testsuite/libgomp.c/loop-9.c: New test. 3518 * testsuite/libgomp.c/nested-3.c: New test. 3519 * testsuite/libgomp.c/nestedfn-6.c: New test. 3520 * testsuite/libgomp.c/sort-1.c: New test. 3521 * testsuite/libgomp.c/task-1.c: New test. 3522 * testsuite/libgomp.c/task-2.c: New test. 3523 * testsuite/libgomp.c/task-3.c: New test. 3524 * testsuite/libgomp.c/task-4.c: New test. 3525 * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes 3526 to C++ testsuite default compiler options. 3527 * testsuite/libgomp.c++/collapse-1.C: New test. 3528 * testsuite/libgomp.c++/collapse-2.C: New test. 3529 * testsuite/libgomp.c++/ctor-10.C: New test. 3530 * testsuite/libgomp.c++/for-1.C: New test. 3531 * testsuite/libgomp.c++/for-2.C: New test. 3532 * testsuite/libgomp.c++/for-3.C: New test. 3533 * testsuite/libgomp.c++/for-4.C: New test. 3534 * testsuite/libgomp.c++/for-5.C: New test. 3535 * testsuite/libgomp.c++/loop-8.C: New test. 3536 * testsuite/libgomp.c++/loop-9.C: New test. 3537 * testsuite/libgomp.c++/loop-10.C: New test. 3538 * testsuite/libgomp.c++/task-1.C: New test. 3539 * testsuite/libgomp.c++/task-2.C: New test. 3540 * testsuite/libgomp.c++/task-3.C: New test. 3541 * testsuite/libgomp.c++/task-4.C: New test. 3542 * testsuite/libgomp.c++/task-5.C: New test. 3543 * testsuite/libgomp.c++/task-6.C: New test. 3544 * testsuite/libgomp.fortran/allocatable1.f90: New test. 3545 * testsuite/libgomp.fortran/allocatable2.f90: New test. 3546 * testsuite/libgomp.fortran/allocatable3.f90: New test. 3547 * testsuite/libgomp.fortran/allocatable4.f90: New test. 3548 * testsuite/libgomp.fortran/collapse1.f90: New test. 3549 * testsuite/libgomp.fortran/collapse2.f90: New test. 3550 * testsuite/libgomp.fortran/collapse3.f90: New test. 3551 * testsuite/libgomp.fortran/collapse4.f90: New test. 3552 * testsuite/libgomp.fortran/lastprivate1.f90: New test. 3553 * testsuite/libgomp.fortran/lastprivate2.f90: New test. 3554 * testsuite/libgomp.fortran/lib4.f90: New test. 3555 * testsuite/libgomp.fortran/lock-1.f90: New test. 3556 * testsuite/libgomp.fortran/lock-2.f90: New test. 3557 * testsuite/libgomp.fortran/nested1.f90: New test. 3558 * testsuite/libgomp.fortran/nestedfn4.f90: New test. 3559 * testsuite/libgomp.fortran/strassen.f90: New test. 3560 * testsuite/libgomp.fortran/tabs1.f90: New test. 3561 * testsuite/libgomp.fortran/tabs2.f: New test. 3562 * testsuite/libgomp.fortran/task1.f90: New test. 3563 * testsuite/libgomp.fortran/task2.f90: New test. 3564 * testsuite/libgomp.fortran/vla4.f90: Add dg-warning. 3565 * testsuite/libgomp.fortran/vla5.f90: Likewise. 3566 * testsuite/libgomp.c/pr26943-2.c: Likewise. 3567 * testsuite/libgomp.c/pr26943-3.c: Likewise. 3568 * testsuite/libgomp.c/pr26943-4.c: Likewise. 3569 35702008-05-23 Jakub Jelinek <jakub@redhat.com> 3571 3572 PR c++/36308 3573 * testsuite/libgomp.c++/ctor-11.C: New test. 3574 * testsuite/libgomp.c++/ctor-12.C: New test. 3575 35762008-05-15 Janis Johnson <janis187@us.ibm.com> 3577 3578 * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib. 3579 35802008-05-07 Jakub Jelinek <jakub@redhat.com> 3581 3582 PR middle-end/36106 3583 * testsuite/libgomp.c/atomic-5.c: New test. 3584 * testsuite/libgomp.c/atomic-6.c: New test. 3585 * testsuite/libgomp.c/autopar-1.c: New test. 3586 35872008-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3588 3589 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS) 3590 (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY) 3591 (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT) 3592 (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names. 3593 * configure: Regenerate. 3594 * Makefile.in, testsuite/Makefile.in: Likewise. 3595 35962008-04-18 Paolo Bonzini <bonzini@gnu.org> 3597 3598 PR bootstrap/35457 3599 * aclocal.m4: Regenerate. 3600 * configure: Regenerate. 3601 36022008-03-18 Jakub Jelinek <jakub@redhat.com> 3603 3604 PR middle-end/35611 3605 * testsuite/libgomp.c/atomic-4.c: New test. 3606 3607 PR libgomp/35625 3608 * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end. 3609 (gomp_iter_guided_next): Likewise. 3610 * testsuite/libgomp.c/pr35625.c: New test. 3611 36122008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3613 3614 * aclocal.m4: Regenerate. 3615 * configure: Likewise. 3616 * Makefile.in: Likewise. 3617 * testsuite/Makefile.in: Likewise. 3618 36192008-03-13 Jakub Jelinek <jakub@redhat.com> 3620 3621 PR middle-end/35185 3622 * testsuite/libgomp.c++/pr35185.C: New test. 3623 36242008-03-12 Jakub Jelinek <jakub@redhat.com> 3625 3626 PR middle-end/35549 3627 * testsuite/libgomp.c/pr35549.c: New test. 3628 36292008-03-06 Jakub Jelinek <jakub@redhat.com> 3630 3631 * testsuite/libgomp.c/atomic-3.c: New test. 3632 36332008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3634 3635 PR fortran/33197 3636 * testsuite/libgomp.fortran/fortran.exp: Add .f08 and 3637 .F08 file suffixes. 3638 36392008-03-03 Peter O'Gorman <pogma@thewrittenword.com> 3640 3641 PR libgomp/33131 3642 * configure.ac: Add ACX_HEADER_STRING. 3643 * env.c: Include strings.h. 3644 * aclocal.m4: Regenerate. 3645 * config.h.in: Regenerate. 3646 * configure: Regenerate. 3647 * Makefile.in: Regenerate. 3648 * testsuite/Makefile.in: Regenerate. 3649 36502008-02-15 Jakub Jelinek <jakub@redhat.com> 3651 3652 PR middle-end/35196 3653 * testsuite/libgomp.c/pr35196.c: New test. 3654 3655 PR middle-end/35130 3656 * testsuite/libgomp.fortran/pr35130.f90: New test. 3657 * testsuite/libgomp.c/pr35130.c: New test. 3658 36592008-01-25 Jakub Jelinek <jakub@redhat.com> 3660 3661 PR middle-end/33880 3662 * testsuite/libgomp.c/pr33880.c: New test. 3663 * testsuite/libgomp.fortran/pr33880.f90: New test. 3664 36652008-01-24 David Edelsohn <edelsohn@gnu.org> 3666 3667 * configure: Regenerate. 3668 36692008-01-08 Jakub Jelinek <jakub@redhat.com> 3670 3671 * configure.ac: Move futex checking into ../config/futex.m4. 3672 * configure: Rebuilt. 3673 * aclocal.m4: Rebuilt. 3674 * Makefile.in: Rebuilt. 3675 3676 * configure.tgt: Rename have_tls to gcc_cv_have_tls to match 3677 2007-10-15 ../config/tls.m4 change. 3678 36792007-12-19 Jakub Jelinek <jakub@redhat.com> 3680 3681 PR c++/34513 3682 * testsuite/libgomp.c/pr34513.c: New test. 3683 * testsuite/libgomp.c++/pr34513.C: New test. 3684 36852007-12-17 Jack Howarth <howarth@bromo.med.uc.edu> 3686 3687 PR target/32765 3688 * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin. 3689 36902007-12-04 Jakub Jelinek <jakub@redhat.com> 3691 3692 * omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes. 3693 36942007-12-03 Jakub Jelinek <jakub@redhat.com> 3695 3696 * testsuite/libgomp.c/private-1.c: New test. 3697 36982007-11-29 Andris Pavenis <andris.pavenis@iki.fi> 3699 Paolo Bonzini <bonzini@gnu.org> 3700 3701 * Makefile.am: Use space as vpath separator. Use 'vpath %' 3702 instead of 'VPATH ='. 3703 * Makefile.in: Regenerate. 3704 37052007-11-23 Matthias Klose <doko@ubuntu.com> 3706 3707 * configure.ac: Adjust makeinfo version check. 3708 * configure: Regenerate. 3709 37102007-11-10 Jakub Jelinek <jakub@redhat.com> 3711 3712 PR fortran/34020 3713 * testsuite/libgomp.fortran/pr34020.f90: New test. 3714 37152007-11-06 Jakub Jelinek <jakub@redhat.com> 3716 3717 PR c++/33894 3718 * testsuite/libgomp.c++/atomic-1.C: New test. 3719 37202007-10-25 Jakub Jelinek <jakub@redhat.com> 3721 3722 PR libgomp/33275 3723 * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate): 3724 Make x and y integers rather than (implicit) reals. Add private (j) 3725 clause to the last omp parallel. 3726 37272007-10-15 Maciej W. Rozycki <macro@linux-mips.org> 3728 3729 * configure: Regenerate following changes to ../config/tls.m4. 3730 37312007-09-28 Jakub Jelinek <jakub@redhat.com> 3732 3733 * testsuite/libgomp.fortran/stack.f90: New test. 3734 37352007-09-10 Danny Smith <dannysmith@users.sourceforge.net> 3736 3737 * config/mingw32/proc.c: New file. 3738 37392007-09-05 Uros Bizjak <ubizjak@gmail.com> 3740 3741 * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets. 3742 (main): Use __get_cpuid to get i386 target fetaures. 3743 * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets. 3744 (main): Use __get_cpuid to get x86_64 target fetaures. 3745 37462007-08-15 Jack Howarth <howarth@bromo.med.uc.edu> 3747 3748 PR target/32765 3749 * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin. 3750 * testsuite/libgomp.fortran/crayptr2.f90: Likwise. 3751 37522007-07-12 Jakub Jelinek <jakub@redhat.com> 3753 3754 PR fortran/32550 3755 * testsuite/libgomp.fortran/pr32550.f90: New test. 3756 * testsuite/libgomp.fortran/crayptr2.f90: New test. 3757 37582007-07-05 H.J. Lu <hongjiu.lu@intel.com> 3759 3760 * aclocal.m4: Regenerated. 3761 37622007-07-05 Tobias Burnus <burnus@net-b.de> 3763 3764 PR fortran/32359 3765 * testsuite/libgomp.fortran/pr32359.f90: New. 3766 37672007-07-02 Jakub Jelinek <jakub@redhat.com> 3768 3769 PR libgomp/32468 3770 * sections.c (GOMP_parallel_sections_start): Only decrease 3771 number of threads to COUNT if dyn_var is true. 3772 * testsuite/libgomp.c/pr32468.c: New test. 3773 37742007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 3775 3776 PR libgomp/26308 3777 * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX. 3778 37792007-06-21 Jakub Jelinek <jakub@redhat.com> 3780 3781 PR middle-end/32362 3782 * testsuite/libgomp.c/pr32362-1.c: New test. 3783 * testsuite/libgomp.c/pr32362-2.c: New test. 3784 * testsuite/libgomp.c/pr32362-3.c: New test. 3785 37862007-06-07 Jakub Jelinek <jakub@redhat.com> 3787 3788 * team.c (gomp_team_start): Fix setting up thread_attr 3789 stack size. 3790 37912007-06-02 Paolo Bonzini <bonzini@gnu.org> 3792 3793 * configure: Regenerate. 3794 37952007-05-23 Steve Ellcey <sje@cup.hp.com> 3796 3797 * Makefile.in: Regenerate. 3798 * configure: Regenerate. 3799 * aclocal.m4: Regenerate. 3800 * testsuite/Makefile.in: Regenerate. 3801 38022007-05-04 Jakub Jelinek <jakub@redhat.com> 3803 3804 * config/linux/proc.c: New file. 3805 3806 PR libgomp/28482 3807 * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux. 3808 38092007-04-19 Daniel Franke <franke.daniel@gmail.com> 3810 3811 * libgomp.texi (GOMP_CPU_AFFINITY): Updated. 3812 38132007-04-16 Matthias Klose <doko@debian.org> 3814 3815 * configure.tgt (i[456]86-*-linux*): Only add ia32 specific 3816 flags if not building with -m64. 3817 * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march 3818 flag for i?86-*-* targets, if current target matches -m64. 3819 38202007-04-14 Steve Ellcey <sje@cup.hp.com> 3821 3822 * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS. 3823 * Makefile.in: Regenerate. 3824 38252007-04-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3826 3827 PR testsuite/31369 3828 * testsuite/libgomp.c++/c++.exp: Don't use concat when setting 3829 ld_library_path. 3830 * testsuite/libgomp.fortran/fortran.exp: Likewise. 3831 38322007-04-04 Jakub Jelinek <jakub@redhat.com> 3833 3834 * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern 3835 decls. 3836 (gomp_init_affinity, gomp_init_thread_affinity): New prototypes. 3837 * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables. 3838 (parse_affinity): New function. 3839 (initialize_env): Call it and gomp_init_affinity. 3840 * team.c (gomp_team_start): If gomp_cpu_affinity != NULL, 3841 create new pthread_attr_t and call gomp_init_thread_affinity 3842 on it for each thread before passing the attribute to pthread_create. 3843 * config/linux/affinity.c: New file. 3844 * config/posix/affinity.c: New file. 3845 * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test. 3846 * configure: Rebuilt. 3847 * config.h.in: Rebuilt. 3848 * Makefile.am (libgomp_la_SOURCES): Add affinity.c. 3849 * Makefile.in: Rebuilt. 3850 38512007-03-23 Andreas Tobler <a.tobler@schweiz.org> 3852 3853 * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for 3854 *-*-darwin*. 3855 * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library 3856 and use it if found. 3857 38582007-03-18 Uros Bizjak <ubizjak@gmail.com> 3859 3860 * testsuite/config/default.exp: New file. 3861 * testsuite/lib/libgomp.exp: New file. 3862 * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init, 3863 libgomp_target_compile, libgomp_option_help, libgomp_option_proc, 3864 load_lib *, load_gcc_lib *): Move to libgomp.exp. 3865 (libgomp_load): Remove. 3866 * testsuite/lib/libgomp.exp (libgomp_init): Compute 3867 always_ld_library_path, not ld_library_path. Set additional_flags 3868 to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets. 3869 (target_compile): Do not call libgomp_init. Append lang_library_path 3870 and lang_link_flags to options. 3871 * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set 3872 ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH 3873 here. 3874 * testsuite/libgomp.c++/c++.exp: Set ld_library_path from 3875 always_ld_library_path. Set LD_LIBRARY_PATH here. 3876 * testsuite/libgomp.fortran/fortran.exp: Ditto. 3877 * testsuite/libgomp.c/atomic-1.c: Set dg-options to 3878 "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for 3879 CX8 flag. 3880 * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for 3881 lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3. 3882 * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options. 3883 * testsuite/libgomp.c/pr29947-1.c: Ditto. 3884 * testsuite/libgomp.c/atomic-10.c: Ditto. 3885 38862007-03-21 Jakub Jelinek <jakub@redhat.com> 3887 3888 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add 3889 dg-final cleanup-modules line. 3890 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise. 3891 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise. 3892 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise. 3893 * testsuite/libgomp.fortran/threadprivate2.f90: Likewise. 3894 * testsuite/libgomp.fortran/reduction5.f90: Likewise. 3895 * testsuite/libgomp.fortran/threadprivate3.f90: Likewise. 3896 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. 3897 38982007-03-18 Andreas Schwab <schwab@suse.de> 3899 3900 * acinclude.m4: Adjust regular expression for ld version 3901 extraction. 3902 * configure: Regenerate. 3903 39042007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 3905 3906 * Makefile.am: Add install-pdf target as copied from 3907 automake v1.10 rules. 3908 * Makefile.in: Regenerate 3909 39102007-02-07 Jakub Jelinek <jakub@redhat.com> 3911 3912 PR libgomp/28486 3913 * configure: Regenerate. 3914 3915 PR c++/30703 3916 * testsuite/libgomp.c++/pr30703.C: New test. 3917 39182007-02-02 Jakub Jelinek <jakub@redhat.com> 3919 3920 Revert: 3921 2006-07-05 Eric Christopher <echristo@apple.com> 3922 * configure.ac: Depend addition of -pthread on host OS. 3923 * configure: Regenerate. 3924 39252007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3926 3927 * libgomp.texi: Fix spacing after abbreviations. 3928 39292007-01-31 Daniel Franke <franke.daniel@gmail.com> 3930 3931 PR libgomp/30546 3932 * configure.ac: Add check for makeinfo 3933 * Makefile.am: Redefined target libgomp.info, build libgomp.info only 3934 if an appropiate version of makeinfo is found. 3935 * aclocal.m4: Regenerated. 3936 * configure: Regenerated. 3937 * Makefile.in: Regenerated. 3938 * testsuite/Makefile.in: Regenerated. 3939 39402007-01-29 Daniel Franke <franke.daniel@gmail.com> 3941 3942 PR libgomp/30540 3943 * libgomp.texi: More about implementation-dependent settings. 3944 39452007-01-26 Tobias Burnus <burnus@net-b.de> 3946 3947 * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension. 3948 39492007-01-24 Jakub Jelinek <jakub@redhat.com> 3950 3951 PR middle-end/30494 3952 * testsuite/libgomp.c/pr30494.c: New test. 3953 39542007-01-15 Tom Tromey <tromey@redhat.com> 3955 3956 * configure: Rebuilt. 3957 * configure.ac: Fixed comment. 3958 39592007-01-14 Daniel Franke <franke.daniel@gmail.com> 3960 3961 * libgomp.texi: Document implementation specific default values of 3962 environment variables. 3963 39642006-12-21 Daniel Franke <franke.daniel@gmail.com> 3965 3966 PR libgomp/28209 3967 * libgomp.texi: New file. 3968 * configure.ac: Add --enable-generated-files-in-srcdir option. 3969 * Makefile.am: Add info, dvi, pdf, html targets. On request, copy 3970 files to srcdir. 3971 * Makefile.in: Regenerated. 3972 * config.h.in: Regenerated. 3973 * testsuite/Makefile.in: Regenerated. 3974 * NOTES: Removed. 3975 39762006-12-04 Daniel Franke <franke.daniel@gmail.com> 3977 3978 PR libgomp/29949 3979 * env.c (omp_set_num_threads): Set illegal thread count to 1. 3980 39812006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr> 3982 3983 * configure: Regenerate. 3984 39852006-12-04 Jakub Jelinek <jakub@redhat.com> 3986 3987 PR libgomp/29947 3988 * loop.c (gomp_loop_init): Make parameters signed. Set ws->end to 3989 start if there shouldn't be any loop iterations. 3990 (gomp_loop_ordered_static_start): Remove start == end test. 3991 * testsuite/libgomp.c/pr29947-1.c: New test. 3992 * testsuite/libgomp.c/pr29947-2.c: New test. 3993 39942006-12-02 Eric Botcazou <ebotcazou@libertysurf.fr> 3995 3996 * configure.tgt: Force initial-exec TLS model on Linux only. 3997 39982006-11-13 Daniel Jacobowitz <dan@codesourcery.com> 3999 4000 * configure: Regenerated. 4001 40022006-11-09 Uros Bizjak <ubizjak@gmail.com> 4003 4004 * env.c (parse_schedule): Reject out of range values. 4005 (parse_unsigned_long): Reject out of range, negative or zero values. 4006 40072006-10-29 Jakub Jelinek <jakub@redhat.com> 4008 4009 PR fortran/29629 4010 * testsuite/libgomp.fortran/pr29629.f90: New test. 4011 40122006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr> 4013 4014 PR libgomp/29494 4015 * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6. 4016 * config/posix95: New directory. 4017 * config/posix95/omp-lock.h: New file. 4018 * config/posix95/lock.c: Likewise. 4019 40202006-10-14 Geoffrey Keating <geoffk@apple.com> 4021 4022 * aclocal.m4: Regenerate. 4023 * configure: Regenerate. 4024 40252006-10-05 Danny Smith <dannysmith@users.sourceforge.net> 4026 4027 * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from 4028 '<' to '<='. 4029 40302006-10-05 Danny Smith <dannysmith@users.sourceforge.net> 4031 4032 * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from 4033 test. 4034 * configure: Regenerate. 4035 * fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias. 4036 40372006-09-26 Jakub Jelinek <jakub@redhat.com> 4038 4039 PR middle-end/25261 4040 PR middle-end/28790 4041 * testsuite/libgomp.c/nestedfn-4.c: New test. 4042 * testsuite/libgomp.c/nestedfn-5.c: New test. 4043 * testsuite/libgomp.fortran/nestedfn3.f90: New test. 4044 4045 PR fortran/29097 4046 * testsuite/libgomp.fortran/condinc1.f: New test. 4047 * testsuite/libgomp.fortran/condinc2.f: New test. 4048 * testsuite/libgomp.fortran/condinc3.f90: New test. 4049 * testsuite/libgomp.fortran/condinc4.f90: New test. 4050 * testsuite/libgomp.fortran/condinc1.inc: New file. 4051 40522006-09-18 Tom Tromey <tromey@redhat.com> 4053 4054 * configure: Rebuilt. 4055 40562006-09-13 Joseph S. Myers <joseph@codesourcery.com> 4057 4058 PR c/28768 4059 PR preprocessor/14634 4060 * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument 4061 to AC_DEFINE. 4062 * configure: Regenerate. 4063 40642006-09-08 Steven G. Kargl <kargl@gcc.gnu.org> 4065 4066 * testsuite/libgomp.fortran/reduction3.f90: Change 4067 -2147483648 to -huge(i)-1 to avoid overflow. 4068 * testsuite/libgomp.fortran/reduction4.f90: Change 4069 Z'ffffffff' to not(0) to avoid overflow. 4070 40712006-08-26 Joseph S. Myers <joseph@codesourcery.com> 4072 4073 PR libgomp/25938 4074 * Makefile.am (libsubincludedir): New. 4075 (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS. 4076 * Makefile.in: Regenerate. 4077 40782006-08-17 Jakub Jelinek <jakub@redhat.com> 4079 4080 PR libgomp/28725 4081 * env.c: Include ctype.h. 4082 (parse_schedule, parse_unsigned_long, parse_boolean): Allow 4083 leading and/or trailing whitespace and compare strings case 4084 insensitively. 4085 40862006-07-16 Jakub Jelinek <jakub@redhat.com> 4087 4088 PR fortran/28390 4089 * testsuite/libgomp.fortran/pr28390.f: New test. 4090 40912006-07-05 Eric Christopher <echristo@apple.com> 4092 4093 * configure.ac: Depend addition of -pthread on host OS. 4094 * configure: Regenerate. 4095 40962006-06-21 Jakub Jelinek <jakub@redhat.com> 4097 4098 * critical.c (GOMP_critical_name_start): Fix *pptr initialization 4099 when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is 4100 defined. 4101 41022006-06-20 Jakub Jelinek <jakub@redhat.com> 4103 4104 PR libgomp/26175 4105 PR libgomp/26477 4106 * configure.ac: If neither --enable-linux-futex nor 4107 --disable-linux-futex is passed, determine the default by checking 4108 for compiling and/or running against NPTL. With --enable-linux-futex, 4109 check if SYS_gettid and SYS_futex are defined. 4110 * configure: Rebuilt. 4111 41122006-06-14 Richard Henderson <rth@redhat.com> 4113 4114 PR libgomp/28008 4115 * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when 4116 undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment. 4117 41182006-06-09 Richard Henderson <rth@redhat.com> 4119 4120 * env.c (gomp_nthreads_var): Change to unsigned long. 4121 (gomp_run_sched_chunk): Likewise. 4122 (parse_unsigned_long): Rename from parse_num_threads and generalize. 4123 (initialize_env): Initialize gomp_thread_attr. 4124 * libgomp.h (gomp_nthreads_var): Update decl. 4125 (gomp_run_sched_chunk): Likewise. 4126 (gomp_thread_attr): Declare. 4127 * team.c (gomp_thread_attr): Export. 4128 (initialize_team): Don't initialize it. 4129 41302006-06-09 Jakub Jelinek <jakub@redhat.com> 4131 4132 PR fortran/27916 4133 * testsuite/libgomp.fortran/pr27916-1.f90: New test. 4134 * testsuite/libgomp.fortran/pr27916-2.f90: New test. 4135 41362006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> 4137 4138 * config/mingw32/time.c: New file. 4139 * configure.tgt: Use it. 4140 41412006-05-23 Carlos O'Donell <carlos@codesourcery.com> 4142 4143 * Makefile.am: Add install-html target. Add install-html to .PHONY 4144 * Makefile.in: Regenerate. 4145 41462006-05-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4147 4148 PR libgomp/27612 4149 * testsuite/libgomp.c/sections-1.c: Require sync_int_long. 4150 * testsuite/libgomp.c/critical-1.c: Likewise. 4151 * testsuite/libgomp.c/loop-1.c: Likewise. 4152 * testsuite/libgomp.c/loop-2.c: Likewise. 4153 * testsuite/libgomp.c/single-1.c: Likewise. 4154 * testsuite/libgomp.c/ordered-1.c: Likewise. 4155 * testsuite/libgomp.c/ordered-2.c: Likewise. 4156 41572006-05-15 Jakub Jelinek <jakub@redhat.com> 4158 4159 PR middle-end/27416 4160 * libgomp.fortran/pr27416-1.f90: New test. 4161 41622006-05-03 Jakub Jelinek <jakub@redhat.com> 4163 4164 PR fortran/27395 4165 * testsuite/libgomp.fortran/pr27395-1.f90: New test. 4166 * testsuite/libgomp.fortran/pr27395-2.f90: New test. 4167 41682006-05-02 Jakub Jelinek <jakub@redhat.com> 4169 4170 PR c++/26943 4171 * testsuite/libgomp.c/pr26943-1.c: New test. 4172 * testsuite/libgomp.c/pr26943-2.c: New test. 4173 * testsuite/libgomp.c/pr26943-3.c: New test. 4174 * testsuite/libgomp.c/pr26943-4.c: New test. 4175 * testsuite/libgomp.c++/pr27337.C: Remove barrier. 4176 * testsuite/libgomp.c++/pr26943.C: New test. 4177 41782006-05-02 Jakub Jelinek <jakub@redhat.com> 4179 4180 PR middle-end/27337 4181 * testsuite/libgomp.c++/pr27337.C: New test. 4182 41832006-04-26 Jakub Jelinek <jakub@redhat.com> 4184 4185 PR c/26171 4186 * testsuite/libgomp.c/pr26171.c: New test. 4187 41882006-04-25 Richard Henderson <rth@redhat.com> 4189 4190 PR libgomp/25865 4191 * configure.ac: Use GCC_CHECK_TLS. 4192 * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove. 4193 * Makefile.in, aclocal.m4, configure: Regenerate. 4194 41952006-04-10 Matthias Klose <doko@debian.org> 4196 4197 * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib 4198 directory names containing underscores. 4199 42002006-03-21 Jakub Jelinek <jakub@redhat.com> 4201 4202 PR c++/26691 4203 * testsuite/libgomp.c++/pr26691.C: New test. 4204 42052006-03-13 Jakub Jelinek <jakub@redhat.com> 4206 4207 * testsuite/libgomp.fortran/retval2.f90: New test. 4208 42092006-03-09 Diego Novillo <dnovillo@redhat.com> 4210 4211 * testsuite/libgomp.c++: New directory. 4212 42132006-02-25 Shantonu Sen <ssen@opendarwin.org> 4214 4215 * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions. 4216 * config/posix/sem.c: Implement the above. 4217 42182006-02-25 Andreas Tobler <a.tobler@schweiz.ch> 4219 4220 * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and 4221 define HAVE_BROKEN_POSIX_SEMAPHORES. 4222 * configure: Rebuilt. 4223 * config.h.in: Rebuilt. 4224 42252006-02-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> 4226 4227 PR bootstrap/26161 4228 * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment 4229 for the other pthread check. 4230 * configure: Regenerate. 4231 * config.h.in: Regenerate. 4232 42332006-02-15 Jakub Jelinek <jakub@redhat.com> 4234 4235 PR libgomp/25938 4236 PR libgomp/25984 4237 * Makefile.am (fincludedir): New variable. 4238 (nodist_include_HEADERS): Remove Fortran files. 4239 (nodist_finclude_HEADERS): New variable. 4240 * Makefile.in: Regenerated. 4241 42422006-02-13 Jakub Jelinek <jakub@redhat.com> 4243 4244 * testsuite/libgomp.fortran/vla7.f90: Add -w to options. 4245 Remove tests for returning assumed character length arrays. 4246 42472006-02-12 Roger Sayle <roger@eyesopen.com> 4248 John David Anglin <dave@hiauly1.hia.nrc.ca> 4249 4250 PR libgomp/25936 4251 * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems. 4252 42532006-02-08 Ulrich Weigand <uweigand@de.ibm.com> 4254 4255 * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library. 4256 42572006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr> 4258 4259 * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related 4260 part of LD_LIBRARY_PATH manually. 4261 42622006-02-03 H.J. Lu <hongjiu.lu@intel.com> 4263 4264 PR libgomp/25852 4265 * testsuite/lib/libgomp-dg.exp (blddir): Set it in 4266 libgomp_init. 4267 42682005-01-25 Paolo Bonzini <bonzini@gnu.org> 4269 4270 PR libgomp/25884 4271 * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove. 4272 * configure.ac (PERL): Don't set. 4273 (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here. 4274 (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE, 4275 OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions. 4276 * omp.h.in: Wrap the new configure substitutions with @ characters. 4277 * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise. 4278 * aclocal.m4, configure, Makefile.in: Regenerate. 4279 * mkomp_h.pl: Delete. 4280 42812005-01-24 Paolo Bonzini <bonzini@gnu.org> 4282 4283 PR libgomp/25259 4284 * configure.ac: Use GCC_HEADER_STDINT. 4285 * libgomp.h: Include gstdint.h. 4286 * libgomp_f.h.in: Don't include stdint.h or inttypes.h. 4287 * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild. 4288 42892006-01-24 Richard Henderson <rth@redhat.com> 4290 4291 PR libgomp/25942 4292 * configure.ac: Add AM_MAINTAINER_MODE. 4293 * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild. 4294 42952006-01-24 Diego Novillo <dnovillo@redhat.com> 4296 4297 * Makefile.in: Regenerate. 4298 * testsuite/Makefile.in: Regenerate. 4299 * aclocal.m4: Regenerate. 4300 43012006-01-23 Andreas Tobler <a.tobler@schweiz.ch> 4302 4303 * config/posix/proc.c: Conditional include of sys/loadavg.h for 4304 Solaris. 4305 * configure.ac: Add check for loadavg.h. 4306 (link_gomp): Adjust comment. 4307 * configure: Regenerate. 4308 * config.h.in: Regenerate. 4309 43102006-01-21 Steve Ellcey <sje@cup.hp.com> 4311 4312 PR libgomp/25877 4313 * configure.ac: Remove check for alloca.h. 4314 * configure: Regenerate. 4315 * config.h.in: Regenerate. 4316 * libgomp.h: define gomp_alloca to be __builtin_alloca. 4317 * team.c: Remove use of alloca.h. 4318 Call gomp_alloca instead of alloca. 4319 43202006-01-20 Steve Ellcey <sje@cup.hp.com> 4321 4322 PR libgomp/25877 4323 * team.c: Add include of alloca.h. 4324 * configure.ac: Add check for alloca.h. 4325 * configure: Regenerate. 4326 * config.h.in: Regenerate. 4327 43282006-01-17 Jakub Jelinek <jakub@redhat.com> 4329 4330 PR fortran/25219 4331 * testsuite/libgomp.fortran/pr25219.f90: New test. 4332 43332005-12-05 Uros Bizjak <uros@kss-loka.si> 4334 4335 * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c, 4336 testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c, 4337 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C, 4338 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C, 4339 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C, 4340 testsuite/libgomp.fortran/threadprivate1.f90, 4341 testsuite/libgomp.fortran/threadprivate2.f90, 4342 testsuite/libgomp.fortran/threadprivate3.f90, 4343 testsuite/libgomp.fortran/appendix-a/a.22.7.f9, 4344 testsuite/libgomp.fortran/appendix-a/a.22.8.f9, 4345 testsuite/libgomp.fortran/omp_parse3.f90: Change required 4346 effective-target to TLS runtime. 4347 4348 * testsuite/libgomp.fortran/pr25162.f: Require 4349 effective-target TLS runtime. 4350 43512005-12-01 Jakub Jelinek <jakub@redhat.com> 4352 4353 * testsuite/libgomp.fortran/nestedfn2.f90: New test. 4354 * testsuite/libgomp.c/nestedfn-3.c: New test. 4355 43562005-11-30 Jakub Jelinek <jakub@redhat.com> 4357 4358 PR fortran/25162 4359 * testsuite/libgomp.fortran/pr25162.f: New test. 4360 43612005-11-28 Jakub Jelinek <jakub@redhat.com> 4362 4363 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to 4364 CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed. 4365 43662005-11-25 Jakub Jelinek <jakub@redhat.com> 4367 4368 * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c, 4369 libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in, 4370 omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c, 4371 single.c, team.c, work.c, config/linux/alpha/futex.h, 4372 config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h, 4373 config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h, 4374 config/linux/powerpc/futex.h, config/linux/s390/futex.h, 4375 config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h, 4376 config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h, 4377 config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c, 4378 config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update 4379 FSF address. 4380 43812005-11-18 Jakub Jelinek <jakub@redhat.com> 4382 4383 * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS 4384 to nodist_noinst_HEADERS. 4385 * Makefile.in: Rebuilt. 4386 4387 * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct, 4388 add integer count field. 4389 * config/posix/lock.c (omp_destroy_nest_lock): Adjust for 4390 omp_nest_lock_t type change. 4391 (omp_init_nest_lock): Likewise. Initialize count to 0. 4392 (omp_set_nest_lock): Adjust for omp_nest_lock_t type change. 4393 Increment count. 4394 (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change. 4395 Decrement count. 4396 (omp_test_nest_lock): Adjust for omp_nest_lock_t type change. 4397 Increment count if successful and return the new nesting level. 4398 * config/linux/lock.c (omp_test_nest_lock): Return new nesting level. 4399 * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type. 4400 * testsuite/libgomp.c/lib-1.c: New test. 4401 * testsuite/libgomp.fortran/lib1.f90: New test. 4402 * testsuite/libgomp.fortran/lib2.f: New test. 4403 * testsuite/libgomp.fortran/lib3.f: New test. 4404 44052005-11-17 Richard Henderson <rth@redhat.com> 4406 4407 PR 24845 4408 * Makefile.am (nodist_toolexeclib_HEADERS): New. 4409 * configure.ac (link_gomp): New. Substitute it. 4410 (AC_CONFIG_FILES): Add libgomp.spec. 4411 * libgomp.spec.in: New file. 4412 * Makefile.in, testsuite/Makefile.in, configure: Rebuild. 4413 * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags. 4414 44152005-11-18 Jakub Jelinek <jakub@redhat.com> 4416 4417 * testsuite/libgomp.fortran/reduction1.f90: Adjust for 4418 reduction(-:var) behaving the same as reduction(+:var). 4419 * testsuite/libgomp.c/reduction-4.c: New test. 4420 44212005-11-15 Uros Bizjak <uros@kss-loka.si> 4422 4423 * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c, 4424 testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c, 4425 testsuite/libgomp.c/copyin-3.c, 4426 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C, 4427 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C, 4428 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C, 4429 testsuite/libgomp.c++/pr24455.C, 4430 testsuite/libgomp.fortran/threadprivate1.f90, 4431 testsuite/libgomp.fortran/threadprivate2.f90, 4432 testsuite/libgomp.fortran/threadprivate3.f90, 4433 testsuite/libgomp.fortran/appendix-a/a.22.7.f9, 4434 testsuite/libgomp.fortran/appendix-a/a.22.8.f9, 4435 testsuite/libgomp.fortran/omp_parse3.f90: Require 4436 effective-target TLS. 4437 44382005-11-14 Diego Novillo <dnovillo@redhat.com> 4439 4440 * HEADER: Remove. 4441 44422005-11-13 Jakub Jelinek <jakub@redhat.com> 4443 4444 PR libgomp/24797 4445 * team.c (initialize_team): Pass NULL rather than free as 4446 pthread_key_create destructor. Initialize thread specific data 4447 pointer in initial thread to a static local variable rather than 4448 malloced memory. 4449 44502005-11-11 Uros Bizjak <uros@kss-loka.si> 4451 4452 * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append 4453 its location to ld_library_path. 4454 44552005-11-10 Diego Novillo <dnovillo@redhat.com> 4456 4457 * testsuite/libgomp.c/c.exp: Rename from dg.exp. 4458 44592005-11-10 Diego Novillo <dnovillo@redhat.com> 4460 4461 * testsuite/libgomp.c: Rename from libgomp.dg. 4462 44632005-11-09 Diego Novillo <dnovillo@redhat.com> 4464 4465 * testsuite/libgomp.c++/pr24455.C: Add copyin clause for 4466 threadprivate variable 'i'. 4467 44682005-11-09 Jakub Jelinek <jakub@redhat.com> 4469 4470 * config/linux/s390/futex.h: New file. 4471 * configure.tgt: Use it. 4472 4473 * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization 4474 before the parallel. 4475 44762005-11-08 Jakub Jelinek <jakub@redhat.com> 4477 4478 PR c++/24734 4479 * testsuite/libgomp.c++/master-1.C: New test. 4480 44812005-11-07 Jakub Jelinek <jakub@redhat.com> 4482 4483 * testsuite/libgomp.dg/copyin-3.c: New test. 4484 44852005-11-07 Jakub Jelinek <jakub@redhat.com> 4486 4487 * testsuite/libgomp.fortran/retval1.f90: New test. 4488 * testsuite/libgomp.fortran/vla7.f90: New test. 4489 44902005-11-06 Jakub Jelinek <jakub@redhat.com> 4491 4492 * testsuite/libgomp.fortran/vla2.f90: New test. 4493 * testsuite/libgomp.fortran/vla3.f90: New test. 4494 * testsuite/libgomp.fortran/vla4.f90: New test. 4495 * testsuite/libgomp.fortran/vla5.f90: New test. 4496 * testsuite/libgomp.fortran/vla6.f90: New test. 4497 44982005-11-01 Jakub Jelinek <jakub@redhat.com> 4499 4500 * config/linux/sparc/futex.h: New file. 4501 * configure.tgt: Use it. 4502 * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing. 4503 4504 * critical.c: Include stdlib.h. 4505 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about 4506 ignoring return value. 4507 * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after 4508 LIBGOMP_CHECK_SYNC_BUILTINS check. 4509 * configure: Rebuilt. 4510 45112005-10-31 Jakub Jelinek <jakub@redhat.com> 4512 4513 * testsuite/libgomp.fortran/vla1.f90: New test. 4514 45152005-10-31 Richard Henderson <rth@redhat.com> 4516 4517 * testsuite/libgomp.fortran/character2.f90: Fix race condition 4518 setting 's' in different threads. 4519 45202005-10-31 Jakub Jelinek <jakub@redhat.com> 4521 4522 * libgomp.h (attribute_hidden, ialias): Define. 4523 * config/posix/proc.c (omp_get_num_procs): Add ialias. 4524 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise. 4525 * config/posix/lock.c (omp_init_lock, omp_init_nest_lock, 4526 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock, 4527 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock, 4528 omp_test_lock, omp_test_nest_lock): Likewise. 4529 * config/linux/lock.c (omp_init_lock, omp_init_nest_lock, 4530 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock, 4531 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock, 4532 omp_test_lock, omp_test_nest_lock): Likewise. 4533 * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads, 4534 omp_get_dynamic, omp_get_nested): Likewise. 4535 * parallel.c (omp_get_num_threads, omp_get_max_threads, 4536 omp_get_thread_num, omp_in_parallel): Likewise. 4537 * fortran.c (ialias_redirect): Define. 4538 (omp_init_lock, omp_init_nest_lock, omp_destroy_lock, 4539 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, 4540 omp_unset_lock, omp_unset_nest_lock, omp_test_lock, 4541 omp_test_nest_lock, omp_set_dynamic, omp_set_nested, 4542 omp_set_num_threads, omp_get_dynamic, omp_get_nested, 4543 omp_in_parallel, omp_get_max_threads, omp_get_num_procs, 4544 omp_get_num_threads, omp_get_thread_num, omp_get_wtick, 4545 omp_get_wtime): Add ialias_redirect. 4546 45472005-10-30 Jakub Jelinek <jakub@redhat.com> 4548 4549 * fortran.c: Include stdlib.h. 4550 45512005-10-29 Jakub Jelinek <jakub@redhat.com> 4552 4553 * Makefile.am (env.o, env.lo): Depend on libgomp_f.h. 4554 * Makefile.in: Regenerated. 4555 45562005-10-28 Jakub Jelinek <jakub@redhat.com> 4557 4558 * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE. 4559 * libgomp_f.h.in (omp_check_defines): New function. 4560 * env.c: Include libgomp_f.h. 4561 (initialize_env): Call omp_check_defines. 4562 4563 * testsuite/libgomp.dg/copyin-2.c: New test. 4564 * testsuite/libgomp.c++/copyin-2.C: New test. 4565 * testsuite/libgomp.fortran/threadprivate3.f90: New test. 4566 4567 * testsuite/libgomp.fortran/threadprivate2.f90: New test. 4568 * testsuite/libgomp.fortran/sharing2.f90: New test. 4569 4570 * testsuite/libgomp.dg/copyin-1.c: New test. 4571 * testsuite/libgomp.c++/copyin-1.C: New test. 4572 45732005-10-26 Jakub Jelinek <jakub@redhat.com> 4574 4575 * testsuite/libgomp.fortran/crayptr1.f90: New test. 4576 4577 * testsuite/libgomp.fortran/workshare1.f90: New test. 4578 4579 * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile 4580 only test. 4581 * libgomp.fortran/sharing1.f90: New test. 4582 45832005-10-24 Jakub Jelinek <jakub@redhat.com> 4584 4585 PR c++/24502 4586 * testsuite/libgomp.c++/loop-7.C: New test. 4587 4588 * testsuite/libgomp.dg/nestedfn-2.c: New test. 4589 4590 * testsuite/libgomp.dg/nestedfn-1.c: New test. 4591 * testsuite/libgomp.fortran/reduction6.f90: New test. 4592 * testsuite/libgomp.fortran/nestedfn1.f90: New test. 4593 45942005-10-23 Richard Henderson <rth@redhat.com> 4595 4596 * testsuite/libgomp.c++/ctor-1.C: New. 4597 * testsuite/libgomp.c++/ctor-2.C: New. 4598 * testsuite/libgomp.c++/ctor-3.C: New. 4599 * testsuite/libgomp.c++/ctor-4.C: New. 4600 * testsuite/libgomp.c++/ctor-5.C: New. 4601 * testsuite/libgomp.c++/ctor-6.C: New. 4602 * testsuite/libgomp.c++/ctor-7.C: New. 4603 * testsuite/libgomp.c++/ctor-8.C: New. 4604 * testsuite/libgomp.c++/ctor-9.C: New. 4605 46062005-10-21 Diego Novillo <dnovillo@redhat.com> 4607 4608 PR 24455 4609 * testsuite/libgomp.c++/pr24455-1.C: New test. 4610 * testsuite/libgomp.c++/pr24455.C: New test. 4611 * testsuite/libgomp.dg/pr24455-1.c: New test. 4612 * testsuite/libgomp.dg/pr24455.c: New test. 4613 46142005-10-20 Richard Henderson <rth@redhat.com> 4615 4616 * testsuite/libgomp.c++/loop-6.C: New. 4617 * testsuite/libgomp.dg/loop-3.c: New. 4618 46192005-10-20 Jakub Jelinek <jakub@redhat.com> 4620 4621 * testsuite/libgomp.fortran/jacobi.f: Don't make i and j 4622 explicitly private. 4623 * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i 4624 explicitly shared. 4625 46262005-10-19 Diego Novillo <dnovillo@redhat.com> 4627 4628 * testsuite/libgomp.fortran/jacobi.f: New test. 4629 46302005-10-19 Richard Henderson <rth@redhat.com> 4631 4632 * configure.tgt (i?86-linux): Default to with_arch instead of 4633 CFLAGS. Add -mtune to match target_cpu. 4634 (x86_64-linux): Tune to i686. 4635 4636 * fortran.c (omp_test_nest_lock_): Fix typo. 4637 46382005-10-19 Jakub Jelinek <jakub@redhat.com> 4639 4640 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next, 4641 gomp_ordered_sync): Do nothing if team->nthreads == 1. 4642 * testsuite/libgomp.dg/ordered-3.c: New test. 4643 4644 * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort. 4645 Remove volatile keyword. 4646 4647 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables 4648 in COMMON block to avoid warnings on 64-bit targets. 4649 46502005-10-18 Diego Novillo <dnovillo@redhat.com> 4651 4652 * testsuite/libgomp.dg/shared-3.c: New test. 4653 46542005-10-18 Jakub Jelinek <jakub@redhat.com> 4655 4656 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed. 4657 * testsuite/libgomp.fortran/reduction5.f90: New test. 4658 46592005-10-18 Jakub Jelinek <jakub@redhat.com> 4660 4661 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to 4662 dg-options. 4663 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable 4664 flush loop now that __sync_synchronize has proper memory barrier. 4665 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo. 4666 Add -ffixed-form to dg-options. 4667 46682005-10-17 Diego Novillo <dnovillo@redhat.com> 4669 4670 * testsuite/libgomp.fortran/fortran.exp: Also gather tests 4671 from subdirectories. 4672 * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test. 4673 * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test. 4674 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test. 4675 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test. 4676 * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test. 4677 * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test. 4678 * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test. 4679 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test. 4680 * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test. 4681 * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test. 4682 * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test. 4683 * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test. 4684 * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test. 4685 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test. 4686 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test. 4687 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test. 4688 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test. 4689 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test. 4690 * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test. 4691 * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test. 4692 * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test. 4693 * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test. 4694 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test. 4695 * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test. 4696 * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test. 4697 46982005-10-17 Jakub Jelinek <jakub@redhat.com> 4699 4700 * testsuite/libgomp.dg/dg.exp: Only unset lang_* if 4701 lang_library_path exists. Use find instead of glob to gather tests. 4702 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed. 4703 47042005-10-17 Diego Novillo <dnovillo@redhat.com> 4705 4706 * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test. 4707 * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test. 4708 * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test. 4709 * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test. 4710 * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test. 4711 * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test. 4712 * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test. 4713 * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test. 4714 * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test. 4715 * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test. 4716 * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test. 4717 * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test. 4718 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file. 4719 47202005-10-15 Jakub Jelinek <jakub@redhat.com> 4721 4722 * testsuite/libgomp.dg/vla-1.c: New test. 4723 4724 * testsuite/libgomp.fortran/reference2.f90: New test. 4725 4726 * testsuite/libgomp.fortran/character2.f90: Remove explicit 4727 declaration of omp_get_thread_num. 4728 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add 4729 use omp_lib. 4730 4731 * testsuite/libgomp.fortran/reduction1.f90: New test. 4732 * testsuite/libgomp.fortran/reduction2.f90: New test. 4733 * testsuite/libgomp.fortran/reduction3.f90: New test. 4734 * testsuite/libgomp.fortran/reduction4.f90: New test. 4735 47362005-10-13 Richard Henderson <rth@redhat.com> 4737 4738 * Makefile.am (libgomp_la_SOURCES): Add bar.c. 4739 * Makefile.in: Regenerate. 4740 * barrier.c (GOMP_barrier): Use gomp_barrier_wait. 4741 * libgomp.h: Include bar.h. 4742 (struct gomp_barrier): Remove. 4743 (struct gomp_team): Add barrier. Replace master_barrier with 4744 master_release. Replace threads with ordered_release. 4745 (struct gomp_thread): Replace barrier with release. 4746 * ordered.c (gomp_ordered_first): Update for ordered_release change. 4747 (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init, 4748 gomp_ordered_static_next, gomp_ordered_sync): Likewise. 4749 * single.c (GOMP_single_copy_start): Use gomp_barrier_wait. 4750 (GOMP_single_copy_end): Likewise. 4751 * team.c (gomp_threads_dock): New. 4752 (gomp_barrier_init, gomp_barrier_destroy): Remove. 4753 (gomp_thread_start): Use gomp_barrier_wait. 4754 (new_team, free_team): Update for gomp_team changes. 4755 (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit. 4756 (gomp_team_end): Use gomp_barrier_wait. 4757 (initialize_team): Update for gomp_thread changes. 4758 * work.c (gomp_work_share_end): Use gomp_barrier_wait_start. 4759 (gomp_work_share_end_nowait): Use atomic ops when available. 4760 * config/linux/bar.c, config/linux/bar.h: New files. 4761 * config/posix/bar.c, config/posix/bar.h: New files. 4762 47632005-10-13 Jakub Jelinek <jakub@redhat.com> 4764 4765 * single.c (GOMP_single_copy_end): Don't segfault if team is NULL. 4766 * testsuite/libgomp.dg/single-2.c: New test. 4767 4768 * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file, 4769 lang_link_flags): Unset, so that they aren't inherited from previously 4770 sourced *.exp. 4771 4772 * testsuite/libgomp.fortran/threadprivate1.f90: New test. 4773 47742005-10-12 Richard Henderson <rth@redhat.com> 4775 4776 * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel. 4777 (libgomp_init): Use lang_test_file, lang_library_path, and 4778 lang_link_flags, set by the subdirectory files. Add -fopenmp here. 4779 4780 * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New. 4781 (lang_test_file, lang_link_flags): New. 4782 (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove. 4783 4784 * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C, 4785 testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C, 4786 testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C, 4787 testsuite/libgomp.c++/parallel-1.C, 4788 testsuite/libgomp.c++/reduction-1.C, 4789 testsuite/libgomp.c++/reduction-2.C, 4790 testsuite/libgomp.c++/reduction-3.C, 4791 testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C, 4792 testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C, 4793 testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C: 4794 New files, largely cribbed from the C testsuite. 4795 47962005-10-12 Jakub Jelinek <jakub@redhat.com> 4797 4798 * testsuite/libgomp.fortran/character1.f90: New test. 4799 * testsuite/libgomp.fortran/character2.f90: New test. 4800 4801 * testsuite/libgomp.dg/nested-1.c: New test. 4802 * testsuite/libgomp.dg/nested-2.c: New test. 4803 * testsuite/libgomp.fortran/do1.f90: New test. 4804 * testsuite/libgomp.fortran/do2.f90: New test. 4805 4806 * testsuite/libgomp.fortran/reference1.f90: New test. 4807 48082005-10-11 Jakub Jelinek <jakub@redhat.com> 4809 4810 * testsuite/libgomp.dg/reduction-1.c: New test. 4811 * testsuite/libgomp.dg/reduction-2.c: New test. 4812 * testsuite/libgomp.dg/reduction-3.c: New test. 4813 48142005-10-10 Jakub Jelinek <jakub@redhat.com> 4815 4816 * testsuite/libgomp.dg/atomic-1.c: New test. 4817 * testsuite/libgomp.dg/atomic-2.c: New test. 4818 48192005-10-09 Richard Henderson <rth@redhat.com> 4820 4821 * critical.c (atomic_lock): New. 4822 (initialize_critical): Initialize it. 4823 (GOMP_atomic_start, GOMP_atomic_end): New. 4824 * libgomp.map: Export them. 4825 * libgomp_g.h: Declare them. 4826 4827 * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite. 4828 48292005-10-02 Richard Henderson <rth@redhat.com> 4830 4831 * configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror 4832 to XCFLAGS instead of CFLAGS. 4833 48342005-09-30 Richard Henderson <rth@redhat.com> 4835 4836 * configure.ac: Determine whether -pthread or -lpthread is needed. 4837 * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread. 4838 * Makefine.in, configure: Rebuild. 4839 48402005-09-28 Richard Henderson <rth@redhat.com> 4841 4842 * testsuite/libgomp.dg/omp-loop03.c: Fix return code. 4843 * testsuite/libgomp.dg/omp-single-3.c: New test. 4844 48452005-09-28 Diego Novillo <dnovillo@redhat.com> 4846 4847 * testsuite/libgomp.dg/omp-single-2.c: New test. 4848 * testsuite/libgomp.dg/shared-2.c: Fix return code. 4849 48502005-09-27 Richard Henderson <rth@redhat.com> 4851 4852 * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier. 4853 * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule. 4854 48552005-09-27 Jakub Jelinek <jakub@redhat.com> 4856 4857 * testsuite/libgomp.dg/omp-loop03.c: New test. 4858 48592005-09-27 Diego Novillo <dnovillo@redhat.com> 4860 4861 * testsuite/libgomp.dg/omp-parallel-for.c: New test. 4862 48632005-09-27 Diego Novillo <dnovillo@redhat.com> 4864 4865 * testsuite/libgomp.dg/omp-single-1.c: New test. 4866 * testsuite/libgomp.dg/shared-1.c: Return 0. 4867 Add prototype for abort. 4868 * testsuite/libgomp.dg/shared-2.c: Likewise. 4869 48702005-09-26 Jakub Jelinek <jakub@redhat.com> 4871 4872 * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming 4873 constructs. 4874 48752005-09-26 Diego Novillo <dnovillo@redhat.com> 4876 4877 * testsuite/libgomp.dg/shared-1.c: New test. 4878 * testsuite/libgomp.dg/shared-2.c: New test. 4879 48802005-09-24 Richard Henderson <rth@redhat.com> 4881 4882 * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error. 4883 48842005-09-24 Richard Henderson <rth@redhat.com> 4885 4886 * iter.c (gomp_iter_static_next): Round up when computing number 4887 of iterations. Don't bother distributing a remainder equally. 4888 4889 * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main. 4890 Don't call srand. Zero b before testing. 4891 (main): New. 4892 48932005-09-24 Jakub Jelinek <jakub@redhat.com> 4894 4895 * testsuite/libgomp.fortran/omp_atomic1.f90: New test. 4896 * testsuite/libgomp.fortran/omp_atomic2.f90: New test. 4897 48982005-09-23 Jakub Jelinek <jakub@redhat.com> 4899 4900 * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do 4901 without !$omp end do, followed immediately by subroutine end. 4902 49032005-09-23 Diego Novillo <dnovillo@redhat.com> 4904 4905 * testsuite/libgomp.dg/omp-parallel-if.c: New test. 4906 49072005-09-22 Richard Henderson <rth@redhat.com> 4908 4909 * critical.c (GOMP_critical_name_start): Change argument to void**. 4910 Reuse the pointer space if the mutex fits. 4911 (GOMP_critical_name_end): Likewise. 4912 (initialize_critical): Don't define if GOMP_MUTEX_INIT_0. 4913 * libgomp_g.h (GOMP_critical_name_start): Update decl. 4914 (GOMP_critical_name_end): Likewise. 4915 * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New. 4916 * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New. 4917 49182005-09-20 Richard Henderson <rth@redhat.com> 4919 4920 * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New. 4921 (create_lock_lock): New. 4922 (initialize_critical): Initialize it. 4923 * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New. 4924 * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare. 4925 49262005-09-20 Diego Novillo <dnovillo@redhat.com> 4927 4928 * testsuite/libgom.dg/omp-loop01.c: Include stdio.h. 4929 49302005-09-20 Diego Novillo <dnovillo@redhat.com> 4931 4932 * testsuite/libgomp.dg/omp-loop01.c: New test. 4933 * testsuite/libgomp.dg/omp-loop02.c: New test. 4934 49352005-09-20 Jakub Jelinek <jakub@redhat.com> 4936 4937 * configure.ac (AC_PROG_FC): Add. 4938 (USE_FORTRAN): New automake conditional. 4939 * configure: Rebuilt. 4940 * Makefile.am (libgomp_la_SOURCES): Add fortran.c. 4941 (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h. 4942 If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod. 4943 Add rules to build them. 4944 * Makefile.in: Rebuilt. 4945 * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and 4946 OMP_NEST_LOCK_KIND. 4947 * libgomp.map: Add Fortran wrappers. 4948 * libgomp_f.h.in: New file. 4949 * omp_lib.h.in: New file. 4950 * omp_lib.f90.in: New file. 4951 * fortran.c: New file. 4952 * testsuite/lib/libgomp-dg.exp: Load a few more .exp files. 4953 Append libgfortran directory to LD_LIBRARY_PATH if it exists. 4954 Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if 4955 libgfortran has been built. 4956 * testsuite/libgomp.fortran/fortran.exp: New file. 4957 * testsuite/libgomp.fortran/omp_cond1.f: New test. 4958 * testsuite/libgomp.fortran/omp_cond2.f: New test. 4959 * testsuite/libgomp.fortran/omp_cond3.F90: New test. 4960 * testsuite/libgomp.fortran/omp_cond4.F90: New test. 4961 * testsuite/libgomp.fortran/omp_hello.f: New test. 4962 * testsuite/libgomp.fortran/omp_orphan.f: New test. 4963 * testsuite/libgomp.fortran/omp_parse1.f90: New test. 4964 * testsuite/libgomp.fortran/omp_parse2.f90: New test. 4965 * testsuite/libgomp.fortran/omp_parse3.f90: New test. 4966 * testsuite/libgomp.fortran/omp_parse4.f90: New test. 4967 * testsuite/libgomp.fortran/omp_reduction.f: New test. 4968 * testsuite/libgomp.fortran/omp_workshare1.f: New test. 4969 * testsuite/libgomp.fortran/omp_workshare2.f: New test. 4970 49712005-08-30 Richard Henderson <rth@redhat.com> 4972 4973 * loop.c (GOMP_loop_static_start): Provide fallback wrapper 4974 function for when aliases are not usable. 4975 (GOMP_loop_dynamic_start, GOMP_loop_guided_start, 4976 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start, 4977 GOMP_loop_ordered_guided_start, GOMP_loop_static_next, 4978 GOMP_loop_dynamic_next, GOMP_loop_guided_next, 4979 GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next, 4980 GOMP_loop_ordered_guided_next): Likewise. 4981 * ordered.c (GOMP_ordered_start): Likewise. 4982 49832005-08-01 Diego Novillo <dnovillo@redhat.com> 4984 4985 * testsuite/libgomp.dg/dg.exp: Use -O2 for now. 4986 * testsuite/libgomp.dg/omp_hello.c: Fix return code 4987 * testsuite/libgomp.dg/omp_matvec.c: Likewise. 4988 * testsuite/libgomp.dg/omp_orphan.c: Likewise 4989 * testsuite/libgomp.dg/omp_reduction.c: Likewise 4990 * testsuite/libgomp.dg/omp_workshare1.c: Likewise 4991 * testsuite/libgomp.dg/omp_workshare2.c: Likewise 4992 * testsuite/libgomp.dg/omp_workshare3.c: Likewise 4993 * testsuite/libgomp.dg/omp_workshare4.c: Likewise 4994 49952005-07-07 Eric Christopher <echristo@redhat.com> 4996 Diego Novillo <dnovillo@redhat.com> 4997 4998 * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS. 4999 * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix 5000 up code. 5001 * testsuite/libgomp.dg/omp_matvec.c: Ditto. 5002 * testsuite/libgomp.dg/omp_orphan.c: Ditto. 5003 * testsuite/libgomp.dg/omp_reduction.c: Ditto. 5004 * testsuite/libgomp.dg/omp_workshare1.c: Ditto. 5005 * testsuite/libgomp.dg/omp_workshare2.c: Ditto. 5006 * testsuite/libgomp.dg/omp_workshare3.c: Ditto. 5007 * testsuite/libgomp.dg/omp_workshare4.c: Ditto. 5008 50092005-06-13 Diego Novillo <dnovillo@redhat.com> 5010 5011 * TOPLEVEL.patch: Remove. 5012 50132005-05-16 Richard Henderson <rth@redhat.com> 5014 5015 * configure.ac: Test for clock_gettime. 5016 * config.h.in, configure: Rebuild. 5017 * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern. 5018 (omp_get_wtime): Use clock_gettime if available. 5019 (omp_get_wtick): Use clock_getres if available. 5020 50212005-05-11 Richard Henderson <rth@redhat.com> 5022 5023 * config/linux/ia64/futex.h: New file. 5024 * configure.tgt: Use it. 5025 5026 * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline. 5027 50282005-05-07 Richard Henderson <rth@redhat.com> 5029 5030 * config/linux/powerpc/futex.h: New file. 5031 * configure.tgt: Use it. 5032 5033 * config/linux/i486/futex.h: Merge ... 5034 * config/linux/x86_64/futex.h: ... into ... 5035 * config/linux/x86/futex.h: ... here. 5036 * configure.tgt: Update to match. 5037 50382005-05-06 Richard Henderson <rth@redhat.com> 5039 5040 * config/linux/alpha/futex.h: Conditionally define SYS_futex. 5041 * config/linux/i486/futex.h: Likewise. 5042 * config/linux/x86_64/futex.h: Likewise. 5043 5044 * config/linux/lock.c: New file. 5045 * config/linux/omp-lock.h: New file. 5046 5047 * critical.c, env.h: Don't include omp.h 5048 * config/posix/lock.c: Include libgomp.h instead of omp.h. 5049 * config/posix/time.c: Likewise. 5050 * config/posix/omp-lock.h: New file. 5051 * libgomp.h: Include omp-lock.h and omp.h. 5052 * Makefile.am (nodist_include_HEADERS): New. 5053 (omp.h): New rule. 5054 * configure.ac (PERL): New. 5055 * mkomp_h.pl: New file. 5056 * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t 5057 with templates. 5058 * Makefile.in, configure, testsuite/Makefile.in: Rebuild. 5059 5060 * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into 5061 build directory. Re-add -march=i486 hack. 5062 5063 * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove. 5064 (libgomp_link_flags): Remove. 5065 (libgomp_initialized): Remove. 5066 (libgomp_init): Don't protect from reinitialization. Copy code 5067 from libstdc++ for getting the multilib set correctly. 5068 50692005-05-05 Richard Henderson <rth@redhat.com> 5070 5071 * config/linux/alpha/futex.h: New file. 5072 * configure.tgt (alpha*-*-linux*): Use it. 5073 5074 * config/posix/mutex.c: New file. 5075 * config/posix/sem.c: Use libgomp.h. 5076 5077 * configure.tgt (x86_64-linux): Also test CC for -m32. 5078 * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage. 5079 5080 * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add / 5081 after $gccpath. 5082 5083 * Makefile.am (SUBDIRS): New. 5084 (libgomp_la_LDFLAGS): Add -lpthread. 5085 * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies. 5086 * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild. 5087 5088 * libgomp_g.h: New file. 5089 * libgomp.h: Split out all public declarations to libgomp_g.h. 5090 Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN. 5091 * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN. 5092 * config/linux/sem.h: Likewise. 5093 * config/posix/sem.h: Likewise. 5094 5095 * Makefile.am (AM_LDFLAGS): New. 5096 (libgomp_version_script): Split out from ... 5097 (libgomp_la_LDFLAGS): ... here. 5098 (libgomp_version_info): New. 5099 * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE. 5100 (LIBGOMP_ENABLE): New. 5101 (LIBGOMP_CHECK_LINKER_FEATURES): New. 5102 (LIBGOMP_ENABLE_SYMVERS): New. 5103 * configure.ac (AC_INIT): Version 1.0. 5104 (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE. 5105 (enable-linux-futex): Likewise. Rename from enable-futex. 5106 (libtool_VERSION): New. 5107 (LIBGOMP_ENABLE_SYMVERS): Use it. 5108 * configure.tgt: Check with_gnu_ld wrt have_tls optimizations. 5109 * Makefile.in, aclocal.m4, configure: Rebuild. 5110 5111 * config/linux/mutex.c: Include libgomp.h instead of mutex.h. 5112 (gomp_mutex_unlock_slow): Fix typo. 5113 * config/linux/sem.c: Similarly. 5114 (gomp_sem_post_slow): Fix typo. 5115 * config/linux/sem.h (gomp_sem_post_slow): Fix typo. 5116 * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code. 5117 [__PIC__] (sys_futex0): Don't use tmp output in asm. 5118 5119 * Makefile.am (AM_CFLAGS): Expand with XCFLAGS. 5120 (libgomp_la_LDFLAGS): Add top_srcdir to path. 5121 * acinclude.m4: Copy libtool.m4 stuff from libgfortran. 5122 * configure.ac: Check for getloadavg. Substitute XCFLAGS and 5123 XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS. 5124 * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and 5125 LDFLAGS. Pull enable_futex check to top-level. 5126 * libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN. 5127 * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate. 5128 5129 First attempt at real configury. 5130 * Makefile, config.h: Remove file. 5131 * Makefile.am, Makefile.in: New file. 5132 * acinclude.m4 aclocal.m4: New file. 5133 * configure.ac, configure.tgt, configure: New file. 5134 5135 * config/posix/lock.c: Rename from sys-lock.c. 5136 * config/posix/mutex.h: Rename from sys-mutex.h. 5137 * config/posix/sem.c: Rename from sys-sem.c. 5138 * config/posix/sem.h: Rename from sys-sem.h. 5139 * config/posix/proc.c: Rename from sys-proc.c. 5140 * config/posix/time.c: Rename from sys-proc.c. 5141 5142 * config/linux/mutex.c: New file. 5143 * config/linux/mutex.h: New file. 5144 * config/linux/sem.c: New file. 5145 * config/linux/sem.h: New file. 5146 * config/linux/i486/futex.h: New file. 5147 * config/linux/x86_64/futex.h: New file. 5148 51492005-05-04 Richard Henderson <rth@redhat.com> 5150 5151 * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New. 5152 * libgomp.h: Declare them. 5153 * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start, 5154 gomp_loop_dynamic_next, gomp_loop_guided_next): Use them. 5155 51562005-05-04 Richard Henderson <rth@redhat.com> 5157 5158 * libgomp-1 code drop 5159 51602005-05-04 Richard Henderson <rth@redhat.com> 5161 5162 * iter.c (gomp_iter_static_next): Return tri-state on 0. 5163 * ordered.c (gomp_ordered_static_next): Remove not_last argument. 5164 * libgomp.h (struct gomp_team_state): Make static_trip unsigned. 5165 (gomp_iter_static_next): Update. 5166 (gomp_ordered_static_next): Update. 5167 * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next. 5168 (gomp_loop_ordered_static_start): Likewise. Exit early for a 5169 totally empty range. 5170 (gomp_loop_ordered_static_next): Refine test for calling 5171 gomp_ordered_static_next. 5172 * testsuite/ordered-1.c: Add case for more threads than iterations. 5173 5174 * iter.c (gomp_iter_runtime_next_locked): Remove. 5175 * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start, 5176 gomp_loop_guided_start, gomp_loop_ordered_static_start, 5177 gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start, 5178 gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next, 5179 gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next, 5180 gomp_loop_ordered_guided_next): Downcase name, make static, add 5181 an external alias with the old name. 5182 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start, 5183 GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a 5184 switch and call one of the above static functions. 5185 * libgomp.h: Update. 5186 5187 * work.c (gomp_work_share_start): Lock the mutex for !first too. 5188 * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start, 5189 GOMP_loop_guided_start, GOMP_loop_runtime_start, 5190 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start, 5191 GOMP_loop_ordered_guided_start): Update to match. 5192 * sections.c (GOMP_sections_start): Likewise. 5193 * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise. 5194 5195 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next, 5196 gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//. 5197 Use bounds check instead of modulus. 5198 (gomp_ordered_sync): Split out of GOMP_ordered_start. 5199 (gomp_ordered_last): Don't sync with ordered_owner here. 5200 (gomp_ordered_next): Likewise. 5201 (gomp_ordered_static_loop_next): Likewise. 5202 * loop.c, libgomp.h: Update to match. 5203 5204 * libgomp.h (GOMP_barrier): Declare. 5205 5206 * testsuite/barrier-1.c: New file. 5207 * testsuite/critical-1.c: New file. 5208 * testsuite/ordered-2.c: New file. 5209 * testsuite/ordered-1.c: New file. 5210 * testsuite/sections-1.c: New file. 5211 * testsuite/single-1.c: New file. 5212 * testsuite/Makefile (TESTS): Add them. 5213 52142005-05-04 Richard Henderson <rth@redhat.com> 5215 5216 * libgomp.h (struct gomp_work_share): Add ordered_owner. 5217 * loop.c (GOMP_loop_static_start): If not the startup thread, 5218 acquire the mutex to wait for initialization complete. 5219 (GOMP_loop_ordered_static_start): Likewise. 5220 (GOMP_loop_ordered_runtime_start): Likewise. 5221 (GOMP_loop_ordered_static_first): Remove. 5222 (GOMP_loop_ordered_dynamic_first): Remove. 5223 (GOMP_loop_ordered_guided_first): Remove. 5224 (GOMP_loop_ordered_runtime_first): Remove. 5225 * ordered.c (gomp_ordered_loop_first): Post to own release when 5226 we're the first thread. 5227 (gomp_ordered_loop_last): Wait on release if not owner. 5228 (gomp_ordered_loop_next): Likewise. 5229 (gomp_ordered_static_loop_init): New. 5230 (gomp_ordered_static_loop_next): Use ordered_owner. 5231 (GOMP_ordered_start): Likewise. 5232 * work.c (gomp_new_work_share): Initialize ordered_owner. 5233 52342005-05-03 Richard Henderson <rth@redhat.com> 5235 5236 * Makefile (OPT): New. 5237 (CFLAGS): Use it. 5238 5239 * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New. 5240 * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New. 5241 * libgomp.h, libgomp.map, NOTES: Update to match. 5242 5243 * team.c (struct gomp_thread_start_data): Remove ts, fn, data. 5244 Add initialized and thr members. 5245 (gomp_thread_start): Pause when initially spawned to wait for 5246 the whole team to be created. 5247 (gomp_team_start): Release team members at the end. 5248 5249 * testsuite/loop-1.c (N): New. Use it instead of hardcoded 100. 5250 (f_foo_1): Use GOMP_loop_end. 5251 (f_foo_2): Use GOMP_loop_end_nowait. 5252 5253 * testsuite/loop-2.c: New file. 5254 * testsuite/Makefile (TESTS): Add it. 5255 52562005-05-03 Richard Henderson <rth@redhat.com> 5257 5258 * iter.c (gomp_iter_static_next): Fix overflow check typo. 5259 (gomp_iter_dynamic_next_locked): Fix overflow check thinko. 5260 * team.c (new_team): Initialize oldest_live_gen to 1 if no 5261 initial work_share. 5262 5263 * testsuite/Makefile: New file. 5264 * testsuite/loop-1.c: New file. 5265 52662005-05-03 Richard Henderson <rth@redhat.com> 5267 5268 Initial implementation and checkin. 5269