forked from OSchip/llvm-project
[OpenMP 5.0] Add omp_get_supported_active_levels()
This patch adds the new 5.0 API function omp_get_supported_active_levels(). Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D58211 llvm-svn: 354368
This commit is contained in:
parent
4fe5271fa0
commit
154ac075cd
|
@ -556,6 +556,7 @@ kmp_set_disp_num_buffers 890
|
|||
ompc_capture_affinity 755
|
||||
omp_pause_resource 756
|
||||
omp_pause_resource_all 757
|
||||
omp_get_supported_active_levels 758
|
||||
|
||||
OMP_NULL_ALLOCATOR DATA
|
||||
omp_default_mem_alloc DATA
|
||||
|
|
|
@ -257,6 +257,8 @@
|
|||
extern int __KAI_KMPC_CONVENTION omp_pause_resource(omp_pause_resource_t, int);
|
||||
extern int __KAI_KMPC_CONVENTION omp_pause_resource_all(omp_pause_resource_t);
|
||||
|
||||
extern int __KAI_KMPC_CONVENTION omp_get_supported_active_levels(void);
|
||||
|
||||
# undef __KAI_KMPC_CONVENTION
|
||||
# undef __KMP_IMP
|
||||
|
||||
|
|
|
@ -301,6 +301,11 @@
|
|||
integer (kind=omp_integer_kind) omp_pause_resource_all
|
||||
end function omp_pause_resource_all
|
||||
|
||||
function omp_get_supported_active_levels()
|
||||
use omp_lib_kinds
|
||||
integer (kind=omp_integer_kind) omp_get_supported_active_levels
|
||||
end function omp_get_supported_active_levels
|
||||
|
||||
subroutine omp_init_lock(svar)
|
||||
!DIR$ IF(__INTEL_COMPILER.GE.1400)
|
||||
!DIR$ attributes known_intrinsic :: omp_init_lock
|
||||
|
@ -641,6 +646,7 @@
|
|||
!dec$ attributes alias:'OMP_GET_DEVICE_NUM' :: omp_get_device_num
|
||||
!dec$ attributes alias:'OMP_PAUSE_RESOURCE' :: omp_pause_resource
|
||||
!dec$ attributes alias:'OMP_PAUSE_RESOURCE_ALL' :: omp_pause_resource_all
|
||||
!dec$ attributes alias:'OMP_GET_SUPPORTED_ACTIVE_LEVELS' :: omp_get_supported_active_levels
|
||||
|
||||
!dec$ attributes alias:'OMP_CONTROL_TOOL' :: omp_control_tool
|
||||
!dec$ attributes alias:'OMP_SET_AFFINITY_FORMAT' :: omp_set_affinity_format
|
||||
|
@ -731,6 +737,7 @@
|
|||
!dec$ attributes alias:'_OMP_GET_DEVICE_NUM' :: omp_get_device_num
|
||||
!dec$ attributes alias:'_OMP_PAUSE_RESOURCE' :: omp_pause_resource
|
||||
!dec$ attributes alias:'_OMP_PAUSE_RESOURCE_ALL' :: omp_pause_resource_all
|
||||
!dec$ attributes alias:'_OMP_GET_SUPPORTED_ACTIVE_LEVELS' :: omp_get_supported_active_levels
|
||||
|
||||
!dec$ attributes alias:'_OMP_CONTROL_TOOL' :: omp_control_tool
|
||||
!dec$ attributes alias:'_OMP_SET_AFFINITY_FORMAT' :: omp_set_affinity_format
|
||||
|
@ -824,6 +831,7 @@
|
|||
!dec$ attributes alias:'omp_get_device_num_'::omp_get_device_num
|
||||
!dec$ attributes alias:'omp_pause_resource_' :: omp_pause_resource
|
||||
!dec$ attributes alias:'omp_pause_resource_all_' :: omp_pause_resource_all
|
||||
!dec$ attributes alias:'omp_get_supported_active_levels_' :: omp_get_supported_active_levels
|
||||
|
||||
!dec$ attributes alias:'omp_set_affinity_format_' :: omp_set_affinity_format
|
||||
!dec$ attributes alias:'omp_get_affinity_format_' :: omp_get_affinity_format
|
||||
|
@ -916,6 +924,7 @@
|
|||
!dec$ attributes alias:'_omp_get_device_num_'::omp_get_device_num
|
||||
!dec$ attributes alias:'_omp_pause_resource_' :: omp_pause_resource
|
||||
!dec$ attributes alias:'_omp_pause_resource_all_' :: omp_pause_resource_all
|
||||
!dec$ attributes alias:'_omp_get_supported_active_levels_' :: omp_get_supported_active_levels
|
||||
|
||||
!dec$ attributes alias:'_omp_init_lock_'::omp_init_lock
|
||||
!dec$ attributes alias:'_omp_init_lock_with_hint_'::omp_init_lock_with_hint
|
||||
|
|
|
@ -317,6 +317,11 @@
|
|||
integer (kind=omp_integer_kind) omp_pause_resource_all
|
||||
end function omp_pause_resource_all
|
||||
|
||||
function omp_get_supported_active_levels() bind(c)
|
||||
use omp_lib_kinds
|
||||
integer (kind=omp_integer_kind) omp_get_supported_active_levels
|
||||
end function omp_get_supported_active_levels
|
||||
|
||||
subroutine omp_init_lock(svar) bind(c)
|
||||
!DIR$ IF(__INTEL_COMPILER.GE.1400)
|
||||
!DIR$ attributes known_intrinsic :: omp_init_lock
|
||||
|
|
|
@ -352,6 +352,11 @@
|
|||
integer (kind=omp_integer_kind) omp_pause_resource_all
|
||||
end function omp_pause_resource_all
|
||||
|
||||
function omp_get_supported_active_levels() bind(c)
|
||||
import
|
||||
integer (kind=omp_integer_kind) omp_get_supported_active_levels
|
||||
end function omp_get_supported_active_levels
|
||||
|
||||
subroutine omp_init_lock(svar) bind(c)
|
||||
!DIR$ IF(__INTEL_COMPILER.GE.1400)
|
||||
!DIR$ attributes known_intrinsic :: omp_init_lock
|
||||
|
@ -674,6 +679,7 @@
|
|||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_device_num
|
||||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource
|
||||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_pause_resource_all
|
||||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_supported_active_levels
|
||||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams
|
||||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num
|
||||
!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock
|
||||
|
@ -755,6 +761,7 @@
|
|||
!$omp declare target(omp_get_device_num )
|
||||
!$omp declare target(omp_pause_resource )
|
||||
!$omp declare target(omp_pause_resource_all )
|
||||
!$omp declare target(omp_get_supported_active_levels )
|
||||
!$omp declare target(omp_get_num_teams )
|
||||
!$omp declare target(omp_get_team_num )
|
||||
!$omp declare target(omp_init_lock )
|
||||
|
|
|
@ -1371,6 +1371,15 @@ int FTN_STDCALL FTN_PAUSE_RESOURCE_ALL(kmp_pause_status_t kind) {
|
|||
#endif
|
||||
}
|
||||
|
||||
// Returns the maximum number of nesting levels supported by implementation
|
||||
int FTN_STDCALL FTN_GET_SUPPORTED_ACTIVE_LEVELS(void) {
|
||||
#ifdef KMP_STUB
|
||||
return 1;
|
||||
#else
|
||||
return KMP_MAX_ACTIVE_LEVELS_LIMIT;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // OMP_50_ENABLED
|
||||
|
||||
// GCC compatibility (versioned symbols)
|
||||
|
@ -1476,6 +1485,7 @@ KMP_VERSION_SYMBOL(FTN_GET_PARTITION_PLACE_NUMS, 45, "OMP_4.5");
|
|||
// KMP_VERSION_SYMBOL(FTN_GET_DEVICE_NUM, 50, "OMP_5.0");
|
||||
// KMP_VERSION_SYMBOL(FTN_PAUSE_RESOURCE, 50, "OMP_5.0");
|
||||
// KMP_VERSION_SYMBOL(FTN_PAUSE_RESOURCE_ALL, 50, "OMP_5.0");
|
||||
// KMP_VERSION_SYMBOL(FTN_GET_SUPPORTED_ACTIVE_LEVELS, 50, "OMP_5.0");
|
||||
#endif
|
||||
|
||||
#endif // KMP_USE_VERSION_SYMBOLS
|
||||
|
|
|
@ -143,6 +143,7 @@
|
|||
#define FTN_CAPTURE_AFFINITY omp_capture_affinity
|
||||
#define FTN_PAUSE_RESOURCE omp_pause_resource
|
||||
#define FTN_PAUSE_RESOURCE_ALL omp_pause_resource_all
|
||||
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS omp_get_supported_active_levels
|
||||
#endif
|
||||
|
||||
#endif /* KMP_FTN_PLAIN */
|
||||
|
@ -274,6 +275,7 @@
|
|||
#define FTN_CAPTURE_AFFINITY omp_capture_affinity_
|
||||
#define FTN_PAUSE_RESOURCE omp_pause_resource_
|
||||
#define FTN_PAUSE_RESOURCE_ALL omp_pause_resource_all_
|
||||
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS omp_get_supported_active_levels_
|
||||
#endif
|
||||
|
||||
#endif /* KMP_FTN_APPEND */
|
||||
|
@ -405,6 +407,7 @@
|
|||
#define FTN_CAPTURE_AFFINITY OMP_CAPTURE_AFFINITY
|
||||
#define FTN_PAUSE_RESOURCE OMP_PAUSE_RESOURCE
|
||||
#define FTN_PAUSE_RESOURCE_ALL OMP_PAUSE_RESOURCE_ALL
|
||||
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS OMP_GET_SUPPORTED_ACTIVE_LEVELS
|
||||
#endif
|
||||
|
||||
#endif /* KMP_FTN_UPPER */
|
||||
|
@ -536,6 +539,7 @@
|
|||
#define FTN_CAPTURE_AFFINITY OMP_CAPTURE_AFFINITY_
|
||||
#define FTN_PAUSE_RESOURCE OMP_PAUSE_RESOURCE_
|
||||
#define FTN_PAUSE_RESOURCE_ALL OMP_PAUSE_RESOURCE_ALL_
|
||||
#define FTN_GET_SUPPORTED_ACTIVE_LEVELS OMP_GET_SUPPORTED_ACTIVE_LEVELS_
|
||||
#endif
|
||||
|
||||
#endif /* KMP_FTN_UAPPEND */
|
||||
|
|
|
@ -19,6 +19,7 @@ int test_omp_nested()
|
|||
int counter = 0;
|
||||
#ifdef _OPENMP
|
||||
omp_set_nested(1);
|
||||
omp_set_max_active_levels(omp_get_supported_active_levels());
|
||||
#endif
|
||||
|
||||
#pragma omp parallel shared(counter)
|
||||
|
|
Loading…
Reference in New Issue