+2019-12-17 Tobias Burnus <tobias@codesourcery.com>
+
+ * config/accel/openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark
+ all symbols as public except for the 'use …, only' imported symbol,
+ which is private.
+ (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark
+ all symbols from module openacc_kinds as PUBLIC
+ * openacc.f90: Add comment with crossref to that file and openmp_lib.h;
+ fix comment typo.
+ * openacc_lib.h (acc_device_gcn): Add this PARAMETER.
+
2019-12-13 Julian Brown <julian@codesourcery.com>
PR libgomp/92881
use iso_fortran_env, only: int32
implicit none
+ public
private :: int32
- public :: acc_device_kind
- integer, parameter :: acc_device_kind = int32
+ ! When adding items, also update 'public' setting in 'module openacc' below.
- public :: acc_device_none, acc_device_default, acc_device_host
- public :: acc_device_not_host, acc_device_nvidia
+ integer, parameter :: acc_device_kind = int32
! Keep in sync with include/gomp-constants.h.
integer (acc_device_kind), parameter :: acc_device_none = 0
integer (acc_device_kind), parameter :: acc_device_nvidia = 5
integer (acc_device_kind), parameter :: acc_device_gcn = 8
-end module
+end module openacc_kinds
module openacc_internal
use openacc_kinds
integer (c_int), value :: d
end function
end interface
-end module
+end module openacc_internal
module openacc
use openacc_kinds
use openacc_internal
implicit none
+ private
+
+ ! From openacc_kinds
+ public :: acc_device_kind
+ public :: acc_device_none, acc_device_default, acc_device_host
+ public :: acc_device_not_host, acc_device_nvidia, acc_device_gcn
+
public :: acc_on_device
interface acc_on_device
! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
! <http://www.gnu.org/licenses/>.
+! Keep in sync with config/accel/openacc.f90 and openacc_lib.h.
+
module openacc_kinds
use iso_fortran_env, only: int32
implicit none
public
private :: int32
- ! When adding items, also update 'public' setting in 'module openmp' below.
+ ! When adding items, also update 'public' setting in 'module openacc' below.
integer, parameter :: acc_device_kind = int32
! Keep in sync with include/gomp-constants.h.
integer (acc_handle_kind), parameter :: acc_async_noval = -1
integer (acc_handle_kind), parameter :: acc_async_sync = -2
-end module
+end module openacc_kinds
module openacc_internal
use openacc_kinds
integer (c_int), value :: async
end subroutine
end interface
-end module
+end module openacc_internal
module openacc
use openacc_kinds
implicit none
private
+
! From openacc_kinds
public :: acc_device_kind, acc_handle_kind
public :: acc_device_none, acc_device_default, acc_device_host
procedure :: acc_update_self_async_array_h
end interface
-end module
+end module openacc
function acc_get_num_devices_h (d)
use openacc_internal, only: acc_get_num_devices_l
! Alternatively, the user can use the module version, which permits
! compilation with -std=f95.
+! Keep in sync with openacc.f90 and config/accel/openacc.f90.
+
integer, parameter :: acc_device_kind = 4
! Keep in sync with include/gomp-constants.h.
! removed.
integer (acc_device_kind), parameter :: acc_device_not_host = 4
integer (acc_device_kind), parameter :: acc_device_nvidia = 5
+ integer (acc_device_kind), parameter :: acc_device_gcn = 8
integer, parameter :: acc_handle_kind = 4