summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src/z_Linux_util.c
diff options
context:
space:
mode:
authorPaul Osmialowski <pawel.osmialowski@arm.com>2016-05-13 08:26:42 +0000
committerPaul Osmialowski <pawel.osmialowski@arm.com>2016-05-13 08:26:42 +0000
commit7e5e8684fb4d65953e388a77491438a5ecc4d2d3 (patch)
treeb2b2566f5472f392991b978d2ee4184dc5165a44 /openmp/runtime/src/z_Linux_util.c
parent12e7931d0b497c1ff8a5f3389b88315140765695 (diff)
downloadbcm5719-llvm-7e5e8684fb4d65953e388a77491438a5ecc4d2d3.tar.gz
bcm5719-llvm-7e5e8684fb4d65953e388a77491438a5ecc4d2d3.zip
Solve 'Too many args to microtask' problem
This patch solves 'Too many args to microtask' problem which occurs while executing lulesh2.0.3 benchmark on AArch64. To solve this I had to wrtite AArch64 assembly version of __kmp_invoke_microtask() function, similar to x86 and x86_64 implementations. Differential Revision: http://reviews.llvm.org/D19879 llvm-svn: 269399
Diffstat (limited to 'openmp/runtime/src/z_Linux_util.c')
-rw-r--r--openmp/runtime/src/z_Linux_util.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/openmp/runtime/src/z_Linux_util.c b/openmp/runtime/src/z_Linux_util.c
index 5d61cd177fe..6258263459d 100644
--- a/openmp/runtime/src/z_Linux_util.c
+++ b/openmp/runtime/src/z_Linux_util.c
@@ -518,7 +518,7 @@ __kmp_test_then_and32( volatile kmp_int32 *p, kmp_int32 d )
return old_value;
}
-# if KMP_ARCH_X86 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64
+# if KMP_ARCH_X86 || KMP_ARCH_PPC64 || (KMP_OS_LINUX && KMP_ARCH_AARCH64)
kmp_int8
__kmp_test_then_add8( volatile kmp_int8 *p, kmp_int8 d )
{
@@ -552,7 +552,7 @@ __kmp_test_then_add64( volatile kmp_int64 *p, kmp_int64 d )
}
return old_value;
}
-# endif /* KMP_ARCH_X86 */
+# endif /* KMP_ARCH_X86 || KMP_ARCH_PPC64 || (KMP_OS_LINUX && KMP_ARCH_AARCH64) */
kmp_int64
__kmp_test_then_or64( volatile kmp_int64 *p, kmp_int64 d )
@@ -2574,7 +2574,7 @@ __kmp_get_load_balance( int max )
#endif // USE_LOAD_BALANCE
-#if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC)
+#if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC || (KMP_OS_LINUX && KMP_ARCH_AARCH64))
// we really only need the case with 1 argument, because CLANG always build
// a struct of pointers to shared variables referenced in the outlined function
OpenPOWER on IntegriCloud