diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h index c90931d8a9966..ac680e32d390e 100644 --- a/openmp/runtime/src/kmp.h +++ b/openmp/runtime/src/kmp.h @@ -3061,6 +3061,8 @@ extern int __kmp_storage_map_verbose_specified; #if KMP_ARCH_X86 || KMP_ARCH_X86_64 extern kmp_cpuinfo_t __kmp_cpuinfo; static inline bool __kmp_is_hybrid_cpu() { return __kmp_cpuinfo.flags.hybrid; } +#elif KMP_OS_DARWIN && KMP_ARCH_AARCH64 +static inline bool __kmp_is_hybrid_cpu() { return true; } #else static inline bool __kmp_is_hybrid_cpu() { return false; } #endif diff --git a/openmp/runtime/src/kmp_global.cpp b/openmp/runtime/src/kmp_global.cpp index 525873646125b..99a6e88e25f8d 100644 --- a/openmp/runtime/src/kmp_global.cpp +++ b/openmp/runtime/src/kmp_global.cpp @@ -425,7 +425,13 @@ int __kmp_env_consistency_check = FALSE; /* KMP_CONSISTENCY_CHECK specified? */ // 0 = never yield; // 1 = always yield (default); // 2 = yield only if oversubscribed +#if KMP_OS_DARWIN && KMP_ARCH_AARCH64 +// Set to 0 for environments where yield is slower +kmp_int32 __kmp_use_yield = 0; +#else kmp_int32 __kmp_use_yield = 1; +#endif + // This will be 1 if KMP_USE_YIELD environment variable was set explicitly kmp_int32 __kmp_use_yield_exp_set = 0; diff --git a/openmp/runtime/src/kmp_runtime.cpp b/openmp/runtime/src/kmp_runtime.cpp index a44b4d88bc0b0..2b339fd38d63c 100644 --- a/openmp/runtime/src/kmp_runtime.cpp +++ b/openmp/runtime/src/kmp_runtime.cpp @@ -8300,7 +8300,7 @@ void __kmp_aux_set_library(enum library_type arg) { break; case library_throughput: if (__kmp_dflt_blocktime == KMP_MAX_BLOCKTIME) - __kmp_dflt_blocktime = 200; + __kmp_dflt_blocktime = KMP_DEFAULT_BLOCKTIME; break; default: KMP_FATAL(UnknownLibraryType, arg);