[PATCH, libgfortran] Replace sync builtins with atomic builtins
Jakub Jelinek
jakub@redhat.com
Fri Nov 9 20:56:00 GMT 2018
On Fri, Nov 09, 2018 at 01:13:28PM +0200, Janne Blomqvist wrote:
> The old __sync builtins have been deprecated for a long time now in
> favor of the __atomic builtins following the C++11/C11 memory model.
> This patch converts libgfortran to use the modern __atomic builtins.
>
> At the same time I weakened the consistency to acquire-release as that
> should be enough for this particular case. Jakub, as the original
> author of the algorithm, do you concur?
As mentioned on IRC, I think this could use just __ATOMIC_RELAXED,
but am not 100% sure.
> 2018-11-09 Janne Blomqvist <jb@gcc.gnu.org>
>
> * acinclude.m4 (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Rename and test
> presence of atomic builtins instead of sync builtins.
> * configure.ac (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Call new test.
> * io/io.h (inc_waiting_locked): Use __atomic_fetch_add.
> (predec_waiting_locked): Use __atomic_add_fetch.
> (dec_waiting_unlocked): Use __atomic_fetch_add.
> * config.h.in: Regenerated.
> * configure: Regenerated.
Jakub
More information about the Fortran
mailing list