forked from OSchip/llvm-project
Fix Visual Studio builds
Have Visual Studio use MemoryBarrier() instead of _mm_mfence() and remove __declspec align attribute from function parameters in kmp_atomic.h llvm-svn: 264166
This commit is contained in:
parent
e6f1b7f094
commit
b7d30cbc7e
|
@ -35,6 +35,13 @@
|
|||
#if defined( __cplusplus ) && ( KMP_OS_WINDOWS )
|
||||
// create shortcuts for c99 complex types
|
||||
|
||||
// Visual Studio cannot have function parameters that have the
|
||||
// align __declspec attribute, so we must remove it. (Compiler Error C2719)
|
||||
#if KMP_COMPILER_MSVC
|
||||
# undef KMP_DO_ALIGN
|
||||
# define KMP_DO_ALIGN(alignment) /* Nothing */
|
||||
#endif
|
||||
|
||||
#if (_MSC_VER < 1600) && defined(_DEBUG)
|
||||
// Workaround for the problem of _DebugHeapTag unresolved external.
|
||||
// This problem prevented to use our static debug library for C tests
|
||||
|
|
|
@ -654,8 +654,10 @@ __kmpc_flush(ident_t *loc)
|
|||
if ( ! __kmp_cpuinfo.sse2 ) {
|
||||
// CPU cannot execute SSE2 instructions.
|
||||
} else {
|
||||
#if KMP_COMPILER_ICC || KMP_COMPILER_MSVC
|
||||
#if KMP_COMPILER_ICC
|
||||
_mm_mfence();
|
||||
#elif KMP_COMPILER_MSVC
|
||||
MemoryBarrier();
|
||||
#else
|
||||
__sync_synchronize();
|
||||
#endif // KMP_COMPILER_ICC
|
||||
|
|
Loading…
Reference in New Issue