gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
commitbc0229f9f6929e000bc638e26fcd25ff0e95b2ed
authorTobias Burnus <burnus@net-b.de>
Thu, 14 Aug 2014 18:39:15 +0000 (14 20:39 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Thu, 14 Aug 2014 18:39:15 +0000 (14 20:39 +0200)
treef112e8c0d52e17d8eda54ec7f00375059153f751
parentc194537c63180722ea6977000451174f5da1b40b
gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.

gcc/fortran/
2014-08-14  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
        (_gfortran_caf_register): Update for locking/critical.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
        * resolve.c (resolve_critical): New.
        (gfc_resolve_code): Call it.
        * trans-decl.c (gfor_fndecl_caf_critical,
        gfor_fndecl_caf_end_critical): Remove.
        (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
        (gfc_build_builtin_function_decls): Remove critical,
        assign locking declarations.
        (generate_coarray_sym_init): Handle locking and
        critical variables.
        * trans-stmt.c (gfc_trans_critical): Add calls to
        lock/unlock libcaf functions.
        * trans.h (gfc_coarray_type): Update locking, add
        critical enum values.
        (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
        (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.

libgfortran/
2014-08-14  Tobias Burnus  <burnus@net-b.de>

        * caf/libcaf.h (caf_register_t): Update for critical.
        (_gfortran_caf_critical, _gfortran_caf_end_critical): Remove.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
        * caf/single.c (_gfortran_caf_register): Handle locking
        variables.
        (_gfortran_caf_sendget): Re-name args for consistency.
        (_gfortran_caf_lock, _gfortran_caf_unlock): Add.

From-SVN: r213979
gcc/fortran/ChangeLog
gcc/fortran/gfortran.texi
gcc/fortran/resolve.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-stmt.c
gcc/fortran/trans.h
libgfortran/ChangeLog
libgfortran/caf/libcaf.h
libgfortran/caf/single.c