21 #ifndef __TBB_mic_common_H 22 #define __TBB_mic_common_H 24 #ifndef __TBB_machine_H 25 #error Do not #include this internal file directly; use public TBB headers instead. 28 #if ! __TBB_DEFINE_MIC 29 #error mic_common.h should be included only when building for Intel(R) Many Integrated Core Architecture 32 #ifndef __TBB_PREFETCHING 33 #define __TBB_PREFETCHING 1 36 #include <immintrin.h> 37 #define __TBB_cl_prefetch(p) _mm_prefetch((const char*)p, _MM_HINT_T1) 38 #define __TBB_cl_evict(p) _mm_clevict(p, _MM_HINT_T1) 42 #define __TBB_full_memory_fence() __asm__ __volatile__("lock; addl $0,(%%rsp)":::"memory") 43 #define __TBB_Pause(x) _mm_delay_32(16*(x)) 44 #define __TBB_STEALING_PAUSE 1500/16 46 #define __TBB_Yield() sched_yield() 49 #define __TBB_STEALING_ABORT_ON_CONTENTION 1 50 #define __TBB_YIELD2P 1 51 #define __TBB_HOARD_NONLOCAL_TASKS 1 53 #if ! ( __FreeBSD__ || __linux__ ) 54 #error Intel(R) Many Integrated Core Compiler does not define __FreeBSD__ or __linux__ anymore. Check for the __TBB_XXX_BROKEN defined under __FreeBSD__ or __linux__.