mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 03:16:37 +00:00

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`
32 lines
924 B
Fortran
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
|