diff options
Diffstat (limited to 'openmp/runtime/src')
-rw-r--r-- | openmp/runtime/src/kmp_affinity.h | 23 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_csupport.c | 2 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_gsupport.c | 2 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_os.h | 8 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_platform.h | 14 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_runtime.c | 4 | ||||
-rw-r--r-- | openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h | 14 | ||||
-rw-r--r-- | openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c | 2 | ||||
-rw-r--r-- | openmp/runtime/src/z_Linux_asm.s | 4 |
9 files changed, 58 insertions, 15 deletions
diff --git a/openmp/runtime/src/kmp_affinity.h b/openmp/runtime/src/kmp_affinity.h index fc43e8a7462..142acf7f514 100644 --- a/openmp/runtime/src/kmp_affinity.h +++ b/openmp/runtime/src/kmp_affinity.h @@ -204,7 +204,28 @@ public: # elif __NR_sched_getaffinity != 223 # error Wrong code for getaffinity system call. # endif /* __NR_sched_getaffinity */ -# else +# elif KMP_ARCH_MIPS +# ifndef __NR_sched_setaffinity +# define __NR_sched_setaffinity 4239 +# elif __NR_sched_setaffinity != 4239 +# error Wrong code for setaffinity system call. +# endif /* __NR_sched_setaffinity */ +# ifndef __NR_sched_getaffinity +# define __NR_sched_getaffinity 4240 +# elif __NR_sched_getaffinity != 4240 +# error Wrong code for getaffinity system call. +# endif /* __NR_sched_getaffinity */ +# elif KMP_ARCH_MIPS64 +# ifndef __NR_sched_setaffinity +# define __NR_sched_setaffinity 5195 +# elif __NR_sched_setaffinity != 5195 +# error Wrong code for setaffinity system call. +# endif /* __NR_sched_setaffinity */ +# ifndef __NR_sched_getaffinity +# define __NR_sched_getaffinity 5196 +# elif __NR_sched_getaffinity != 5196 +# error Wrong code for getaffinity system call. +# endif /* __NR_sched_getaffinity */ # error Unknown or unsupported architecture # endif /* KMP_ARCH_* */ class KMPNativeAffinity : public KMPAffinity { diff --git a/openmp/runtime/src/kmp_csupport.c b/openmp/runtime/src/kmp_csupport.c index f774ac14c00..00dc47167a3 100644 --- a/openmp/runtime/src/kmp_csupport.c +++ b/openmp/runtime/src/kmp_csupport.c @@ -624,7 +624,7 @@ __kmpc_flush(ident_t *loc) #endif // KMP_COMPILER_ICC }; // if #endif // KMP_MIC - #elif (KMP_ARCH_ARM || KMP_ARCH_AARCH64) + #elif (KMP_ARCH_ARM || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS || KMP_ARCH_MIPS64) // Nothing to see here move along #elif KMP_ARCH_PPC64 // Nothing needed here (we have a real MB above). diff --git a/openmp/runtime/src/kmp_gsupport.c b/openmp/runtime/src/kmp_gsupport.c index ca97fb6731e..e07c09d3c2e 100644 --- a/openmp/runtime/src/kmp_gsupport.c +++ b/openmp/runtime/src/kmp_gsupport.c @@ -232,7 +232,7 @@ xexpand(KMP_API_NAME_GOMP_ORDERED_END)(void) // (IA-32 architecture) or 64-bit signed (Intel(R) 64). // -#if KMP_ARCH_X86 || KMP_ARCH_ARM +#if KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_MIPS # define KMP_DISPATCH_INIT __kmp_aux_dispatch_init_4 # define KMP_DISPATCH_FINI_CHUNK __kmp_aux_dispatch_fini_chunk_4 # define KMP_DISPATCH_NEXT __kmpc_dispatch_next_4 diff --git a/openmp/runtime/src/kmp_os.h b/openmp/runtime/src/kmp_os.h index 65382dbf3b1..2a900d37e02 100644 --- a/openmp/runtime/src/kmp_os.h +++ b/openmp/runtime/src/kmp_os.h @@ -147,9 +147,9 @@ # define KMP_UINT64_SPEC "llu" #endif /* KMP_OS_UNIX */ -#if KMP_ARCH_X86 || KMP_ARCH_ARM +#if KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_MIPS # define KMP_SIZE_T_SPEC KMP_UINT32_SPEC -#elif KMP_ARCH_X86_64 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 +#elif KMP_ARCH_X86_64 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS64 # define KMP_SIZE_T_SPEC KMP_UINT64_SPEC #else # error "Can't determine size_t printf format specifier." @@ -559,7 +559,7 @@ extern kmp_real64 __kmp_xchg_real64( volatile kmp_real64 *p, kmp_real64 v ); # endif #endif /* KMP_OS_WINDOWS */ -#if KMP_ARCH_PPC64 || KMP_ARCH_ARM || KMP_ARCH_AARCH64 +#if KMP_ARCH_PPC64 || KMP_ARCH_ARM || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS || KMP_ARCH_MIPS64 # define KMP_MB() __sync_synchronize() #endif @@ -618,7 +618,7 @@ extern kmp_real64 __kmp_xchg_real64( volatile kmp_real64 *p, kmp_real64 v ); #define TCW_SYNC_8(a,b) (a) = (b) #define TCX_SYNC_8(a,b,c) KMP_COMPARE_AND_STORE_REL64((volatile kmp_int64 *)(volatile void *)&(a), (kmp_int64)(b), (kmp_int64)(c)) -#if KMP_ARCH_X86 +#if KMP_ARCH_X86 || KMP_ARCH_MIPS // What about ARM? #define TCR_PTR(a) ((void *)TCR_4(a)) #define TCW_PTR(a,b) TCW_4((a),(b)) diff --git a/openmp/runtime/src/kmp_platform.h b/openmp/runtime/src/kmp_platform.h index b6a19dc06c3..2f43cf83ff9 100644 --- a/openmp/runtime/src/kmp_platform.h +++ b/openmp/runtime/src/kmp_platform.h @@ -77,6 +77,8 @@ #define KMP_ARCH_PPC64_BE 0 #define KMP_ARCH_PPC64_LE 0 #define KMP_ARCH_PPC64 (KMP_ARCH_PPC64_LE || KMP_ARCH_PPC64_BE) +#define KMP_ARCH_MIPS 0 +#define KMP_ARCH_MIPS64 0 #if KMP_OS_WINDOWS # if defined _M_AMD64 @@ -106,6 +108,14 @@ # elif defined __aarch64__ # undef KMP_ARCH_AARCH64 # define KMP_ARCH_AARCH64 1 +# elif defined __mips__ +# if defined __mips64 +# undef KMP_ARCH_MIPS64 +# define KMP_ARCH_MIPS64 1 +# else +# undef KMP_ARCH_MIPS +# define KMP_ARCH_MIPS 1 +# endif # endif #endif @@ -161,10 +171,10 @@ #endif /* Specify 32 bit architectures here */ -#define KMP_32_BIT_ARCH (KMP_ARCH_X86 || KMP_ARCH_ARM) +#define KMP_32_BIT_ARCH (KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_MIPS) // TODO: Fixme - This is clever, but really fugly -#if (1 != KMP_ARCH_X86 + KMP_ARCH_X86_64 + KMP_ARCH_ARM + KMP_ARCH_PPC64 + KMP_ARCH_AARCH64) +#if (1 != KMP_ARCH_X86 + KMP_ARCH_X86_64 + KMP_ARCH_ARM + KMP_ARCH_PPC64 + KMP_ARCH_AARCH64 + KMP_ARCH_MIPS + KMP_ARCH_MIPS64) # error Unknown or unsupported architecture #endif diff --git a/openmp/runtime/src/kmp_runtime.c b/openmp/runtime/src/kmp_runtime.c index da602d9bc0d..2a67206f981 100644 --- a/openmp/runtime/src/kmp_runtime.c +++ b/openmp/runtime/src/kmp_runtime.c @@ -7565,7 +7565,7 @@ __kmp_determine_reduction_method( ident_t *loc, kmp_int32 global_tid, int atomic_available = FAST_REDUCTION_ATOMIC_METHOD_GENERATED; int tree_available = FAST_REDUCTION_TREE_METHOD_GENERATED; - #if KMP_ARCH_X86_64 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 + #if KMP_ARCH_X86_64 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS64 #if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN @@ -7591,7 +7591,7 @@ __kmp_determine_reduction_method( ident_t *loc, kmp_int32 global_tid, #error "Unknown or unsupported OS" #endif // KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN - #elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH + #elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH || KMP_ARCH_MIPS #if KMP_OS_LINUX || KMP_OS_WINDOWS diff --git a/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h b/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h index 106823968fe..c3ce2fb42e1 100644 --- a/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h +++ b/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h @@ -142,6 +142,14 @@ # define ITT_ARCH_PPC64 5 #endif /* ITT_ARCH_PPC64 */ +#ifndef ITT_ARCH_MIPS +# define ITT_ARCH_MIPS 6 +#endif /* ITT_ARCH_MIPS */ + +#ifndef ITT_ARCH_MIPS64 +# define ITT_ARCH_MIPS64 6 +#endif /* ITT_ARCH_MIPS64 */ + #ifndef ITT_ARCH # if defined _M_IX86 || defined __i386__ @@ -156,6 +164,10 @@ # define ITT_ARCH ITT_ARCH_PPC64 # elif defined __aarch64__ # define ITT_ARCH ITT_ARCH_AARCH64 +# elif defined __mips__ && !defined __mips64 +# define ITT_ARCH ITT_ARCH_MIPS +# elif defined __mips__ && defined __mips64 +# define ITT_ARCH ITT_ARCH_MIPS64 # endif #endif @@ -293,7 +305,7 @@ ITT_INLINE long __TBB_machine_fetchadd4(volatile void* ptr, long addend) : "memory"); return result; } -#elif ITT_ARCH==ITT_ARCH_ARM || ITT_ARCH==ITT_ARCH_PPC64 || ITT_ARCH==ITT_ARCH_AARCH64 +#elif ITT_ARCH==ITT_ARCH_ARM || ITT_ARCH==ITT_ARCH_PPC64 || ITT_ARCH==ITT_ARCH_AARCH64 || ITT_ARCH==ITT_ARCH_MIPS || ITT_ARCH==ITT_ARCH_MIPS64 #define __TBB_machine_fetchadd4(addr, val) __sync_fetch_and_add(addr, val) #endif /* ITT_ARCH==ITT_ARCH_IA64 */ #ifndef ITT_SIMPLE_INIT diff --git a/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c b/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c index 89a716dc0ab..de4fe41c093 100644 --- a/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c +++ b/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c @@ -72,7 +72,7 @@ static const char* ittnotify_lib_name = "libittnotify.dylib"; #ifndef LIB_VAR_NAME -#if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM +#if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM || ITT_ARCH==ITT_ARCH_MIPS #define LIB_VAR_NAME INTEL_LIBITTNOTIFY32 #else #define LIB_VAR_NAME INTEL_LIBITTNOTIFY64 diff --git a/openmp/runtime/src/z_Linux_asm.s b/openmp/runtime/src/z_Linux_asm.s index 60130a4c0ef..d6e1c0b7195 100644 --- a/openmp/runtime/src/z_Linux_asm.s +++ b/openmp/runtime/src/z_Linux_asm.s @@ -1776,7 +1776,7 @@ __kmp_invoke_microtask: #endif /* KMP_ARCH_PPC64 */ -#if KMP_ARCH_ARM +#if KMP_ARCH_ARM || KMP_ARCH_MIPS .data .comm .gomp_critical_user_,32,8 .data @@ -1787,7 +1787,7 @@ __kmp_unnamed_critical_addr: .size __kmp_unnamed_critical_addr,4 #endif /* KMP_ARCH_ARM */ -#if KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 +#if KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS64 .data .comm .gomp_critical_user_,32,8 .data |