[flang-commits] [flang] [llvm] [openmp] [OpenMP] [Flang] Add Fortran integer(kind=8) overloads for omp_lib APIs (PR #221451)
Sairudra More via flang-commits
flang-commits at lists.llvm.org
Tue Sep 8 07:45:58 PDT 2026
================
@@ -244,17 +244,178 @@
integer (kind=omp_interop_rc_kind), parameter, public :: omp_irc_type_str = -5
integer (kind=omp_interop_rc_kind), parameter, public :: omp_irc_other = -6
- interface
! ***
! *** omp_* entry points
! ***
+ interface omp_set_num_threads
subroutine omp_set_num_threads(num_threads) bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind), value :: num_threads
end subroutine omp_set_num_threads
+ subroutine kmp_set_num_threads_8(num_threads) bind(c)
+ integer (kind=8), value :: num_threads
+ end subroutine kmp_set_num_threads_8
+ end interface omp_set_num_threads
+
+ interface omp_set_max_active_levels
+ subroutine omp_set_max_active_levels(max_levels) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: max_levels
+ end subroutine omp_set_max_active_levels
+
+ subroutine kmp_set_max_active_levels_8(max_levels) bind(c)
+ integer (kind=8), value :: max_levels
+ end subroutine kmp_set_max_active_levels_8
+ end interface omp_set_max_active_levels
+
+ interface omp_get_ancestor_thread_num
+ function omp_get_ancestor_thread_num(level) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
+ integer (kind=omp_integer_kind), value :: level
+ end function omp_get_ancestor_thread_num
+
+ function kmp_get_ancestor_thread_num_8(level) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_get_ancestor_thread_num_8
+ integer (kind=8), value :: level
+ end function kmp_get_ancestor_thread_num_8
+ end interface omp_get_ancestor_thread_num
+
+ interface omp_get_team_size
+ function omp_get_team_size(level) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) omp_get_team_size
+ integer (kind=omp_integer_kind), value :: level
+ end function omp_get_team_size
+
+ function kmp_get_team_size_8(level) bind(c)
----------------
Saieiei wrote:
Could we either add the corresponding DeviceRTL entry points for the integer(8) overloads that are usable on devices, or make these overloads host-only?
For example, `omp_get_team_size(0_8)` resolves to `kmp_get_team_size_8`, while DeviceRTL currently only defines `omp_get_team_size`. I was able to reproduce this as an undefined device symbol with an integer(8) target call.
https://github.com/llvm/llvm-project/pull/221451
More information about the flang-commits
mailing list