+2014-04-02 Richard Henderson <rth@redhat.com>
+
+ * config/linux/futex.h (futex_wait): Get error value from errno.
+ (futex_wake): Likewise.
+
+2013-04-11 Release Manager
+
+ * GCC 4.7.3 released.
+
+2013-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2013-02-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/56217
+ * testsuite/libgomp.c++/pr56217.C: New test.
+
+2013-01-22 Alan Modra <amodra@gmail.com>
+
+ PR libgomp/51376
+ PR libgomp/56073
+ * task.c (GOMP_task): Revert 2011-12-09 change.
+ (GOMP_taskwait): Likewise. Instead use atomic load with acquire
+ barrier to read task->children..
+ (gomp_barrier_handle_tasks): ..and matching atomic store with
+ release barrier here when setting parent->children to NULL.
+
+2012-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/55411
+ * team.c (gomp_free_thread): Decrease gomp_managed_threads
+ if pool had any threads_used.
+
+2012-09-20 Release Manager
+
+ * GCC 4.7.2 released.
+
+2012-06-14 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2012-06-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/53580
+ * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
+ use GOMP_barrier () call instead.
+ * testsuite/libgomp.c/pr26943-3.c: Likewise.
+ * testsuite/libgomp.c/pr26943-4.c: Likewise.
+ * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
+ call GOMP_barrier instead.
+ * testsuite/libgomp.fortran/vla5.f90: Likewise.
+
+ 2012-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/52993
+ * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
+ argument to memset call.
+
+2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+
+2012-03-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/52547
+ * testsuite/libgomp.c/pr52547.c: New test.
+
+2012-03-22 Release Manager
+
+ * GCC 4.7.0 released.
+
+2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
+
+2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libstdc++/52188
+ * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
+ Remove ENABLE_SYMVERS_SOL2.
+ * configure: Regenerate.
+ * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
+ (PREPROCESS): New variable.
+ (libgomp.ver): New target.
+ [LIBGOMP_BUILD_VERSIONED_SHLIB &&
+ LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
+ LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
+ Use libgomp.ver.
+ [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
+ * Makefile.in: Regenerate.
+
+2012-02-14 Walter Lee <walt@tilera.com>
+
+ * configure.tgt: Handle tilegx and tilepro.
+ * config/linux/tile/futex.h: New file.
+
+2012-02-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/46886
+ * testsuite/libgomp.c/pr46886.c: New testcase.
+
+2012-01-25 Matthias Klose <doko@ubuntu.com>
+
+ * config/linux/arm: Remove empty directory.
+ * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
+
+2011-12-09 Alan Modra <amodra@gmail.com>
+
+ PR libgomp/51376
+ * task.c (GOMP_taskwait): Don't access task->children outside of
+ task_lock mutex region.
+ (GOMP_task): Likewise.
+
+2011-12-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/51132
+ * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
+ to file scope.
+ * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
+ * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
+ * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
+ * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
+ * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
+
+2011-12-02 Alan Modra <amodra@gmail.com>
+
+ * config/linux/affinity.c: Use atomic rather than sync builtin.
+ * config/linux/lock.c: Likewise.
+ * config/linux/ptrlock.h: Likewise.
+ * config/linux/ptrlock.c: Likewise.
+ * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
+ * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
+ * config/linux/futex.h (atomic_write_barrier): Delete unused function.
+ * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
+ * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
+ * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
+ * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
+ * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
+ * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
+ * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
+
+2011-11-30 Alan Modra <amodra@gmail.com>
+
+ PR libgomp/51298
+ * config/linux/bar.h: Use atomic rather than sync builtins.
+ * config/linux/bar.c: Likewise. Add missing acquire
+ synchronisation on generation field.
+ * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
+ double unlock.
+
+2011-11-30 Alan Modra <amodra@gmail.com>
+
+ * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
+ * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
+ * config/linux/mutex.h: Use atomic rather than sync builtins.
+ * config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state.
+ * config/linux/omp-lock.h: Comment fix.
+ * config/linux/arm/mutex.h: Delete.
+ * config/linux/powerpc/mutex.h: Delete.
+ * config/linux/ia64/mutex.h: Delete.
+ * config/linux/mips/mutex.h: Delete.
+
+2011-11-30 Alan Modra <amodra@gmail.com>
+
+ PR libgomp/51249
+ * config/linux/sem.h: Rewrite.
+ * config/linux/sem.c: Rewrite.
+
+2011-11-28 Richard Henderson <rth@redhat.com>
+
+ * libgomp.h (enum memmodel): New.
+
+2011-11-21 Andreas Tobler <andreast@fgznet.ch>
+
+ * configure: Regenerate.
+
+2011-10-10 Matthias Klose <doko@ubuntu.com>
+
+ * config/posix95: Remove empty directory.
+
+2011-08-26 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/libgomp.fortran/threadprivate4.f90: New test.
+
+2011-08-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/49792
+ * testsuite/libgomp.fortran/pr49792-1.f90: New test.
+ * testsuite/libgomp.fortran/pr49792-2.f90: New test.
+
+2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/posix95/lock.c, posix95/omp-lock.h: Remove.
+
+2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libgomp/49965
+ * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
+
+2011-08-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/linux/proc.h: New.
+ * config/linux/proc.c: Include "proc.h". Do not include <sched.h>.
+ (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static.
+ (gomp_init_num_threads): Update call to cpuset_popcount.
+ (get_num_procs): Ditto.
+ * config/linux/affinity.c (gomp_init_affinity): Call
+ gomp_cpuset_popcount.
+
+2011-08-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/42041
+ PR fortran/46752
+ * omp.h.in (omp_in_final): New prototype.
+ * omp_lib.f90.in (omp_in_final): New interface.
+ (omp_integer_kind, omp_logical_kind): Remove
+ and replace all its uses in the module with 4.
+ (openmp_version): Change to 201107.
+ * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
+ omp_sched_guided, omp_sched_auto): Use omp_sched_kind
+ kind for the parameters.
+ (omp_in_final): New external.
+ (openmp_version): Change to 201107.
+ * task.c (omp_in_final): New function.
+ (gomp_init_task): Initialize final_task.
+ (GOMP_task): Remove unused attribute from flags. Handle final
+ tasks.
+ (GOMP_taskyield): New function.
+ (omp_in_final): Return true if if (false) or final (true) task
+ or descendant of final (true).
+ * fortran.c (omp_in_final_): New function.
+ * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
+ (GOMP_3.0): Export GOMP_taskyield.
+ * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
+ variables.
+ (parse_unsigned_long_list): New function.
+ (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
+ with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
+ even if parse_affinity returned false.
+ * config/linux/affinity.c (gomp_init_affinity): Handle
+ gomp_cpu_affinity_len == 0.
+ * libgomp_g.h (GOMP_taskyield): New prototype.
+ * libgomp.h (struct gomp_task): Add final_task field.
+ (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
+ * team.c (gomp_team_start): Override new task's nthreads_var icv
+ if list form OMP_NUM_THREADS has been used and it has value for
+ the new nesting level.
+
+ * testsuite/libgomp.c/atomic-11.c: New test.
+ * testsuite/libgomp.c/atomic-12.c: New test.
+ * testsuite/libgomp.c/atomic-13.c: New test.
+ * testsuite/libgomp.c/atomic-14.c: New test.
+ * testsuite/libgomp.c/reduction-6.c: New test.
+ * testsuite/libgomp.c/task-5.c: New test.
+ * testsuite/libgomp.c++/atomic-2.C: New test.
+ * testsuite/libgomp.c++/atomic-3.C: New test.
+ * testsuite/libgomp.c++/atomic-4.C: New test.
+ * testsuite/libgomp.c++/atomic-5.C: New test.
+ * testsuite/libgomp.c++/atomic-6.C: New test.
+ * testsuite/libgomp.c++/atomic-7.C: New test.
+ * testsuite/libgomp.c++/atomic-8.C: New test.
+ * testsuite/libgomp.c++/atomic-9.C: New test.
+ * testsuite/libgomp.c++/task-8.C: New test.
+ * testsuite/libgomp.c++/reduction-4.C: New test.
+ * testsuite/libgomp.fortran/allocatable7.f90: New test.
+ * testsuite/libgomp.fortran/allocatable8.f90: New test.
+ * testsuite/libgomp.fortran/crayptr3.f90: New test.
+ * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
+ * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
+ * testsuite/libgomp.fortran/pointer1.f90: New test.
+ * testsuite/libgomp.fortran/pointer2.f90: New test.
+ * testsuite/libgomp.fortran/task4.f90: New test.
+
+2011-08-02 Tobias Burnus <burnus@net-b.de>
+
+ * libgomp.texi: Update OpenMP spec references to 3.1.
+ (omp_in_final,OMP_PROC_BIND): New sections.
+ (OMP_NUM_THREADS): Document that the value can be now a list.
+ (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
+
+2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/linux/x86/futex.h: Check __x86_64__ instead of
+ __LP64__.
+
+2011-07-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/49897
+ PR middle-end/49898
+ * testsuite/libgomp.c/pr49897-1.c: New test.
+ * testsuite/libgomp.c/pr49897-2.c: New test.
+ * testsuite/libgomp.c/pr49898-1.c: New test.
+ * testsuite/libgomp.c/pr49898-2.c: New test.
+
+2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
+ for ia32 instead of ilp32.
+
+ * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
+ * testsuite/libgomp.c/atomic-6.c: Likewise.
+
+2011-07-23 Sebastian Pop <sebastian.pop@amd.com>
+
+ * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
+ * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
+
+2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libgomp/45351
+ * config/osf/sem.h: New file.
+ * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
+
+2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/49541
+ * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
+ ldflags.
+
+2011-07-15 Jakub Jelinek <jakub@redhat.com>
+
+ * config/linux/wait.h (do_spin): New inline, largely copied
+ from do_wait, just don't do futex_wait here, instead return true if
+ it should be done.
+ (do_wait): Implement using do_spin.
+ * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
+ to prototype.
+ (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
+ __sync_bool_compare_and_swap, pass the oldval to
+ gomp_mutex_lock_slow.
+ * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
+ If all mutex contenders are just spinning and not sleeping, don't
+ change state to 2 unnecessarily. Optimize the loop when state has
+ already become 2 to use just one atomic operation per loop instead
+ of two.
+ * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
+ to prototype.
+ (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
+ __sync_bool_compare_and_swap, pass the oldval to
+ gomp_mutex_lock_slow.
+
+2011-06-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/49490
+ * iter.c (gomp_iter_static_next): For chunk size 0
+ only use n ceil/ nthreads size for the first
+ n % nthreads threads in the team instead of
+ all threads except for the last few ones which
+ get less work or none at all.
+ * iter_ull.c (gomp_iter_ull_static_next): Likewise.
+ * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
+ chunk argument, set run_sched_modifier to 0 for static
+ resp. 1 for other kinds. If chunk argument is 0
+ and not static, set value to 1.
+
+2011-05-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/49043
+ * testsuite/libgomp.c++/pr49043.C: New test.
+
+ PR c++/48869
+ * testsuite/libgomp.c++/pr48869.C: New test.
+
+2011-05-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/48894
+ * fortran.c: Include limits.h.
+ (TO_INT): Define.
+ (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
+ *set.
+ (omp_set_num_threads_8_, omp_set_schedule_8_,
+ omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
+ omp_get_team_size_8_): Use TO_INT macro.
+ * testsuite/libgomp.fortran/pr48894.f90: New test.
+
2011-04-13 Jakub Jelinek <jakub@redhat.com>
PR middle-end/48591
Tobias Burnus <burnus@net-b.de>
PR fortran/32049
- * configure.ac:
+ * configure.ac:
* configure: Regenerate.
2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
- one. Use pool fields instead of global gomp_* variables.
+ one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
- gomp_barrier_state_t.
+ gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and