diff options
| author | Paul Osmialowski <pawel.osmialowski@arm.com> | 2016-05-13 08:26:42 +0000 |
|---|---|---|
| committer | Paul Osmialowski <pawel.osmialowski@arm.com> | 2016-05-13 08:26:42 +0000 |
| commit | 7e5e8684fb4d65953e388a77491438a5ecc4d2d3 (patch) | |
| tree | b2b2566f5472f392991b978d2ee4184dc5165a44 /openmp/runtime/src/z_Linux_util.c | |
| parent | 12e7931d0b497c1ff8a5f3389b88315140765695 (diff) | |
| download | bcm5719-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.c | 6 |
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 |

