[flang-commits] [flang] [llvm] [openmp] [OpenMP] [Flang] Add Fortran integer(kind=8) overloads for omp_lib APIs (PR #221451)
via flang-commits
flang-commits at lists.llvm.org
Sat Sep 5 22:13:01 PDT 2026
https://github.com/shivaramaarao updated https://github.com/llvm/llvm-project/pull/221451
>From 1fafee91d3ab0b93ae3eab5d588be1f2508a7790 Mon Sep 17 00:00:00 2001
From: Shivarama Rao <shivarama.rao at amd.com>
Date: Sat, 5 Sep 2026 19:57:23 +0530
Subject: [PATCH] [OpenMP] [Flang] Add Fortran integer(kind=8) overloads for
omp_lib APIs
Fortran code that uses integer(8) arguments, including -fdefault-integer-8,
did not match omp_lib interfaces declared with omp_integer_kind (typically
kind 4). Added *_8 specific procedures to named generic interfaces in omp_lib,
exported matching Fortran and C runtime entry points, and implemented the *_8
functions as thin wrappers that saturate-convert arguments to 32-bit and
call the existing APIs.
Assisted by Cursor : to generate the repetitive code and testcase
---
.../Lower/OpenMP/omp-lib-integer-wrappers.f90 | 148 +++++++
.../include/llvm/Frontend/OpenMP/OMPKinds.def | 25 ++
openmp/device/include/Interface.h | 1 +
openmp/device/src/State.cpp | 8 +
openmp/module/omp_lib.F90.var | 382 +++++++++++++-----
openmp/runtime/src/dllexports | 23 ++
openmp/runtime/src/include/omp.h.var | 20 +
openmp/runtime/src/kmp.h | 1 +
openmp/runtime/src/kmp_csupport.cpp | 8 +
openmp/runtime/src/kmp_ftn_entry.h | 137 +++++++
openmp/runtime/src/kmp_ftn_os.h | 80 ++++
openmp/runtime/src/kmp_stub.cpp | 2 +
12 files changed, 732 insertions(+), 103 deletions(-)
create mode 100644 flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90
diff --git a/flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90 b/flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90
new file mode 100644
index 0000000000000..ff9904bebf425
--- /dev/null
+++ b/flang/test/Lower/OpenMP/omp-lib-integer-wrappers.f90
@@ -0,0 +1,148 @@
+! REQUIRES: openmp_runtime
+
+! RUN: %flang_fc1 -emit-hlfir %openmp_flags %s -o - 2>&1 | FileCheck %s
+! RUN: bbc %openmp_flags -emit-hlfir -o - %s 2>&1 | FileCheck %s
+! RUN: %flang_fc1 -emit-fir %openmp_flags %s -o - 2>&1 | FileCheck %s
+! RUN: bbc -emit-fir %openmp_flags -o - %s 2>&1 | FileCheck %s
+!
+! Test that omp_lib generic interfaces select the default bind(c) entry for
+! omp_integer_kind arguments and the newly added *_8 entries for integer(8).
+
+program main
+ use omp_lib
+ integer(omp_integer_kind) :: i4
+ integer(8) :: i8
+ integer(omp_integer_kind) :: ires
+ integer(omp_sched_kind) :: sched_kind
+ integer(kmp_affinity_mask_kind) :: mask
+ integer(omp_integer_kind) :: ids4(1)
+ integer(8) :: ids8(1)
+ integer(omp_integer_kind) :: parts4(1)
+ integer(8) :: parts8(1)
+
+ i4 = 4
+ i8 = 8_8
+
+ call omp_set_num_threads(i4)
+ call omp_set_num_threads(i8)
+
+ call omp_set_max_active_levels(i4)
+ call omp_set_max_active_levels(i8)
+
+ call omp_set_default_device(i4)
+ call omp_set_default_device(i8)
+
+ call omp_set_num_teams(i4)
+ call omp_set_num_teams(i8)
+
+ call omp_set_teams_thread_limit(i4)
+ call omp_set_teams_thread_limit(i8)
+
+ call kmp_set_stacksize(i4)
+ call kmp_set_stacksize(i8)
+
+ call kmp_set_blocktime(i4)
+ call kmp_set_blocktime(i8)
+
+ call kmp_set_library(i4)
+ call kmp_set_library(i8)
+
+ call kmp_set_disp_num_buffers(i4)
+ call kmp_set_disp_num_buffers(i8)
+
+ ires = omp_get_ancestor_thread_num(i4)
+ ires = omp_get_ancestor_thread_num(i8)
+
+ ires = omp_get_team_size(i4)
+ ires = omp_get_team_size(i8)
+
+ ires = omp_get_place_num_procs(i4)
+ ires = omp_get_place_num_procs(i8)
+
+ call omp_set_schedule(omp_sched_static, i4)
+ call omp_set_schedule(omp_sched_static, i8)
+
+ call omp_get_schedule(sched_kind, i4)
+ call omp_get_schedule(sched_kind, i8)
+
+ ires = omp_pause_resource(omp_pause_soft, i4)
+ ires = omp_pause_resource(omp_pause_soft, i8)
+
+ call kmp_create_affinity_mask(mask)
+ ires = kmp_set_affinity_mask_proc(i4, mask)
+ ires = kmp_set_affinity_mask_proc(i8, mask)
+
+ ires = kmp_unset_affinity_mask_proc(i4, mask)
+ ires = kmp_unset_affinity_mask_proc(i8, mask)
+
+ ires = kmp_get_affinity_mask_proc(i4, mask)
+ ires = kmp_get_affinity_mask_proc(i8, mask)
+
+ call omp_get_place_proc_ids(i4, ids4)
+ call omp_get_place_proc_ids(i8, ids8)
+
+ call omp_get_partition_place_nums(parts4)
+ call omp_get_partition_place_nums(parts8)
+end program
+
+! CHECK-NOT: not yet implemented: intrinsic:
+
+! CHECK: fir.call @omp_set_num_threads(
+! CHECK: fir.call @omp_set_num_threads_8(
+
+! CHECK: fir.call @omp_set_max_active_levels(
+! CHECK: fir.call @omp_set_max_active_levels_8(
+
+! CHECK: fir.call @omp_set_default_device(
+! CHECK: fir.call @omp_set_default_device_8(
+
+! CHECK: fir.call @omp_set_num_teams(
+! CHECK: fir.call @omp_set_num_teams_8(
+
+! CHECK: fir.call @omp_set_teams_thread_limit(
+! CHECK: fir.call @omp_set_teams_thread_limit_8(
+
+! CHECK: fir.call @kmp_set_stacksize(
+! CHECK: fir.call @kmp_set_stacksize_8(
+
+! CHECK: fir.call @kmp_set_blocktime(
+! CHECK: fir.call @kmp_set_blocktime_8(
+
+! CHECK: fir.call @kmp_set_library(
+! CHECK: fir.call @kmp_set_library_8(
+
+! CHECK: fir.call @kmp_set_disp_num_buffers(
+! CHECK: fir.call @kmp_set_disp_num_buffers_8(
+
+! CHECK: fir.call @omp_get_ancestor_thread_num(
+! CHECK: fir.call @omp_get_ancestor_thread_num_8(
+
+! CHECK: fir.call @omp_get_team_size(
+! CHECK: fir.call @omp_get_team_size_8(
+
+! CHECK: fir.call @omp_get_place_num_procs(
+! CHECK: fir.call @omp_get_place_num_procs_8(
+
+! CHECK: fir.call @omp_set_schedule(
+! CHECK: fir.call @omp_set_schedule_8(
+
+! CHECK: fir.call @omp_get_schedule(
+! CHECK: fir.call @omp_get_schedule_8(
+
+! CHECK: fir.call @omp_pause_resource(
+! CHECK: fir.call @omp_pause_resource_8(
+
+! CHECK: fir.call @kmp_set_affinity_mask_proc(
+! CHECK: fir.call @kmp_set_affinity_mask_proc_8(
+
+! CHECK: fir.call @kmp_unset_affinity_mask_proc(
+! CHECK: fir.call @kmp_unset_affinity_mask_proc_8(
+
+! CHECK: fir.call @kmp_get_affinity_mask_proc(
+! CHECK: fir.call @kmp_get_affinity_mask_proc_8(
+
+! CHECK: fir.call @omp_get_place_proc_ids(
+! CHECK: fir.call @omp_get_place_proc_ids_8(
+
+! CHECK: fir.call @omp_get_partition_place_nums(
+! CHECK: fir.call @omp_get_partition_place_nums_8(
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def b/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
index 8e2a386cf55e9..5caa8e828de38 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
+++ b/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
@@ -237,28 +237,36 @@ __OMP_RTL(omp_get_dynamic, false, Int32, )
__OMP_RTL(omp_get_cancellation, false, Int32, )
__OMP_RTL(omp_get_nested, false, Int32, )
__OMP_RTL(omp_get_schedule, false, Void, Int32Ptr, Int32Ptr)
+__OMP_RTL(omp_get_schedule_8, false, Void, Int32Ptr, Int64Ptr)
__OMP_RTL(omp_get_thread_limit, false, Int32, )
__OMP_RTL(omp_get_supported_active_levels, false, Int32, )
__OMP_RTL(omp_get_max_active_levels, false, Int32, )
__OMP_RTL(omp_get_level, false, Int32, )
__OMP_RTL(omp_get_ancestor_thread_num, false, Int32, Int32)
+__OMP_RTL(omp_get_ancestor_thread_num_8, false, Int32, Int64)
__OMP_RTL(omp_get_team_size, false, Int32, Int32)
+__OMP_RTL(omp_get_team_size_8, false, Int32, Int64)
__OMP_RTL(omp_get_active_level, false, Int32, )
__OMP_RTL(omp_in_final, false, Int32, )
__OMP_RTL(omp_get_proc_bind, false, Int32, )
__OMP_RTL(omp_get_num_places, false, Int32, )
__OMP_RTL(omp_get_num_procs, false, Int32, )
__OMP_RTL(omp_get_place_proc_ids, false, Void, Int32, Int32Ptr)
+__OMP_RTL(omp_get_place_proc_ids_8, false, Void, Int64, Int64Ptr)
__OMP_RTL(omp_get_place_num, false, Int32, )
__OMP_RTL(omp_get_partition_num_places, false, Int32, )
__OMP_RTL(omp_get_partition_place_nums, false, Void, Int32Ptr)
+__OMP_RTL(omp_get_partition_place_nums_8, false, Void, Int64Ptr)
__OMP_RTL(omp_get_wtime, false, Double,)
__OMP_RTL(omp_set_num_threads, false, Void, Int32)
+__OMP_RTL(omp_set_num_threads_8, false, Void, Int64)
__OMP_RTL(omp_set_dynamic, false, Void, Int32)
__OMP_RTL(omp_set_nested, false, Void, Int32)
__OMP_RTL(omp_set_schedule, false, Void, Int32, Int32)
+__OMP_RTL(omp_set_schedule_8, false, Void, Int32, Int64)
__OMP_RTL(omp_set_max_active_levels, false, Void, Int32)
+__OMP_RTL(omp_set_max_active_levels_8, false, Void, Int64)
__OMP_RTL(__kmpc_master, false, Int32, IdentPtr, Int32)
__OMP_RTL(__kmpc_end_master, false, Void, IdentPtr, Int32)
@@ -733,12 +741,18 @@ __OMP_RTL_ATTRS(
omp_get_schedule, GetterArgWriteAttrs, AttributeSet(),
ParamAttrs(AttributeSet(NoCaptureAttr, EnumAttr(WriteOnly)),
AttributeSet(NoCaptureAttr, EnumAttr(WriteOnly))))
+__OMP_RTL_ATTRS(
+ omp_get_schedule_8, GetterArgWriteAttrs, AttributeSet(),
+ ParamAttrs(AttributeSet(NoCaptureAttr, EnumAttr(WriteOnly)),
+ AttributeSet(NoCaptureAttr, EnumAttr(WriteOnly))))
__OMP_RTL_ATTRS(omp_get_thread_limit, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_supported_active_levels, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_max_active_levels, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_level, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_ancestor_thread_num, GetterAttrs, SExt, ParamAttrs(SExt))
+__OMP_RTL_ATTRS(omp_get_ancestor_thread_num_8, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_team_size, GetterAttrs, SExt, ParamAttrs(SExt))
+__OMP_RTL_ATTRS(omp_get_team_size_8, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_active_level, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_in_final, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_proc_bind, GetterAttrs, SExt, ParamAttrs())
@@ -747,20 +761,31 @@ __OMP_RTL_ATTRS(omp_get_num_procs, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_place_proc_ids, GetterArgWriteAttrs, AttributeSet(),
ParamAttrs(SExt, AttributeSet(NoCaptureAttr,
EnumAttr(WriteOnly))))
+__OMP_RTL_ATTRS(omp_get_place_proc_ids_8, GetterArgWriteAttrs, AttributeSet(),
+ ParamAttrs(AttributeSet(),
+ AttributeSet(NoCaptureAttr, EnumAttr(WriteOnly))))
__OMP_RTL_ATTRS(omp_get_place_num, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_partition_num_places, GetterAttrs, SExt, ParamAttrs())
__OMP_RTL_ATTRS(omp_get_partition_place_nums, GetterArgWriteAttrs, AttributeSet(),
ParamAttrs())
+__OMP_RTL_ATTRS(omp_get_partition_place_nums_8, GetterArgWriteAttrs,
+ AttributeSet(), ParamAttrs())
__OMP_RTL_ATTRS(omp_get_wtime, GetterAttrs, AttributeSet(), ParamAttrs())
__OMP_RTL_ATTRS(omp_set_num_threads, SetterAttrs, AttributeSet(),
ParamAttrs(SExt))
+__OMP_RTL_ATTRS(omp_set_num_threads_8, SetterAttrs, AttributeSet(),
+ ParamAttrs())
__OMP_RTL_ATTRS(omp_set_dynamic, SetterAttrs, AttributeSet(), ParamAttrs(SExt))
__OMP_RTL_ATTRS(omp_set_nested, SetterAttrs, AttributeSet(), ParamAttrs(SExt))
__OMP_RTL_ATTRS(omp_set_schedule, SetterAttrs, AttributeSet(),
ParamAttrs(SExt, SExt))
+__OMP_RTL_ATTRS(omp_set_schedule_8, SetterAttrs, AttributeSet(),
+ ParamAttrs(SExt, AttributeSet()))
__OMP_RTL_ATTRS(omp_set_max_active_levels, SetterAttrs, AttributeSet(),
ParamAttrs(SExt))
+__OMP_RTL_ATTRS(omp_set_max_active_levels_8, SetterAttrs, AttributeSet(),
+ ParamAttrs())
__OMP_RTL_ATTRS(__kmpc_master, InaccessibleArgOnlyAttrs, SExt,
ParamAttrs(ReadOnlyPtrAttrs, SExt))
diff --git a/openmp/device/include/Interface.h b/openmp/device/include/Interface.h
index 601694871597b..665f78abe2db8 100644
--- a/openmp/device/include/Interface.h
+++ b/openmp/device/include/Interface.h
@@ -44,6 +44,7 @@ int omp_get_dynamic(void);
///
///{
void omp_set_num_threads(int);
+void omp_set_num_threads_8(int64_t);
int omp_get_max_threads(void);
///}
diff --git a/openmp/device/src/State.cpp b/openmp/device/src/State.cpp
index 779f4d5159311..8c4dc1907dcd8 100644
--- a/openmp/device/src/State.cpp
+++ b/openmp/device/src/State.cpp
@@ -383,6 +383,14 @@ int omp_get_dynamic(void) { return 0; }
void omp_set_num_threads(int V) { icv::NThreads = V; }
+void omp_set_num_threads_8(int64_t V) {
+ if (V > INT32_MAX)
+ V = INT32_MAX;
+ else if (V < INT32_MIN)
+ V = INT32_MIN;
+ omp_set_num_threads((int)V);
+}
+
int omp_get_max_threads(void) {
int NT = icv::NThreads;
return NT > 0 ? NT : mapping::getMaxTeamThreads();
diff --git a/openmp/module/omp_lib.F90.var b/openmp/module/omp_lib.F90.var
index a41b2faad9d3d..10b23f921f009 100644
--- a/openmp/module/omp_lib.F90.var
+++ b/openmp/module/omp_lib.F90.var
@@ -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 omp_set_num_threads_8(num_threads) bind(c)
+ integer (kind=8), value :: num_threads
+ end subroutine omp_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 omp_set_max_active_levels_8(max_levels) bind(c)
+ integer (kind=8), value :: max_levels
+ end subroutine omp_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 omp_get_ancestor_thread_num_8(level) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) omp_get_ancestor_thread_num_8
+ integer (kind=8), value :: level
+ end function omp_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 omp_get_team_size_8(level) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) omp_get_team_size_8
+ integer (kind=8), value :: level
+ end function omp_get_team_size_8
+ end interface omp_get_team_size
+
+ interface omp_set_schedule
+ subroutine omp_set_schedule(kind, chunk_size) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_sched_kind), value :: kind
+ integer (kind=omp_integer_kind), value :: chunk_size
+ end subroutine omp_set_schedule
+
+ subroutine omp_set_schedule_8(kind, chunk_size) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_sched_kind), value :: kind
+ integer (kind=8), value :: chunk_size
+ end subroutine omp_set_schedule_8
+ end interface omp_set_schedule
+
+ interface omp_get_schedule
+ subroutine omp_get_schedule(kind, chunk_size) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_sched_kind) kind
+ integer (kind=omp_integer_kind) chunk_size
+ end subroutine omp_get_schedule
+
+ subroutine omp_get_schedule_8(kind, chunk_size) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_sched_kind) kind
+ integer (kind=8) chunk_size
+ end subroutine omp_get_schedule_8
+ end interface omp_get_schedule
+
+ interface omp_get_place_num_procs
+ function omp_get_place_num_procs(place_num) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: place_num
+ integer (kind=omp_integer_kind) omp_get_place_num_procs
+ end function omp_get_place_num_procs
+
+ function omp_get_place_num_procs_8(place_num) bind(c)
+ use omp_lib_kinds
+ integer (kind=8), value :: place_num
+ integer (kind=omp_integer_kind) omp_get_place_num_procs_8
+ end function omp_get_place_num_procs_8
+ end interface omp_get_place_num_procs
+
+ interface omp_get_place_proc_ids
+ subroutine omp_get_place_proc_ids(place_num, ids) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: place_num
+ integer (kind=omp_integer_kind) ids(*)
+ end subroutine omp_get_place_proc_ids
+
+ subroutine omp_get_place_proc_ids_8(place_num, ids) bind(c)
+ integer (kind=8), value :: place_num
+ integer (kind=8) ids(*)
+ end subroutine omp_get_place_proc_ids_8
+ end interface omp_get_place_proc_ids
+
+ interface omp_get_partition_place_nums
+ subroutine omp_get_partition_place_nums(place_nums) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) place_nums(*)
+ end subroutine omp_get_partition_place_nums
+
+ subroutine omp_get_partition_place_nums_8(place_nums) bind(c)
+ integer (kind=8) place_nums(*)
+ end subroutine omp_get_partition_place_nums_8
+ end interface omp_get_partition_place_nums
+
+ interface omp_set_default_device
+ subroutine omp_set_default_device(device_num) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: device_num
+ end subroutine omp_set_default_device
+
+ subroutine omp_set_default_device_8(device_num) bind(c)
+ integer (kind=8), value :: device_num
+ end subroutine omp_set_default_device_8
+ end interface omp_set_default_device
+
+ interface omp_pause_resource
+ function omp_pause_resource(kind, device_num) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_pause_resource_kind), value :: kind
+ integer (kind=omp_integer_kind), value :: device_num
+ integer (kind=omp_integer_kind) omp_pause_resource
+ end function omp_pause_resource
+
+ function omp_pause_resource_8(kind, device_num) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_pause_resource_kind), value :: kind
+ integer (kind=8), value :: device_num
+ integer (kind=omp_integer_kind) omp_pause_resource_8
+ end function omp_pause_resource_8
+ end interface omp_pause_resource
+
+ interface omp_set_num_teams
+ subroutine omp_set_num_teams(num_teams) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: num_teams
+ end subroutine omp_set_num_teams
+
+ subroutine omp_set_num_teams_8(num_teams) bind(c)
+ integer (kind=8), value :: num_teams
+ end subroutine omp_set_num_teams_8
+ end interface omp_set_num_teams
+
+ interface omp_set_teams_thread_limit
+ subroutine omp_set_teams_thread_limit(thread_limit) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: thread_limit
+ end subroutine omp_set_teams_thread_limit
+
+ subroutine omp_set_teams_thread_limit_8(thread_limit) bind(c)
+ integer (kind=8), value :: thread_limit
+ end subroutine omp_set_teams_thread_limit_8
+ end interface omp_set_teams_thread_limit
+
+ interface
+
subroutine omp_set_dynamic(dynamic_threads) bind(c)
use omp_lib_kinds
logical (kind=omp_logical_kind), value :: dynamic_threads
@@ -310,11 +471,6 @@
integer (kind=omp_integer_kind) omp_get_thread_limit
end function omp_get_thread_limit
- 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
-
function omp_get_max_active_levels() bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind) omp_get_max_active_levels
@@ -330,30 +486,6 @@
integer (kind=omp_integer_kind) omp_get_active_level
end function omp_get_active_level
- 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 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
-
- subroutine omp_set_schedule(kind, chunk_size) bind(c)
- use omp_lib_kinds
- integer (kind=omp_sched_kind), value :: kind
- integer (kind=omp_integer_kind), value :: chunk_size
- end subroutine omp_set_schedule
-
- subroutine omp_get_schedule(kind, chunk_size) bind(c)
- use omp_lib_kinds
- integer (kind=omp_sched_kind) kind
- integer (kind=omp_integer_kind) chunk_size
- end subroutine omp_get_schedule
-
function omp_get_proc_bind() bind(c)
use omp_lib_kinds
integer (kind=omp_proc_bind_kind) omp_get_proc_bind
@@ -364,18 +496,6 @@
integer (kind=omp_integer_kind) omp_get_num_places
end function omp_get_num_places
- function omp_get_place_num_procs(place_num) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: place_num
- integer (kind=omp_integer_kind) omp_get_place_num_procs
- end function omp_get_place_num_procs
-
- subroutine omp_get_place_proc_ids(place_num, ids) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: place_num
- integer (kind=omp_integer_kind) ids(*)
- end subroutine omp_get_place_proc_ids
-
function omp_get_place_num() bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind) omp_get_place_num
@@ -386,11 +506,6 @@
integer (kind=omp_integer_kind) omp_get_partition_num_places
end function omp_get_partition_num_places
- subroutine omp_get_partition_place_nums(place_nums) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind) place_nums(*)
- end subroutine omp_get_partition_place_nums
-
function omp_get_wtime() bind(c)
use omp_lib_kinds
real (kind=kmp_double_kind) omp_get_wtime
@@ -406,11 +521,6 @@
integer (kind=omp_integer_kind) omp_get_default_device
end function omp_get_default_device
- subroutine omp_set_default_device(device_num) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: device_num
- end subroutine omp_set_default_device
-
function omp_get_num_devices() bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind) omp_get_num_devices
@@ -446,13 +556,6 @@
integer (kind=omp_integer_kind) omp_get_device_num
end function omp_get_device_num
- function omp_pause_resource(kind, device_num) bind(c)
- use omp_lib_kinds
- integer (kind=omp_pause_resource_kind), value :: kind
- integer (kind=omp_integer_kind), value :: device_num
- integer (kind=omp_integer_kind) omp_pause_resource
- end function omp_pause_resource
-
function omp_pause_resource_all(kind) bind(c)
use omp_lib_kinds
integer (kind=omp_pause_resource_kind), value :: kind
@@ -640,21 +743,12 @@
integer (kind=kmp_size_t_kind) :: omp_capture_affinity
end function omp_capture_affinity
- subroutine omp_set_num_teams(num_teams) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: num_teams
- end subroutine omp_set_num_teams
function omp_get_max_teams() bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind) omp_get_max_teams
end function omp_get_max_teams
- subroutine omp_set_teams_thread_limit(thread_limit) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: thread_limit
- end subroutine omp_set_teams_thread_limit
-
function omp_get_teams_thread_limit() bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind) omp_get_teams_thread_limit
@@ -932,26 +1026,113 @@
integer, intent(in) :: num_resources
integer, intent(in) :: resources(*)
end function omp_get_submemspace
+ end interface
! ***
! *** kmp_* entry points
! ***
+ interface kmp_set_stacksize
subroutine kmp_set_stacksize(size) bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind), value :: size
end subroutine kmp_set_stacksize
- subroutine kmp_set_stacksize_s(size) bind(c)
- use omp_lib_kinds
- integer (kind=kmp_size_t_kind), value :: size
- end subroutine kmp_set_stacksize_s
+ subroutine kmp_set_stacksize_8(size) bind(c)
+ integer (kind=8), value :: size
+ end subroutine kmp_set_stacksize_8
+ end interface kmp_set_stacksize
+ interface kmp_set_blocktime
subroutine kmp_set_blocktime(msec) bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind), value :: msec
end subroutine kmp_set_blocktime
+ subroutine kmp_set_blocktime_8(msec) bind(c)
+ integer (kind=8), value :: msec
+ end subroutine kmp_set_blocktime_8
+ end interface kmp_set_blocktime
+
+ interface kmp_set_library
+ subroutine kmp_set_library(libnum) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: libnum
+ end subroutine kmp_set_library
+
+ subroutine kmp_set_library_8(libnum) bind(c)
+ integer (kind=8), value :: libnum
+ end subroutine kmp_set_library_8
+ end interface kmp_set_library
+
+ interface kmp_set_disp_num_buffers
+ subroutine kmp_set_disp_num_buffers(num) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind), value :: num
+ end subroutine kmp_set_disp_num_buffers
+
+ subroutine kmp_set_disp_num_buffers_8(num) bind(c)
+ integer (kind=8), value :: num
+ end subroutine kmp_set_disp_num_buffers_8
+ end interface kmp_set_disp_num_buffers
+
+ interface kmp_set_affinity_mask_proc
+ function kmp_set_affinity_mask_proc(proc, mask) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
+ integer (kind=omp_integer_kind), value :: proc
+ integer (kind=kmp_affinity_mask_kind) mask
+ end function kmp_set_affinity_mask_proc
+
+ function kmp_set_affinity_mask_proc_8(proc, mask) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc_8
+ integer (kind=8), value :: proc
+ integer (kind=kmp_affinity_mask_kind) mask
+ end function kmp_set_affinity_mask_proc_8
+ end interface kmp_set_affinity_mask_proc
+
+ interface kmp_unset_affinity_mask_proc
+ function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
+ integer (kind=omp_integer_kind), value :: proc
+ integer (kind=kmp_affinity_mask_kind) mask
+ end function kmp_unset_affinity_mask_proc
+
+ function kmp_unset_affinity_mask_proc_8(proc, mask) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc_8
+ integer (kind=8), value :: proc
+ integer (kind=kmp_affinity_mask_kind) mask
+ end function kmp_unset_affinity_mask_proc_8
+ end interface kmp_unset_affinity_mask_proc
+
+ interface kmp_get_affinity_mask_proc
+ function kmp_get_affinity_mask_proc(proc, mask) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
+ integer (kind=omp_integer_kind), value :: proc
+ integer (kind=kmp_affinity_mask_kind) mask
+ end function kmp_get_affinity_mask_proc
+
+ function kmp_get_affinity_mask_proc_8(proc, mask) bind(c)
+ use omp_lib_kinds
+ integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc_8
+ integer (kind=8), value :: proc
+ integer (kind=kmp_affinity_mask_kind) mask
+ end function kmp_get_affinity_mask_proc_8
+ end interface kmp_get_affinity_mask_proc
+
+ interface
+ subroutine kmp_set_stacksize_s(size) bind(c)
+ use omp_lib_kinds
+ integer (kind=kmp_size_t_kind), value :: size
+ end subroutine kmp_set_stacksize_s
+ end interface
+
+ interface
+
subroutine kmp_set_library_serial() bind(c)
end subroutine kmp_set_library_serial
@@ -960,12 +1141,9 @@
subroutine kmp_set_library_throughput() bind(c)
end subroutine kmp_set_library_throughput
+ end interface
- subroutine kmp_set_library(libnum) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: libnum
- end subroutine kmp_set_library
-
+ interface
subroutine kmp_set_defaults(string)
character (len=*) :: string
end subroutine kmp_set_defaults
@@ -989,12 +1167,9 @@
use omp_lib_kinds
integer (kind=omp_integer_kind) kmp_get_library
end function kmp_get_library
+ end interface
- subroutine kmp_set_disp_num_buffers(num) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind), value :: num
- end subroutine kmp_set_disp_num_buffers
-
+ interface
function kmp_set_affinity(mask) bind(c)
use omp_lib_kinds
integer (kind=omp_integer_kind) kmp_set_affinity
@@ -1021,28 +1196,9 @@
use omp_lib_kinds
integer (kind=kmp_affinity_mask_kind) mask
end subroutine kmp_destroy_affinity_mask
+ end interface
- function kmp_set_affinity_mask_proc(proc, mask) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
- integer (kind=omp_integer_kind), value :: proc
- integer (kind=kmp_affinity_mask_kind) mask
- end function kmp_set_affinity_mask_proc
-
- function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
- integer (kind=omp_integer_kind), value :: proc
- integer (kind=kmp_affinity_mask_kind) mask
- end function kmp_unset_affinity_mask_proc
-
- function kmp_get_affinity_mask_proc(proc, mask) bind(c)
- use omp_lib_kinds
- integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
- integer (kind=omp_integer_kind), value :: proc
- integer (kind=kmp_affinity_mask_kind) mask
- end function kmp_get_affinity_mask_proc
-
+ interface
function kmp_malloc(size) bind(c)
use omp_lib_kinds
integer (kind=kmp_pointer_kind) kmp_malloc
@@ -1152,6 +1308,7 @@
! make the above routine definitions public
public :: omp_set_num_threads
+ public :: omp_set_num_threads_8
public :: omp_set_dynamic
public :: omp_set_nested
public :: omp_get_num_threads
@@ -1164,24 +1321,33 @@
public :: omp_get_nested
public :: omp_get_thread_limit
public :: omp_set_max_active_levels
+ public :: omp_set_max_active_levels_8
public :: omp_get_max_active_levels
public :: omp_get_level
public :: omp_get_active_level
public :: omp_get_ancestor_thread_num
+ public :: omp_get_ancestor_thread_num_8
public :: omp_get_team_size
+ public :: omp_get_team_size_8
public :: omp_set_schedule
+ public :: omp_set_schedule_8
public :: omp_get_schedule
+ public :: omp_get_schedule_8
public :: omp_get_proc_bind
public :: omp_get_num_places
public :: omp_get_place_num_procs
+ public :: omp_get_place_num_procs_8
public :: omp_get_place_proc_ids
+ public :: omp_get_place_proc_ids_8
public :: omp_get_place_num
public :: omp_get_partition_num_places
public :: omp_get_partition_place_nums
+ public :: omp_get_partition_place_nums_8
public :: omp_get_wtime
public :: omp_get_wtick
public :: omp_get_default_device
public :: omp_set_default_device
+ public :: omp_set_default_device_8
public :: omp_get_num_devices
public :: omp_get_num_teams
public :: omp_get_team_num
@@ -1190,6 +1356,7 @@
public :: omp_get_initial_device
public :: omp_get_device_num
public :: omp_pause_resource
+ public :: omp_pause_resource_8
public :: omp_pause_resource_all
public :: omp_get_supported_active_levels
public :: omp_fulfill_event
@@ -1216,8 +1383,10 @@
public :: omp_display_affinity
public :: omp_capture_affinity
public :: omp_set_num_teams
+ public :: omp_set_num_teams_8
public :: omp_get_max_teams
public :: omp_set_teams_thread_limit
+ public :: omp_set_teams_thread_limit_8
public :: omp_get_teams_thread_limit
public :: omp_display_env
public :: omp_target_alloc
@@ -1241,26 +1410,33 @@
public :: omp_free
public :: omp_in_explicit_task
public :: kmp_set_stacksize
+ public :: kmp_set_stacksize_8
public :: kmp_set_stacksize_s
public :: kmp_set_blocktime
+ public :: kmp_set_blocktime_8
public :: kmp_set_library_serial
public :: kmp_set_library_turnaround
public :: kmp_set_library_throughput
public :: kmp_set_library
+ public :: kmp_set_library_8
public :: kmp_set_defaults
public :: kmp_get_stacksize
public :: kmp_get_stacksize_s
public :: kmp_get_blocktime
public :: kmp_get_library
public :: kmp_set_disp_num_buffers
+ public :: kmp_set_disp_num_buffers_8
public :: kmp_set_affinity
public :: kmp_get_affinity
public :: kmp_get_affinity_max_proc
public :: kmp_create_affinity_mask
public :: kmp_destroy_affinity_mask
public :: kmp_set_affinity_mask_proc
+ public :: kmp_set_affinity_mask_proc_8
public :: kmp_unset_affinity_mask_proc
+ public :: kmp_unset_affinity_mask_proc_8
public :: kmp_get_affinity_mask_proc
+ public :: kmp_get_affinity_mask_proc_8
public :: kmp_malloc
public :: kmp_aligned_malloc
public :: kmp_calloc
diff --git a/openmp/runtime/src/dllexports b/openmp/runtime/src/dllexports
index 8a70f8bc6d20c..3162246c9ab13 100644
--- a/openmp/runtime/src/dllexports
+++ b/openmp/runtime/src/dllexports
@@ -428,6 +428,7 @@ omp_set_lock 714
omp_set_nest_lock 715
omp_set_nested 716
omp_set_num_threads 717
+omp_set_num_threads_8 824
omp_test_lock 718
omp_test_nest_lock 719
omp_unset_lock 720
@@ -436,6 +437,28 @@ omp_unset_nest_lock 721
ompc_set_dynamic 722
ompc_set_nested 723
ompc_set_num_threads 724
+ompc_set_num_threads_8 825
+
+# 64-bit integer variants used by Fortran and language bindings.
+kmp_get_affinity_mask_proc_8 826
+kmp_set_affinity_mask_proc_8 827
+kmp_set_blocktime_8 828
+kmp_set_disp_num_buffers_8 829
+kmp_set_library_8 830
+kmp_set_stacksize_8 831
+kmp_unset_affinity_mask_proc_8 832
+omp_get_ancestor_thread_num_8 833
+omp_get_partition_place_nums_8 834
+omp_get_place_num_procs_8 835
+omp_get_schedule_8 836
+omp_get_team_size_8 837
+omp_pause_resource_8 838
+omp_set_default_device_8 839
+omp_set_max_active_levels_8 840
+omp_set_num_teams_8 841
+omp_set_schedule_8 842
+omp_set_teams_thread_limit_8 843
+omp_get_place_proc_ids_8 844
kmp_calloc 725
kmp_free 726
diff --git a/openmp/runtime/src/include/omp.h.var b/openmp/runtime/src/include/omp.h.var
index edea72235f8e4..1c2fa033a48b7 100644
--- a/openmp/runtime/src/include/omp.h.var
+++ b/openmp/runtime/src/include/omp.h.var
@@ -62,10 +62,13 @@
/* set API functions */
extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int);
+ extern void __KAI_KMPC_CONVENTION omp_set_num_threads_8 (int64_t);
extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int);
extern void __KAI_KMPC_CONVENTION omp_set_nested (int);
extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int);
+ extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels_8 (int64_t);
extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int);
+ extern void __KAI_KMPC_CONVENTION omp_set_schedule_8 (omp_sched_t, int64_t);
/* query API functions */
extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void);
@@ -79,10 +82,13 @@
extern int __KAI_KMPC_CONVENTION omp_get_active_level (void);
extern int __KAI_KMPC_CONVENTION omp_get_level (void);
extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int);
+ extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num_8 (int64_t);
extern int __KAI_KMPC_CONVENTION omp_get_team_size (int);
+ extern int __KAI_KMPC_CONVENTION omp_get_team_size_8 (int64_t);
extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void);
extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void);
extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *);
+ extern void __KAI_KMPC_CONVENTION omp_get_schedule_8 (omp_sched_t *, int64_t *);
extern int __KAI_KMPC_CONVENTION omp_get_max_task_priority (void);
/* lock API functions */
@@ -138,6 +144,7 @@
/* OpenMP 4.0 */
extern int __KAI_KMPC_CONVENTION omp_get_default_device (void);
extern void __KAI_KMPC_CONVENTION omp_set_default_device (int);
+ extern void __KAI_KMPC_CONVENTION omp_set_default_device_8 (int64_t);
extern int __KAI_KMPC_CONVENTION omp_is_initial_device (void);
extern int __KAI_KMPC_CONVENTION omp_get_num_devices (void);
extern int __KAI_KMPC_CONVENTION omp_get_num_teams (void);
@@ -259,17 +266,21 @@
/* kmp API functions */
extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void);
extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int);
+ extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_8 (int64_t);
extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void);
extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t);
extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void);
extern int __KAI_KMPC_CONVENTION kmp_get_library (void);
extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int);
+ extern void __KAI_KMPC_CONVENTION kmp_set_blocktime_8 (int64_t);
extern void __KAI_KMPC_CONVENTION kmp_set_library (int);
+ extern void __KAI_KMPC_CONVENTION kmp_set_library_8 (int64_t);
extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void);
extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void);
extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void);
extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *);
extern void __KAI_KMPC_CONVENTION kmp_set_disp_num_buffers (int);
+ extern void __KAI_KMPC_CONVENTION kmp_set_disp_num_buffers_8 (int64_t);
/* Intel affinity API */
typedef void * kmp_affinity_mask_t;
@@ -280,8 +291,11 @@
extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *);
extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *);
extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *);
+ extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc_8 (int64_t, kmp_affinity_mask_t *);
extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *);
+ extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc_8 (int64_t, kmp_affinity_mask_t *);
extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *);
+ extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc_8 (int64_t, kmp_affinity_mask_t *);
/* OpenMP 4.0 affinity API */
typedef enum omp_proc_bind_t {
@@ -297,10 +311,13 @@
/* OpenMP 4.5 affinity API */
extern int __KAI_KMPC_CONVENTION omp_get_num_places (void);
extern int __KAI_KMPC_CONVENTION omp_get_place_num_procs (int);
+ extern int __KAI_KMPC_CONVENTION omp_get_place_num_procs_8 (int64_t);
extern void __KAI_KMPC_CONVENTION omp_get_place_proc_ids (int, int *);
+ extern void __KAI_KMPC_CONVENTION omp_get_place_proc_ids_8 (int64_t, int64_t *);
extern int __KAI_KMPC_CONVENTION omp_get_place_num (void);
extern int __KAI_KMPC_CONVENTION omp_get_partition_num_places (void);
extern void __KAI_KMPC_CONVENTION omp_get_partition_place_nums (int *);
+ extern void __KAI_KMPC_CONVENTION omp_get_partition_place_nums_8 (int64_t *);
extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t);
extern void * __KAI_KMPC_CONVENTION kmp_aligned_malloc (size_t, size_t);
@@ -533,14 +550,17 @@
omp_pause_stop_tool = 3
} omp_pause_resource_t;
extern int __KAI_KMPC_CONVENTION omp_pause_resource(omp_pause_resource_t, int);
+ extern int __KAI_KMPC_CONVENTION omp_pause_resource_8(omp_pause_resource_t, int64_t);
extern int __KAI_KMPC_CONVENTION omp_pause_resource_all(omp_pause_resource_t);
extern int __KAI_KMPC_CONVENTION omp_get_supported_active_levels(void);
/* OpenMP 5.1 */
extern void __KAI_KMPC_CONVENTION omp_set_num_teams(int num_teams);
+ extern void __KAI_KMPC_CONVENTION omp_set_num_teams_8(int64_t num_teams);
extern int __KAI_KMPC_CONVENTION omp_get_max_teams(void);
extern void __KAI_KMPC_CONVENTION omp_set_teams_thread_limit(int limit);
+ extern void __KAI_KMPC_CONVENTION omp_set_teams_thread_limit_8(int64_t limit);
extern int __KAI_KMPC_CONVENTION omp_get_teams_thread_limit(void);
/* OpenMP 5.1 Display Environment */
diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index 818e07c2bb23f..3342e71a55a1d 100644
--- a/openmp/runtime/src/kmp.h
+++ b/openmp/runtime/src/kmp.h
@@ -4100,6 +4100,7 @@ void kmpc_set_blocktime(int arg);
void ompc_set_nested(int flag);
void ompc_set_dynamic(int flag);
void ompc_set_num_threads(int arg);
+void ompc_set_num_threads_8(kmp_int64 arg);
extern void __kmp_push_current_task_to_thread(kmp_info_t *this_thr,
kmp_team_t *team, int tid);
diff --git a/openmp/runtime/src/kmp_csupport.cpp b/openmp/runtime/src/kmp_csupport.cpp
index 8aa9a9caa924b..e33d7a073ec71 100644
--- a/openmp/runtime/src/kmp_csupport.cpp
+++ b/openmp/runtime/src/kmp_csupport.cpp
@@ -2040,6 +2040,14 @@ void ompc_set_num_threads(int arg) {
__kmp_set_num_threads(arg, __kmp_entry_gtid());
}
+void ompc_set_num_threads_8(kmp_int64 arg) {
+ if (arg > (kmp_int64)INT_MAX)
+ arg = INT_MAX;
+ else if (arg < (kmp_int64)INT_MIN)
+ arg = INT_MIN;
+ __kmp_set_num_threads((int)arg, __kmp_entry_gtid());
+}
+
void ompc_set_dynamic(int flag) {
kmp_info_t *thread;
diff --git a/openmp/runtime/src/kmp_ftn_entry.h b/openmp/runtime/src/kmp_ftn_entry.h
index 1c8e568b78407..2fc2d3858b47b 100644
--- a/openmp/runtime/src/kmp_ftn_entry.h
+++ b/openmp/runtime/src/kmp_ftn_entry.h
@@ -54,10 +54,20 @@ extern "C" {
// This macro helps to reduce code duplication.
#ifdef PASS_ARGS_BY_VALUE
#define KMP_DEREF
+#define KMP_FTN_PASS(x) (x)
#else
#define KMP_DEREF *
+#define KMP_FTN_PASS(x) (&(x))
#endif
+static int __kmp_ftn_int64_to_int(kmp_int64 value) {
+ if (value > (kmp_int64)INT_MAX)
+ return INT_MAX;
+ if (value < (kmp_int64)INT_MIN)
+ return INT_MIN;
+ return (int)value;
+}
+
// For API with specific C vs. Fortran interfaces (ompc_* exists in
// kmp_csupport.cpp), only create GOMP versioned symbols of the API for the
// APPEND Fortran entries in this file. The GOMP versioned symbols of the C API
@@ -77,6 +87,11 @@ void FTN_STDCALL FTN_SET_STACKSIZE(int KMP_DEREF arg) {
#endif
}
+void FTN_STDCALL FTN_SET_STACKSIZE_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ FTN_SET_STACKSIZE(KMP_FTN_PASS(arg32));
+}
+
void FTN_STDCALL FTN_SET_STACKSIZE_S(size_t KMP_DEREF arg) {
#ifdef KMP_STUB
__kmps_set_stacksize(KMP_DEREF arg);
@@ -124,6 +139,11 @@ void FTN_STDCALL FTN_SET_BLOCKTIME(int KMP_DEREF arg) {
#endif
}
+void FTN_STDCALL FTN_SET_BLOCKTIME_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ FTN_SET_BLOCKTIME(KMP_FTN_PASS(arg32));
+}
+
// Gets blocktime in units used for KMP_BLOCKTIME, ms otherwise
int FTN_STDCALL FTN_GET_BLOCKTIME(void) {
#ifdef KMP_STUB
@@ -198,6 +218,11 @@ void FTN_STDCALL FTN_SET_LIBRARY(int KMP_DEREF arg) {
#endif
}
+void FTN_STDCALL FTN_SET_LIBRARY_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ FTN_SET_LIBRARY(KMP_FTN_PASS(arg32));
+}
+
int FTN_STDCALL FTN_GET_LIBRARY(void) {
#ifdef KMP_STUB
return __kmps_get_library();
@@ -223,6 +248,11 @@ void FTN_STDCALL FTN_SET_DISP_NUM_BUFFERS(int KMP_DEREF arg) {
#endif
}
+void FTN_STDCALL FTN_SET_DISP_NUM_BUFFERS_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ FTN_SET_DISP_NUM_BUFFERS(KMP_FTN_PASS(arg32));
+}
+
int FTN_STDCALL FTN_SET_AFFINITY(void **mask) {
#if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
return -1;
@@ -314,6 +344,12 @@ int FTN_STDCALL FTN_SET_AFFINITY_MASK_PROC(int KMP_DEREF proc, void **mask) {
#endif
}
+int FTN_STDCALL FTN_SET_AFFINITY_MASK_PROC_8(kmp_int64 KMP_DEREF proc,
+ void **mask) {
+ int proc32 = __kmp_ftn_int64_to_int(KMP_DEREF proc);
+ return FTN_SET_AFFINITY_MASK_PROC(KMP_FTN_PASS(proc32), mask);
+}
+
int FTN_STDCALL FTN_UNSET_AFFINITY_MASK_PROC(int KMP_DEREF proc, void **mask) {
#if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
return -1;
@@ -326,6 +362,12 @@ int FTN_STDCALL FTN_UNSET_AFFINITY_MASK_PROC(int KMP_DEREF proc, void **mask) {
#endif
}
+int FTN_STDCALL FTN_UNSET_AFFINITY_MASK_PROC_8(kmp_int64 KMP_DEREF proc,
+ void **mask) {
+ int proc32 = __kmp_ftn_int64_to_int(KMP_DEREF proc);
+ return FTN_UNSET_AFFINITY_MASK_PROC(KMP_FTN_PASS(proc32), mask);
+}
+
int FTN_STDCALL FTN_GET_AFFINITY_MASK_PROC(int KMP_DEREF proc, void **mask) {
#if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
return -1;
@@ -338,6 +380,12 @@ int FTN_STDCALL FTN_GET_AFFINITY_MASK_PROC(int KMP_DEREF proc, void **mask) {
#endif
}
+int FTN_STDCALL FTN_GET_AFFINITY_MASK_PROC_8(kmp_int64 KMP_DEREF proc,
+ void **mask) {
+ int proc32 = __kmp_ftn_int64_to_int(KMP_DEREF proc);
+ return FTN_GET_AFFINITY_MASK_PROC(KMP_FTN_PASS(proc32), mask);
+}
+
/* ------------------------------------------------------------------------ */
/* sets the requested number of threads for the next parallel region */
@@ -349,6 +397,12 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_NUM_THREADS)(int KMP_DEREF arg) {
#endif
}
+/* Same as omp_set_num_threads, but accepts a 64-bit integer argument. */
+void FTN_STDCALL FTN_SET_NUM_THREADS_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ KMP_EXPAND_NAME(FTN_SET_NUM_THREADS)(KMP_FTN_PASS(arg32));
+}
+
/* returns the number of threads in current team */
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_THREADS)(void) {
#ifdef KMP_STUB
@@ -851,6 +905,12 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_SCHEDULE)(kmp_sched_t KMP_DEREF kind,
#endif
}
+void FTN_STDCALL FTN_SET_SCHEDULE_8(kmp_sched_t KMP_DEREF kind,
+ kmp_int64 KMP_DEREF modifier) {
+ int modifier32 = __kmp_ftn_int64_to_int(KMP_DEREF modifier);
+ KMP_EXPAND_NAME(FTN_SET_SCHEDULE)(kind, KMP_FTN_PASS(modifier32));
+}
+
void FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_SCHEDULE)(kmp_sched_t *kind,
int *modifier) {
#ifdef KMP_STUB
@@ -861,6 +921,12 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_SCHEDULE)(kmp_sched_t *kind,
#endif
}
+void FTN_STDCALL FTN_GET_SCHEDULE_8(kmp_sched_t *kind, kmp_int64 *modifier) {
+ int modifier32;
+ KMP_EXPAND_NAME(FTN_GET_SCHEDULE)(kind, &modifier32);
+ *modifier = modifier32;
+}
+
void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_MAX_ACTIVE_LEVELS)(int KMP_DEREF arg) {
#ifdef KMP_STUB
// Nothing.
@@ -870,6 +936,11 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_MAX_ACTIVE_LEVELS)(int KMP_DEREF arg) {
#endif
}
+void FTN_STDCALL FTN_SET_MAX_ACTIVE_LEVELS_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ KMP_EXPAND_NAME(FTN_SET_MAX_ACTIVE_LEVELS)(KMP_FTN_PASS(arg32));
+}
+
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_MAX_ACTIVE_LEVELS)(void) {
#ifdef KMP_STUB
return 0;
@@ -909,6 +980,11 @@ KMP_EXPAND_NAME(FTN_GET_ANCESTOR_THREAD_NUM)(int KMP_DEREF level) {
#endif
}
+int FTN_STDCALL FTN_GET_ANCESTOR_THREAD_NUM_8(kmp_int64 KMP_DEREF level) {
+ int level32 = __kmp_ftn_int64_to_int(KMP_DEREF level);
+ return KMP_EXPAND_NAME(FTN_GET_ANCESTOR_THREAD_NUM)(KMP_FTN_PASS(level32));
+}
+
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_TEAM_SIZE)(int KMP_DEREF level) {
#ifdef KMP_STUB
return (KMP_DEREF level) ? (-1) : (1);
@@ -917,6 +993,11 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_TEAM_SIZE)(int KMP_DEREF level) {
#endif
}
+int FTN_STDCALL FTN_GET_TEAM_SIZE_8(kmp_int64 KMP_DEREF level) {
+ int level32 = __kmp_ftn_int64_to_int(KMP_DEREF level);
+ return KMP_EXPAND_NAME(FTN_GET_TEAM_SIZE)(KMP_FTN_PASS(level32));
+}
+
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_THREAD_LIMIT)(void) {
#ifdef KMP_STUB
return 1; // TO DO: clarify whether it returns 1 or 0?
@@ -1010,6 +1091,11 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_PLACE_NUM_PROCS)(int place_num) {
#endif
}
+int FTN_STDCALL FTN_GET_PLACE_NUM_PROCS_8(kmp_int64 KMP_DEREF place_num) {
+ return KMP_EXPAND_NAME(FTN_GET_PLACE_NUM_PROCS)(
+ __kmp_ftn_int64_to_int(KMP_DEREF place_num));
+}
+
void FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_PLACE_PROC_IDS)(int place_num,
int *ids) {
#if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
@@ -1043,6 +1129,22 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_PLACE_PROC_IDS)(int place_num,
#endif
}
+void FTN_STDCALL FTN_GET_PLACE_PROC_IDS_8(kmp_int64 KMP_DEREF place_num,
+ kmp_int64 *ids) {
+ int place_num32 = __kmp_ftn_int64_to_int(KMP_DEREF place_num);
+ int n = KMP_EXPAND_NAME(FTN_GET_PLACE_NUM_PROCS)(place_num32);
+ int *ids32;
+ if (n <= 0)
+ return;
+ ids32 = (int *)KMP_INTERNAL_MALLOC(sizeof(int) * n);
+ if (ids32 == NULL)
+ return;
+ KMP_EXPAND_NAME(FTN_GET_PLACE_PROC_IDS)(place_num32, ids32);
+ for (int i = 0; i < n; ++i)
+ ids[i] = ids32[i];
+ KMP_INTERNAL_FREE(ids32);
+}
+
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_PLACE_NUM)(void) {
#if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
return -1;
@@ -1127,6 +1229,20 @@ KMP_EXPAND_NAME(FTN_GET_PARTITION_PLACE_NUMS)(int *place_nums) {
#endif
}
+void FTN_STDCALL FTN_GET_PARTITION_PLACE_NUMS_8(kmp_int64 *place_nums) {
+ int n = KMP_EXPAND_NAME(FTN_GET_PARTITION_NUM_PLACES)();
+ int *place_nums32;
+ if (n <= 0)
+ return;
+ place_nums32 = (int *)KMP_INTERNAL_MALLOC(sizeof(int) * n);
+ if (place_nums32 == NULL)
+ return;
+ KMP_EXPAND_NAME(FTN_GET_PARTITION_PLACE_NUMS)(place_nums32);
+ for (int i = 0; i < n; ++i)
+ place_nums[i] = place_nums32[i];
+ KMP_INTERNAL_FREE(place_nums32);
+}
+
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_TEAMS)(void) {
#ifdef KMP_STUB
return 1;
@@ -1160,6 +1276,11 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_DEFAULT_DEVICE)(int KMP_DEREF arg) {
#endif
}
+void FTN_STDCALL FTN_SET_DEFAULT_DEVICE_8(kmp_int64 KMP_DEREF arg) {
+ int arg32 = __kmp_ftn_int64_to_int(KMP_DEREF arg);
+ KMP_EXPAND_NAME(FTN_SET_DEFAULT_DEVICE)(KMP_FTN_PASS(arg32));
+}
+
// Get number of NON-HOST devices.
// libomptarget, if loaded, provides this function in api.cpp.
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_DEVICES)(void)
@@ -1598,6 +1719,12 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_PAUSE_RESOURCE)(kmp_pause_status_t kind,
#endif
}
+int FTN_STDCALL FTN_PAUSE_RESOURCE_8(kmp_pause_status_t kind,
+ kmp_int64 KMP_DEREF device_num) {
+ return KMP_EXPAND_NAME(FTN_PAUSE_RESOURCE)(
+ kind, __kmp_ftn_int64_to_int(KMP_DEREF device_num));
+}
+
// Compiler will ensure that this is only called from host in sequential region
int FTN_STDCALL
KMP_EXPAND_NAME(FTN_PAUSE_RESOURCE_ALL)(kmp_pause_status_t kind) {
@@ -1653,6 +1780,11 @@ void FTN_STDCALL FTN_SET_NUM_TEAMS(int KMP_DEREF num_teams) {
#endif
}
+void FTN_STDCALL FTN_SET_NUM_TEAMS_8(kmp_int64 KMP_DEREF num_teams) {
+ int num_teams32 = __kmp_ftn_int64_to_int(KMP_DEREF num_teams);
+ FTN_SET_NUM_TEAMS(KMP_FTN_PASS(num_teams32));
+}
+
int FTN_STDCALL FTN_GET_MAX_TEAMS(void) {
#ifdef KMP_STUB
return 1;
@@ -1689,6 +1821,11 @@ void FTN_STDCALL FTN_SET_TEAMS_THREAD_LIMIT(int KMP_DEREF limit) {
#endif
}
+void FTN_STDCALL FTN_SET_TEAMS_THREAD_LIMIT_8(kmp_int64 KMP_DEREF limit) {
+ int limit32 = __kmp_ftn_int64_to_int(KMP_DEREF limit);
+ FTN_SET_TEAMS_THREAD_LIMIT(KMP_FTN_PASS(limit32));
+}
+
int FTN_STDCALL FTN_GET_TEAMS_THREAD_LIMIT(void) {
#ifdef KMP_STUB
return 1;
diff --git a/openmp/runtime/src/kmp_ftn_os.h b/openmp/runtime/src/kmp_ftn_os.h
index c439a058f22b4..8c8a3c1fdd288 100644
--- a/openmp/runtime/src/kmp_ftn_os.h
+++ b/openmp/runtime/src/kmp_ftn_os.h
@@ -21,26 +21,33 @@
#if KMP_FTN_ENTRIES == KMP_FTN_PLAIN
#define FTN_SET_STACKSIZE kmp_set_stacksize
+#define FTN_SET_STACKSIZE_8 kmp_set_stacksize_8
#define FTN_SET_STACKSIZE_S kmp_set_stacksize_s
#define FTN_GET_STACKSIZE kmp_get_stacksize
#define FTN_GET_STACKSIZE_S kmp_get_stacksize_s
#define FTN_SET_BLOCKTIME kmp_set_blocktime
+#define FTN_SET_BLOCKTIME_8 kmp_set_blocktime_8
#define FTN_GET_BLOCKTIME kmp_get_blocktime
#define FTN_SET_LIBRARY_SERIAL kmp_set_library_serial
#define FTN_SET_LIBRARY_TURNAROUND kmp_set_library_turnaround
#define FTN_SET_LIBRARY_THROUGHPUT kmp_set_library_throughput
#define FTN_SET_LIBRARY kmp_set_library
+#define FTN_SET_LIBRARY_8 kmp_set_library_8
#define FTN_GET_LIBRARY kmp_get_library
#define FTN_SET_DEFAULTS kmp_set_defaults
#define FTN_SET_DISP_NUM_BUFFERS kmp_set_disp_num_buffers
+#define FTN_SET_DISP_NUM_BUFFERS_8 kmp_set_disp_num_buffers_8
#define FTN_SET_AFFINITY kmp_set_affinity
#define FTN_GET_AFFINITY kmp_get_affinity
#define FTN_GET_AFFINITY_MAX_PROC kmp_get_affinity_max_proc
#define FTN_CREATE_AFFINITY_MASK kmp_create_affinity_mask
#define FTN_DESTROY_AFFINITY_MASK kmp_destroy_affinity_mask
#define FTN_SET_AFFINITY_MASK_PROC kmp_set_affinity_mask_proc
+#define FTN_SET_AFFINITY_MASK_PROC_8 kmp_set_affinity_mask_proc_8
#define FTN_UNSET_AFFINITY_MASK_PROC kmp_unset_affinity_mask_proc
+#define FTN_UNSET_AFFINITY_MASK_PROC_8 kmp_unset_affinity_mask_proc_8
#define FTN_GET_AFFINITY_MASK_PROC kmp_get_affinity_mask_proc
+#define FTN_GET_AFFINITY_MASK_PROC_8 kmp_get_affinity_mask_proc_8
#define FTN_MALLOC kmp_malloc
#define FTN_ALIGNED_MALLOC kmp_aligned_malloc
@@ -51,6 +58,7 @@
#define FTN_GET_NUM_KNOWN_THREADS kmp_get_num_known_threads
#define FTN_SET_NUM_THREADS omp_set_num_threads
+#define FTN_SET_NUM_THREADS_8 omp_set_num_threads_8
#define FTN_GET_NUM_THREADS omp_get_num_threads
#define FTN_GET_MAX_THREADS omp_get_max_threads
#define FTN_GET_THREAD_NUM omp_get_thread_num
@@ -62,13 +70,18 @@
#define FTN_IN_PARALLEL omp_in_parallel
#define FTN_GET_THREAD_LIMIT omp_get_thread_limit
#define FTN_SET_SCHEDULE omp_set_schedule
+#define FTN_SET_SCHEDULE_8 omp_set_schedule_8
#define FTN_GET_SCHEDULE omp_get_schedule
+#define FTN_GET_SCHEDULE_8 omp_get_schedule_8
#define FTN_SET_MAX_ACTIVE_LEVELS omp_set_max_active_levels
+#define FTN_SET_MAX_ACTIVE_LEVELS_8 omp_set_max_active_levels_8
#define FTN_GET_MAX_ACTIVE_LEVELS omp_get_max_active_levels
#define FTN_GET_ACTIVE_LEVEL omp_get_active_level
#define FTN_GET_LEVEL omp_get_level
#define FTN_GET_ANCESTOR_THREAD_NUM omp_get_ancestor_thread_num
+#define FTN_GET_ANCESTOR_THREAD_NUM_8 omp_get_ancestor_thread_num_8
#define FTN_GET_TEAM_SIZE omp_get_team_size
+#define FTN_GET_TEAM_SIZE_8 omp_get_team_size_8
#define FTN_IN_FINAL omp_in_final
#define FTN_GET_PROC_BIND omp_get_proc_bind
#define FTN_GET_NUM_TEAMS omp_get_num_teams
@@ -97,6 +110,7 @@
#define FTN_GET_NUM_DEVICES omp_get_num_devices
#define FTN_GET_DEFAULT_DEVICE omp_get_default_device
#define FTN_SET_DEFAULT_DEVICE omp_set_default_device
+#define FTN_SET_DEFAULT_DEVICE_8 omp_set_default_device_8
#define FTN_IS_INITIAL_DEVICE omp_is_initial_device
#define FTN_GET_CANCELLATION omp_get_cancellation
@@ -105,10 +119,13 @@
#define FTN_GET_MAX_TASK_PRIORITY omp_get_max_task_priority
#define FTN_GET_NUM_PLACES omp_get_num_places
#define FTN_GET_PLACE_NUM_PROCS omp_get_place_num_procs
+#define FTN_GET_PLACE_NUM_PROCS_8 omp_get_place_num_procs_8
#define FTN_GET_PLACE_PROC_IDS omp_get_place_proc_ids
+#define FTN_GET_PLACE_PROC_IDS_8 omp_get_place_proc_ids_8
#define FTN_GET_PLACE_NUM omp_get_place_num
#define FTN_GET_PARTITION_NUM_PLACES omp_get_partition_num_places
#define FTN_GET_PARTITION_PLACE_NUMS omp_get_partition_place_nums
+#define FTN_GET_PARTITION_PLACE_NUMS_8 omp_get_partition_place_nums_8
#define FTN_GET_INITIAL_DEVICE omp_get_initial_device
#ifdef KMP_STUB
#define FTN_TARGET_ALLOC omp_target_alloc
@@ -147,14 +164,17 @@
#define FTN_DISPLAY_AFFINITY omp_display_affinity
#define FTN_CAPTURE_AFFINITY omp_capture_affinity
#define FTN_PAUSE_RESOURCE omp_pause_resource
+#define FTN_PAUSE_RESOURCE_8 omp_pause_resource_8
#define FTN_PAUSE_RESOURCE_ALL omp_pause_resource_all
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS omp_get_supported_active_levels
#define FTN_DISPLAY_ENV omp_display_env
#define FTN_IN_EXPLICIT_TASK omp_in_explicit_task
#define FTN_FULFILL_EVENT omp_fulfill_event
#define FTN_SET_NUM_TEAMS omp_set_num_teams
+#define FTN_SET_NUM_TEAMS_8 omp_set_num_teams_8
#define FTN_GET_MAX_TEAMS omp_get_max_teams
#define FTN_SET_TEAMS_THREAD_LIMIT omp_set_teams_thread_limit
+#define FTN_SET_TEAMS_THREAD_LIMIT_8 omp_set_teams_thread_limit_8
#define FTN_GET_TEAMS_THREAD_LIMIT omp_get_teams_thread_limit
#define FTN_GET_NUM_INTEROP_PROPERTIES omp_get_num_interop_properties
@@ -172,26 +192,33 @@
#if KMP_FTN_ENTRIES == KMP_FTN_APPEND
#define FTN_SET_STACKSIZE kmp_set_stacksize_
+#define FTN_SET_STACKSIZE_8 kmp_set_stacksize_8_
#define FTN_SET_STACKSIZE_S kmp_set_stacksize_s_
#define FTN_GET_STACKSIZE kmp_get_stacksize_
#define FTN_GET_STACKSIZE_S kmp_get_stacksize_s_
#define FTN_SET_BLOCKTIME kmp_set_blocktime_
+#define FTN_SET_BLOCKTIME_8 kmp_set_blocktime_8_
#define FTN_GET_BLOCKTIME kmp_get_blocktime_
#define FTN_SET_LIBRARY_SERIAL kmp_set_library_serial_
#define FTN_SET_LIBRARY_TURNAROUND kmp_set_library_turnaround_
#define FTN_SET_LIBRARY_THROUGHPUT kmp_set_library_throughput_
#define FTN_SET_LIBRARY kmp_set_library_
+#define FTN_SET_LIBRARY_8 kmp_set_library_8_
#define FTN_GET_LIBRARY kmp_get_library_
#define FTN_SET_DEFAULTS kmp_set_defaults_
#define FTN_SET_DISP_NUM_BUFFERS kmp_set_disp_num_buffers_
+#define FTN_SET_DISP_NUM_BUFFERS_8 kmp_set_disp_num_buffers_8_
#define FTN_SET_AFFINITY kmp_set_affinity_
#define FTN_GET_AFFINITY kmp_get_affinity_
#define FTN_GET_AFFINITY_MAX_PROC kmp_get_affinity_max_proc_
#define FTN_CREATE_AFFINITY_MASK kmp_create_affinity_mask_
#define FTN_DESTROY_AFFINITY_MASK kmp_destroy_affinity_mask_
#define FTN_SET_AFFINITY_MASK_PROC kmp_set_affinity_mask_proc_
+#define FTN_SET_AFFINITY_MASK_PROC_8 kmp_set_affinity_mask_proc_8_
#define FTN_UNSET_AFFINITY_MASK_PROC kmp_unset_affinity_mask_proc_
+#define FTN_UNSET_AFFINITY_MASK_PROC_8 kmp_unset_affinity_mask_proc_8_
#define FTN_GET_AFFINITY_MASK_PROC kmp_get_affinity_mask_proc_
+#define FTN_GET_AFFINITY_MASK_PROC_8 kmp_get_affinity_mask_proc_8_
#define FTN_MALLOC kmp_malloc_
#define FTN_ALIGNED_MALLOC kmp_aligned_malloc_
@@ -202,6 +229,7 @@
#define FTN_GET_NUM_KNOWN_THREADS kmp_get_num_known_threads_
#define FTN_SET_NUM_THREADS omp_set_num_threads_
+#define FTN_SET_NUM_THREADS_8 omp_set_num_threads_8_
#define FTN_GET_NUM_THREADS omp_get_num_threads_
#define FTN_GET_MAX_THREADS omp_get_max_threads_
#define FTN_GET_THREAD_NUM omp_get_thread_num_
@@ -213,13 +241,18 @@
#define FTN_IN_PARALLEL omp_in_parallel_
#define FTN_GET_THREAD_LIMIT omp_get_thread_limit_
#define FTN_SET_SCHEDULE omp_set_schedule_
+#define FTN_SET_SCHEDULE_8 omp_set_schedule_8_
#define FTN_GET_SCHEDULE omp_get_schedule_
+#define FTN_GET_SCHEDULE_8 omp_get_schedule_8_
#define FTN_SET_MAX_ACTIVE_LEVELS omp_set_max_active_levels_
+#define FTN_SET_MAX_ACTIVE_LEVELS_8 omp_set_max_active_levels_8_
#define FTN_GET_MAX_ACTIVE_LEVELS omp_get_max_active_levels_
#define FTN_GET_ACTIVE_LEVEL omp_get_active_level_
#define FTN_GET_LEVEL omp_get_level_
#define FTN_GET_ANCESTOR_THREAD_NUM omp_get_ancestor_thread_num_
+#define FTN_GET_ANCESTOR_THREAD_NUM_8 omp_get_ancestor_thread_num_8_
#define FTN_GET_TEAM_SIZE omp_get_team_size_
+#define FTN_GET_TEAM_SIZE_8 omp_get_team_size_8_
#define FTN_IN_FINAL omp_in_final_
#define FTN_GET_PROC_BIND omp_get_proc_bind_
#define FTN_GET_NUM_TEAMS omp_get_num_teams_
@@ -248,6 +281,7 @@
#define FTN_GET_NUM_DEVICES omp_get_num_devices_
#define FTN_GET_DEFAULT_DEVICE omp_get_default_device_
#define FTN_SET_DEFAULT_DEVICE omp_set_default_device_
+#define FTN_SET_DEFAULT_DEVICE_8 omp_set_default_device_8_
#define FTN_IS_INITIAL_DEVICE omp_is_initial_device_
#define FTN_GET_CANCELLATION omp_get_cancellation_
@@ -256,10 +290,13 @@
#define FTN_GET_MAX_TASK_PRIORITY omp_get_max_task_priority_
#define FTN_GET_NUM_PLACES omp_get_num_places_
#define FTN_GET_PLACE_NUM_PROCS omp_get_place_num_procs_
+#define FTN_GET_PLACE_NUM_PROCS_8 omp_get_place_num_procs_8_
#define FTN_GET_PLACE_PROC_IDS omp_get_place_proc_ids_
+#define FTN_GET_PLACE_PROC_IDS_8 omp_get_place_proc_ids_8_
#define FTN_GET_PLACE_NUM omp_get_place_num_
#define FTN_GET_PARTITION_NUM_PLACES omp_get_partition_num_places_
#define FTN_GET_PARTITION_PLACE_NUMS omp_get_partition_place_nums_
+#define FTN_GET_PARTITION_PLACE_NUMS_8 omp_get_partition_place_nums_8_
#define FTN_GET_INITIAL_DEVICE omp_get_initial_device_
#ifdef KMP_STUB
#define FTN_TARGET_ALLOC omp_target_alloc_
@@ -298,14 +335,17 @@
#define FTN_DISPLAY_AFFINITY omp_display_affinity_
#define FTN_CAPTURE_AFFINITY omp_capture_affinity_
#define FTN_PAUSE_RESOURCE omp_pause_resource_
+#define FTN_PAUSE_RESOURCE_8 omp_pause_resource_8_
#define FTN_PAUSE_RESOURCE_ALL omp_pause_resource_all_
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS omp_get_supported_active_levels_
#define FTN_DISPLAY_ENV omp_display_env_
#define FTN_IN_EXPLICIT_TASK omp_in_explicit_task_
#define FTN_FULFILL_EVENT omp_fulfill_event_
#define FTN_SET_NUM_TEAMS omp_set_num_teams_
+#define FTN_SET_NUM_TEAMS_8 omp_set_num_teams_8_
#define FTN_GET_MAX_TEAMS omp_get_max_teams_
#define FTN_SET_TEAMS_THREAD_LIMIT omp_set_teams_thread_limit_
+#define FTN_SET_TEAMS_THREAD_LIMIT_8 omp_set_teams_thread_limit_8_
#define FTN_GET_TEAMS_THREAD_LIMIT omp_get_teams_thread_limit_
#define FTN_GET_NUM_INTEROP_PROPERTIES omp_get_num_interop_properties_
@@ -323,26 +363,33 @@
#if KMP_FTN_ENTRIES == KMP_FTN_UPPER
#define FTN_SET_STACKSIZE KMP_SET_STACKSIZE
+#define FTN_SET_STACKSIZE_8 KMP_SET_STACKSIZE_8
#define FTN_SET_STACKSIZE_S KMP_SET_STACKSIZE_S
#define FTN_GET_STACKSIZE KMP_GET_STACKSIZE
#define FTN_GET_STACKSIZE_S KMP_GET_STACKSIZE_S
#define FTN_SET_BLOCKTIME KMP_SET_BLOCKTIME
+#define FTN_SET_BLOCKTIME_8 KMP_SET_BLOCKTIME_8
#define FTN_GET_BLOCKTIME KMP_GET_BLOCKTIME
#define FTN_SET_LIBRARY_SERIAL KMP_SET_LIBRARY_SERIAL
#define FTN_SET_LIBRARY_TURNAROUND KMP_SET_LIBRARY_TURNAROUND
#define FTN_SET_LIBRARY_THROUGHPUT KMP_SET_LIBRARY_THROUGHPUT
#define FTN_SET_LIBRARY KMP_SET_LIBRARY
+#define FTN_SET_LIBRARY_8 KMP_SET_LIBRARY_8
#define FTN_GET_LIBRARY KMP_GET_LIBRARY
#define FTN_SET_DEFAULTS KMP_SET_DEFAULTS
#define FTN_SET_DISP_NUM_BUFFERS KMP_SET_DISP_NUM_BUFFERS
+#define FTN_SET_DISP_NUM_BUFFERS_8 KMP_SET_DISP_NUM_BUFFERS_8
#define FTN_SET_AFFINITY KMP_SET_AFFINITY
#define FTN_GET_AFFINITY KMP_GET_AFFINITY
#define FTN_GET_AFFINITY_MAX_PROC KMP_GET_AFFINITY_MAX_PROC
#define FTN_CREATE_AFFINITY_MASK KMP_CREATE_AFFINITY_MASK
#define FTN_DESTROY_AFFINITY_MASK KMP_DESTROY_AFFINITY_MASK
#define FTN_SET_AFFINITY_MASK_PROC KMP_SET_AFFINITY_MASK_PROC
+#define FTN_SET_AFFINITY_MASK_PROC_8 KMP_SET_AFFINITY_MASK_PROC_8
#define FTN_UNSET_AFFINITY_MASK_PROC KMP_UNSET_AFFINITY_MASK_PROC
+#define FTN_UNSET_AFFINITY_MASK_PROC_8 KMP_UNSET_AFFINITY_MASK_PROC_8
#define FTN_GET_AFFINITY_MASK_PROC KMP_GET_AFFINITY_MASK_PROC
+#define FTN_GET_AFFINITY_MASK_PROC_8 KMP_GET_AFFINITY_MASK_PROC_8
#define FTN_MALLOC KMP_MALLOC
#define FTN_ALIGNED_MALLOC KMP_ALIGNED_MALLOC
@@ -353,6 +400,7 @@
#define FTN_GET_NUM_KNOWN_THREADS KMP_GET_NUM_KNOWN_THREADS
#define FTN_SET_NUM_THREADS OMP_SET_NUM_THREADS
+#define FTN_SET_NUM_THREADS_8 OMP_SET_NUM_THREADS_8
#define FTN_GET_NUM_THREADS OMP_GET_NUM_THREADS
#define FTN_GET_MAX_THREADS OMP_GET_MAX_THREADS
#define FTN_GET_THREAD_NUM OMP_GET_THREAD_NUM
@@ -364,13 +412,18 @@
#define FTN_IN_PARALLEL OMP_IN_PARALLEL
#define FTN_GET_THREAD_LIMIT OMP_GET_THREAD_LIMIT
#define FTN_SET_SCHEDULE OMP_SET_SCHEDULE
+#define FTN_SET_SCHEDULE_8 OMP_SET_SCHEDULE_8
#define FTN_GET_SCHEDULE OMP_GET_SCHEDULE
+#define FTN_GET_SCHEDULE_8 OMP_GET_SCHEDULE_8
#define FTN_SET_MAX_ACTIVE_LEVELS OMP_SET_MAX_ACTIVE_LEVELS
+#define FTN_SET_MAX_ACTIVE_LEVELS_8 OMP_SET_MAX_ACTIVE_LEVELS_8
#define FTN_GET_MAX_ACTIVE_LEVELS OMP_GET_MAX_ACTIVE_LEVELS
#define FTN_GET_ACTIVE_LEVEL OMP_GET_ACTIVE_LEVEL
#define FTN_GET_LEVEL OMP_GET_LEVEL
#define FTN_GET_ANCESTOR_THREAD_NUM OMP_GET_ANCESTOR_THREAD_NUM
+#define FTN_GET_ANCESTOR_THREAD_NUM_8 OMP_GET_ANCESTOR_THREAD_NUM_8
#define FTN_GET_TEAM_SIZE OMP_GET_TEAM_SIZE
+#define FTN_GET_TEAM_SIZE_8 OMP_GET_TEAM_SIZE_8
#define FTN_IN_FINAL OMP_IN_FINAL
#define FTN_GET_PROC_BIND OMP_GET_PROC_BIND
#define FTN_GET_NUM_TEAMS OMP_GET_NUM_TEAMS
@@ -399,6 +452,7 @@
#define FTN_GET_NUM_DEVICES OMP_GET_NUM_DEVICES
#define FTN_GET_DEFAULT_DEVICE OMP_GET_DEFAULT_DEVICE
#define FTN_SET_DEFAULT_DEVICE OMP_SET_DEFAULT_DEVICE
+#define FTN_SET_DEFAULT_DEVICE_8 OMP_SET_DEFAULT_DEVICE_8
#define FTN_IS_INITIAL_DEVICE OMP_IS_INITIAL_DEVICE
#define FTN_GET_CANCELLATION OMP_GET_CANCELLATION
@@ -407,10 +461,13 @@
#define FTN_GET_MAX_TASK_PRIORITY OMP_GET_MAX_TASK_PRIORITY
#define FTN_GET_NUM_PLACES OMP_GET_NUM_PLACES
#define FTN_GET_PLACE_NUM_PROCS OMP_GET_PLACE_NUM_PROCS
+#define FTN_GET_PLACE_NUM_PROCS_8 OMP_GET_PLACE_NUM_PROCS_8
#define FTN_GET_PLACE_PROC_IDS OMP_GET_PLACE_PROC_IDS
+#define FTN_GET_PLACE_PROC_IDS_8 OMP_GET_PLACE_PROC_IDS_8
#define FTN_GET_PLACE_NUM OMP_GET_PLACE_NUM
#define FTN_GET_PARTITION_NUM_PLACES OMP_GET_PARTITION_NUM_PLACES
#define FTN_GET_PARTITION_PLACE_NUMS OMP_GET_PARTITION_PLACE_NUMS
+#define FTN_GET_PARTITION_PLACE_NUMS_8 OMP_GET_PARTITION_PLACE_NUMS_8
#define FTN_GET_INITIAL_DEVICE OMP_GET_INITIAL_DEVICE
#ifdef KMP_STUB
#define FTN_TARGET_ALLOC OMP_TARGET_ALLOC
@@ -447,14 +504,17 @@
#define FTN_DISPLAY_AFFINITY OMP_DISPLAY_AFFINITY
#define FTN_CAPTURE_AFFINITY OMP_CAPTURE_AFFINITY
#define FTN_PAUSE_RESOURCE OMP_PAUSE_RESOURCE
+#define FTN_PAUSE_RESOURCE_8 OMP_PAUSE_RESOURCE_8
#define FTN_PAUSE_RESOURCE_ALL OMP_PAUSE_RESOURCE_ALL
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS OMP_GET_SUPPORTED_ACTIVE_LEVELS
#define FTN_DISPLAY_ENV OMP_DISPLAY_ENV
#define FTN_IN_EXPLICIT_TASK OMP_IN_EXPLICIT_TASK
#define FTN_FULFILL_EVENT OMP_FULFILL_EVENT
#define FTN_SET_NUM_TEAMS OMP_SET_NUM_TEAMS
+#define FTN_SET_NUM_TEAMS_8 OMP_SET_NUM_TEAMS_8
#define FTN_GET_MAX_TEAMS OMP_GET_MAX_TEAMS
#define FTN_SET_TEAMS_THREAD_LIMIT OMP_SET_TEAMS_THREAD_LIMIT
+#define FTN_SET_TEAMS_THREAD_LIMIT_8 OMP_SET_TEAMS_THREAD_LIMIT_8
#define FTN_GET_TEAMS_THREAD_LIMIT OMP_GET_TEAMS_THREAD_LIMIT
#define FTN_GET_NUM_INTEROP_PROPERTIES OMP_GET_NUM_INTEROP_PROPERTIES
@@ -472,26 +532,33 @@
#if KMP_FTN_ENTRIES == KMP_FTN_UAPPEND
#define FTN_SET_STACKSIZE KMP_SET_STACKSIZE_
+#define FTN_SET_STACKSIZE_8 KMP_SET_STACKSIZE_8_
#define FTN_SET_STACKSIZE_S KMP_SET_STACKSIZE_S_
#define FTN_GET_STACKSIZE KMP_GET_STACKSIZE_
#define FTN_GET_STACKSIZE_S KMP_GET_STACKSIZE_S_
#define FTN_SET_BLOCKTIME KMP_SET_BLOCKTIME_
+#define FTN_SET_BLOCKTIME_8 KMP_SET_BLOCKTIME_8_
#define FTN_GET_BLOCKTIME KMP_GET_BLOCKTIME_
#define FTN_SET_LIBRARY_SERIAL KMP_SET_LIBRARY_SERIAL_
#define FTN_SET_LIBRARY_TURNAROUND KMP_SET_LIBRARY_TURNAROUND_
#define FTN_SET_LIBRARY_THROUGHPUT KMP_SET_LIBRARY_THROUGHPUT_
#define FTN_SET_LIBRARY KMP_SET_LIBRARY_
+#define FTN_SET_LIBRARY_8 KMP_SET_LIBRARY_8_
#define FTN_GET_LIBRARY KMP_GET_LIBRARY_
#define FTN_SET_DEFAULTS KMP_SET_DEFAULTS_
#define FTN_SET_DISP_NUM_BUFFERS KMP_SET_DISP_NUM_BUFFERS_
+#define FTN_SET_DISP_NUM_BUFFERS_8 KMP_SET_DISP_NUM_BUFFERS_8_
#define FTN_SET_AFFINITY KMP_SET_AFFINITY_
#define FTN_GET_AFFINITY KMP_GET_AFFINITY_
#define FTN_GET_AFFINITY_MAX_PROC KMP_GET_AFFINITY_MAX_PROC_
#define FTN_CREATE_AFFINITY_MASK KMP_CREATE_AFFINITY_MASK_
#define FTN_DESTROY_AFFINITY_MASK KMP_DESTROY_AFFINITY_MASK_
#define FTN_SET_AFFINITY_MASK_PROC KMP_SET_AFFINITY_MASK_PROC_
+#define FTN_SET_AFFINITY_MASK_PROC_8 KMP_SET_AFFINITY_MASK_PROC_8_
#define FTN_UNSET_AFFINITY_MASK_PROC KMP_UNSET_AFFINITY_MASK_PROC_
+#define FTN_UNSET_AFFINITY_MASK_PROC_8 KMP_UNSET_AFFINITY_MASK_PROC_8_
#define FTN_GET_AFFINITY_MASK_PROC KMP_GET_AFFINITY_MASK_PROC_
+#define FTN_GET_AFFINITY_MASK_PROC_8 KMP_GET_AFFINITY_MASK_PROC_8_
#define FTN_MALLOC KMP_MALLOC_
#define FTN_ALIGNED_MALLOC KMP_ALIGNED_MALLOC_
@@ -502,6 +569,7 @@
#define FTN_GET_NUM_KNOWN_THREADS KMP_GET_NUM_KNOWN_THREADS_
#define FTN_SET_NUM_THREADS OMP_SET_NUM_THREADS_
+#define FTN_SET_NUM_THREADS_8 OMP_SET_NUM_THREADS_8_
#define FTN_GET_NUM_THREADS OMP_GET_NUM_THREADS_
#define FTN_GET_MAX_THREADS OMP_GET_MAX_THREADS_
#define FTN_GET_THREAD_NUM OMP_GET_THREAD_NUM_
@@ -513,13 +581,18 @@
#define FTN_IN_PARALLEL OMP_IN_PARALLEL_
#define FTN_GET_THREAD_LIMIT OMP_GET_THREAD_LIMIT_
#define FTN_SET_SCHEDULE OMP_SET_SCHEDULE_
+#define FTN_SET_SCHEDULE_8 OMP_SET_SCHEDULE_8_
#define FTN_GET_SCHEDULE OMP_GET_SCHEDULE_
+#define FTN_GET_SCHEDULE_8 OMP_GET_SCHEDULE_8_
#define FTN_SET_MAX_ACTIVE_LEVELS OMP_SET_MAX_ACTIVE_LEVELS_
+#define FTN_SET_MAX_ACTIVE_LEVELS_8 OMP_SET_MAX_ACTIVE_LEVELS_8_
#define FTN_GET_MAX_ACTIVE_LEVELS OMP_GET_MAX_ACTIVE_LEVELS_
#define FTN_GET_ACTIVE_LEVEL OMP_GET_ACTIVE_LEVEL_
#define FTN_GET_LEVEL OMP_GET_LEVEL_
#define FTN_GET_ANCESTOR_THREAD_NUM OMP_GET_ANCESTOR_THREAD_NUM_
+#define FTN_GET_ANCESTOR_THREAD_NUM_8 OMP_GET_ANCESTOR_THREAD_NUM_8_
#define FTN_GET_TEAM_SIZE OMP_GET_TEAM_SIZE_
+#define FTN_GET_TEAM_SIZE_8 OMP_GET_TEAM_SIZE_8_
#define FTN_IN_FINAL OMP_IN_FINAL_
#define FTN_GET_PROC_BIND OMP_GET_PROC_BIND_
#define FTN_GET_NUM_TEAMS OMP_GET_NUM_TEAMS_
@@ -548,6 +621,7 @@
#define FTN_GET_NUM_DEVICES OMP_GET_NUM_DEVICES_
#define FTN_GET_DEFAULT_DEVICE OMP_GET_DEFAULT_DEVICE_
#define FTN_SET_DEFAULT_DEVICE OMP_SET_DEFAULT_DEVICE_
+#define FTN_SET_DEFAULT_DEVICE_8 OMP_SET_DEFAULT_DEVICE_8_
#define FTN_IS_INITIAL_DEVICE OMP_IS_INITIAL_DEVICE_
#define FTN_GET_CANCELLATION OMP_GET_CANCELLATION_
@@ -556,10 +630,13 @@
#define FTN_GET_MAX_TASK_PRIORITY OMP_GET_MAX_TASK_PRIORITY_
#define FTN_GET_NUM_PLACES OMP_GET_NUM_PLACES_
#define FTN_GET_PLACE_NUM_PROCS OMP_GET_PLACE_NUM_PROCS_
+#define FTN_GET_PLACE_NUM_PROCS_8 OMP_GET_PLACE_NUM_PROCS_8_
#define FTN_GET_PLACE_PROC_IDS OMP_GET_PLACE_PROC_IDS_
+#define FTN_GET_PLACE_PROC_IDS_8 OMP_GET_PLACE_PROC_IDS_8_
#define FTN_GET_PLACE_NUM OMP_GET_PLACE_NUM_
#define FTN_GET_PARTITION_NUM_PLACES OMP_GET_PARTITION_NUM_PLACES_
#define FTN_GET_PARTITION_PLACE_NUMS OMP_GET_PARTITION_PLACE_NUMS_
+#define FTN_GET_PARTITION_PLACE_NUMS_8 OMP_GET_PARTITION_PLACE_NUMS_8_
#define FTN_GET_INITIAL_DEVICE OMP_GET_INITIAL_DEVICE_
#ifdef KMP_STUB
#define FTN_TARGET_ALLOC OMP_TARGET_ALLOC_
@@ -598,14 +675,17 @@
#define FTN_DISPLAY_AFFINITY OMP_DISPLAY_AFFINITY_
#define FTN_CAPTURE_AFFINITY OMP_CAPTURE_AFFINITY_
#define FTN_PAUSE_RESOURCE OMP_PAUSE_RESOURCE_
+#define FTN_PAUSE_RESOURCE_8 OMP_PAUSE_RESOURCE_8_
#define FTN_PAUSE_RESOURCE_ALL OMP_PAUSE_RESOURCE_ALL_
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS OMP_GET_SUPPORTED_ACTIVE_LEVELS_
#define FTN_DISPLAY_ENV OMP_DISPLAY_ENV_
#define FTN_IN_EXPLICIT_TASK OMP_IN_EXPLICIT_TASK_
#define FTN_FULFILL_EVENT OMP_FULFILL_EVENT_
#define FTN_SET_NUM_TEAMS OMP_SET_NUM_TEAMS_
+#define FTN_SET_NUM_TEAMS_8 OMP_SET_NUM_TEAMS_8_
#define FTN_GET_MAX_TEAMS OMP_GET_MAX_TEAMS_
#define FTN_SET_TEAMS_THREAD_LIMIT OMP_SET_TEAMS_THREAD_LIMIT_
+#define FTN_SET_TEAMS_THREAD_LIMIT_8 OMP_SET_TEAMS_THREAD_LIMIT_8_
#define FTN_GET_TEAMS_THREAD_LIMIT OMP_GET_TEAMS_THREAD_LIMIT_
#define FTN_GET_NUM_INTEROP_PROPERTIES OMP_GET_NUM_INTEROP_PROPERTIES_
diff --git a/openmp/runtime/src/kmp_stub.cpp b/openmp/runtime/src/kmp_stub.cpp
index 4c1e6099574a6..547103dbc10aa 100644
--- a/openmp/runtime/src/kmp_stub.cpp
+++ b/openmp/runtime/src/kmp_stub.cpp
@@ -32,6 +32,7 @@
#define omp_get_team_size ompc_get_team_size
#define omp_set_num_threads ompc_set_num_threads
+#define omp_set_num_threads_8 ompc_set_num_threads_8
#define omp_set_dynamic ompc_set_dynamic
#define omp_set_nested ompc_set_nested
#define omp_set_affinity_format ompc_set_affinity_format
@@ -88,6 +89,7 @@ static size_t __kmps_init() {
/* set API functions */
void omp_set_num_threads(omp_int_t num_threads) { i; }
+void omp_set_num_threads_8(int64_t num_threads) { i; }
void omp_set_dynamic(omp_int_t dynamic) {
i;
__kmps_set_dynamic(dynamic);
More information about the flang-commits
mailing list