diff options
author | Andrey Churbanov <Andrey.Churbanov@intel.com> | 2015-02-10 19:47:09 +0000 |
---|---|---|
committer | Andrey Churbanov <Andrey.Churbanov@intel.com> | 2015-02-10 19:47:09 +0000 |
commit | 851563f9c3bc6b5db812cfa95add5387e6e433df (patch) | |
tree | d6919df696411f3d41ca69fa50a5606de9bd7a2c /openmp | |
parent | a03b9389cab135a99d1b31d4c185030158d11570 (diff) | |
download | bcm5719-llvm-851563f9c3bc6b5db812cfa95add5387e6e433df.tar.gz bcm5719-llvm-851563f9c3bc6b5db812cfa95add5387e6e433df.zip |
OpenMP 4.0 standard function omp_is_initial_device() implemented.
llvm-svn: 228730
Diffstat (limited to 'openmp')
-rw-r--r-- | openmp/runtime/src/dllexports | 1 | ||||
-rw-r--r-- | openmp/runtime/src/include/40/omp.h.var | 1 | ||||
-rw-r--r-- | openmp/runtime/src/include/40/omp_lib.f.var | 9 | ||||
-rw-r--r-- | openmp/runtime/src/include/40/omp_lib.f90.var | 5 | ||||
-rw-r--r-- | openmp/runtime/src/include/40/omp_lib.h.var | 7 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_ftn_entry.h | 28 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_ftn_os.h | 4 |
7 files changed, 55 insertions, 0 deletions
diff --git a/openmp/runtime/src/dllexports b/openmp/runtime/src/dllexports index a82b7af61f5..92325cb95f0 100644 --- a/openmp/runtime/src/dllexports +++ b/openmp/runtime/src/dllexports @@ -478,6 +478,7 @@ kmp_set_warnings_off 780 omp_get_team_num 866 omp_get_cancellation 867 kmp_get_cancellation_status 868 + omp_is_initial_device 869 %endif # OMP_40 %ifndef stub diff --git a/openmp/runtime/src/include/40/omp.h.var b/openmp/runtime/src/include/40/omp.h.var index e575922479b..fb70dbb670d 100644 --- a/openmp/runtime/src/include/40/omp.h.var +++ b/openmp/runtime/src/include/40/omp.h.var @@ -91,6 +91,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 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); extern int __KAI_KMPC_CONVENTION omp_get_team_num (void); diff --git a/openmp/runtime/src/include/40/omp_lib.f.var b/openmp/runtime/src/include/40/omp_lib.f.var index d756d2b26b8..6a5212a1855 100644 --- a/openmp/runtime/src/include/40/omp_lib.f.var +++ b/openmp/runtime/src/include/40/omp_lib.f.var @@ -208,6 +208,11 @@ integer (kind=omp_integer_kind) omp_get_cancellation end function omp_get_cancellation + function omp_is_initial_device() + use omp_lib_kinds + logical (kind=omp_logical_kind) omp_is_initial_device + end function omp_is_initial_device + subroutine omp_init_lock(lockvar) !DIR$ IF(__INTEL_COMPILER.GE.1400) !DIR$ attributes known_intrinsic :: omp_init_lock @@ -474,6 +479,7 @@ !dec$ attributes alias:'OMP_GET_NUM_TEAMS' :: omp_get_num_teams !dec$ attributes alias:'OMP_GET_TEAM_NUM' :: omp_get_team_num !dec$ attributes alias:'OMP_GET_CANCELLATION' :: omp_get_cancellation +!dec$ attributes alias:'OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device !dec$ attributes alias:'omp_init_lock' :: omp_init_lock !dec$ attributes alias:'omp_destroy_lock' :: omp_destroy_lock @@ -549,6 +555,7 @@ !dec$ attributes alias:'_OMP_GET_NUM_TEAMS' :: omp_get_num_teams !dec$ attributes alias:'_OMP_GET_TEAM_NUM' :: omp_get_team_num !dec$ attributes alias:'_OMP_GET_CANCELLATION' :: omp_get_cancellation +!dec$ attributes alias:'_OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device !dec$ attributes alias:'_omp_init_lock' :: omp_init_lock !dec$ attributes alias:'_omp_destroy_lock' :: omp_destroy_lock @@ -627,6 +634,7 @@ !dec$ attributes alias:'omp_get_num_teams_'::omp_get_num_teams !dec$ attributes alias:'omp_get_team_num_'::omp_get_team_num !dec$ attributes alias:'omp_get_cancellation_'::omp_get_cancellation +!dec$ attributes alias:'omp_is_initial_device_'::omp_is_initial_device !dec$ attributes alias:'omp_init_lock_'::omp_init_lock !dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock @@ -701,6 +709,7 @@ !dec$ attributes alias:'_omp_get_num_teams_'::omp_get_num_teams !dec$ attributes alias:'_omp_get_team_num_'::omp_get_team_num !dec$ attributes alias:'_omp_get_cancellation_'::omp_get_cancellation +!dec$ attributes alias:'_omp_is_initial_device_'::omp_is_initial_device !dec$ attributes alias:'_omp_init_lock_'::omp_init_lock !dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock diff --git a/openmp/runtime/src/include/40/omp_lib.f90.var b/openmp/runtime/src/include/40/omp_lib.f90.var index b5f124c674b..4608db160a7 100644 --- a/openmp/runtime/src/include/40/omp_lib.f90.var +++ b/openmp/runtime/src/include/40/omp_lib.f90.var @@ -208,6 +208,11 @@ integer (kind=omp_integer_kind) omp_get_cancellation end function omp_get_cancellation + function omp_is_initial_device() bind(c) + use omp_lib_kinds + logical (kind=omp_logical_kind) omp_is_initial_device + end function omp_is_initial_device + subroutine omp_init_lock(lockvar) bind(c) !DIR$ IF(__INTEL_COMPILER.GE.1400) !DIR$ attributes known_intrinsic :: omp_init_lock diff --git a/openmp/runtime/src/include/40/omp_lib.h.var b/openmp/runtime/src/include/40/omp_lib.h.var index 8afcdce3232..20532dc34b3 100644 --- a/openmp/runtime/src/include/40/omp_lib.h.var +++ b/openmp/runtime/src/include/40/omp_lib.h.var @@ -190,6 +190,11 @@ integer (kind=omp_integer_kind) omp_get_team_num end function omp_get_team_num + function omp_is_initial_device() bind(c) + import + logical (kind=omp_logical_kind) omp_is_initial_device + end function omp_is_initial_device + subroutine omp_init_lock(lockvar) bind(c) !DIR$ IF(__INTEL_COMPILER.GE.1400) !DIR$ attributes known_intrinsic :: omp_init_lock @@ -435,6 +440,7 @@ !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtick !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_default_device !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_default_device +!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_is_initial_device !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams !DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num @@ -500,6 +506,7 @@ !$omp declare target(omp_get_wtick ) !$omp declare target(omp_get_default_device ) !$omp declare target(omp_set_default_device ) +!$omp declare target(omp_is_initial_device ) !$omp declare target(omp_get_num_devices ) !$omp declare target(omp_get_num_teams ) !$omp declare target(omp_get_team_num ) diff --git a/openmp/runtime/src/kmp_ftn_entry.h b/openmp/runtime/src/kmp_ftn_entry.h index d43d545466a..885f6fbb9ed 100644 --- a/openmp/runtime/src/kmp_ftn_entry.h +++ b/openmp/runtime/src/kmp_ftn_entry.h @@ -770,6 +770,32 @@ FTN_GET_NUM_DEVICES( void ) #endif // KMP_MIC || KMP_OS_DARWIN +#if ! KMP_OS_LINUX + +int FTN_STDCALL +FTN_IS_INITIAL_DEVICE( void ) +{ + return 1; +} + +#else + +// This internal function is used when the entry from the offload library +// is not found. +int _Offload_get_device_number( void ) __attribute__((weak)); + +int FTN_STDCALL +xexpand(FTN_IS_INITIAL_DEVICE)( void ) +{ + if( _Offload_get_device_number ) { + return _Offload_get_device_number() == -1; + } else { + return 1; + } +} + +#endif // ! KMP_OS_LINUX + #endif // OMP_40_ENABLED #ifdef KMP_STUB @@ -1108,6 +1134,7 @@ xaliasify(FTN_GET_PROC_BIND, 40); xaliasify(FTN_GET_NUM_TEAMS, 40); xaliasify(FTN_GET_TEAM_NUM, 40); xaliasify(FTN_GET_CANCELLATION, 40); +xaliasify(FTN_IS_INITIAL_DEVICE, 40); #endif /* OMP_40_ENABLED */ #if OMP_41_ENABLED @@ -1176,6 +1203,7 @@ xversionify(FTN_GET_PROC_BIND, 40, "OMP_4.0"); xversionify(FTN_GET_NUM_TEAMS, 40, "OMP_4.0"); xversionify(FTN_GET_TEAM_NUM, 40, "OMP_4.0"); xversionify(FTN_GET_CANCELLATION, 40, "OMP_4.0"); +xversionify(FTN_IS_INITIAL_DEVICE, 40, "OMP_4.0"); #endif /* OMP_40_ENABLED */ #if OMP_41_ENABLED diff --git a/openmp/runtime/src/kmp_ftn_os.h b/openmp/runtime/src/kmp_ftn_os.h index 35f798ca26c..4ddebbd3154 100644 --- a/openmp/runtime/src/kmp_ftn_os.h +++ b/openmp/runtime/src/kmp_ftn_os.h @@ -101,6 +101,7 @@ #define FTN_SET_DEFAULT_DEVICE omp_set_default_device #define FTN_GET_NUM_DEVICES omp_get_num_devices #endif + #define FTN_IS_INITIAL_DEVICE omp_is_initial_device #endif #if OMP_40_ENABLED @@ -192,6 +193,7 @@ #define FTN_SET_DEFAULT_DEVICE omp_set_default_device_ #define FTN_GET_NUM_DEVICES omp_get_num_devices_ #endif + #define FTN_IS_INITIAL_DEVICE omp_is_initial_device_ #endif @@ -284,6 +286,7 @@ #define FTN_SET_DEFAULT_DEVICE OMP_SET_DEFAULT_DEVICE #define FTN_GET_NUM_DEVICES OMP_GET_NUM_DEVICES #endif + #define FTN_IS_INITIAL_DEVICE OMP_IS_INITIAL_DEVICE #endif @@ -376,6 +379,7 @@ #define FTN_SET_DEFAULT_DEVICE OMP_SET_DEFAULT_DEVICE_ #define FTN_GET_NUM_DEVICES OMP_GET_NUM_DEVICES_ #endif + #define FTN_IS_INITIAL_DEVICE OMP_IS_INITIAL_DEVICE_ #endif |