llvm-project/flang/module/__cuda_builtins.f90
Michael Klemm 0ca74c3458
[flang][NFC] Refactor MODULE definitions to not accidentally leak symbols (#80833)
This PR continues the work started with PR #79006, by setting visibility
in MODULES to PRIVATE by default and explicitly exporting only the
desired symbols. `omp_lib` needs more work, as it should maybe be
compiled from `omp_lib.f90` in
`openmp/runtime/src/incluce/omp_lib.f90.var` instead of simply using an
INCLUDE for `omp_lib.h`
2024-02-19 12:35:38 -06:00

32 lines
924 B
Fortran

!===-- module/__cuda_builtins.f90 ------------------------------------------===!
!
! Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
! See https://llvm.org/LICENSE.txt for license information.
! SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
!
!===------------------------------------------------------------------------===!
! These CUDA predefined variables are automatically available in device
! subprograms.
module __CUDA_builtins
use __fortran_builtins, only: &
threadIdx => __builtin_threadIdx, &
blockDim => __builtin_blockDim, &
blockIdx => __builtin_blockIdx, &
gridDim => __builtin_gridDim, &
warpsize => __builtin_warpsize
implicit none
! Set PRIVATE by default to explicitly only export what is meant
! to be exported by this MODULE.
private
public :: threadIdx, &
blockDim, &
blockIdx, &
gridDim, &
warpsize
end module