diff options
author | Jim Cownie <james.h.cownie@intel.com> | 2014-08-05 09:32:28 +0000 |
---|---|---|
committer | Jim Cownie <james.h.cownie@intel.com> | 2014-08-05 09:32:28 +0000 |
commit | 3b81ce6b15f78dba542f54ef693591f0089e3135 (patch) | |
tree | 8957c0df7a8668f52022f648cf048940a130d7b1 /openmp/runtime/src | |
parent | 947cef191d0306c813c39d6265dd183d83033be1 (diff) | |
download | bcm5719-llvm-3b81ce6b15f78dba542f54ef693591f0089e3135.tar.gz bcm5719-llvm-3b81ce6b15f78dba542f54ef693591f0089e3135.zip |
After three iterations of community review, we believe that this new
CMAKE buld system should meet everyone's requirements.
Enhanced CMake Build System Commit
* Supports Linux, Mac, Windows, and IntelĀ® Xeon Phi builds
* Supports building with gcc, icc, clang, and Visual Studio compilers
* Supports bulding "fat" libraries on OS/X with clang
* Details and documentation on how to use build system
are in Build_With_CMake.txt
* To use the old CMake build system (corresponds to
CMakeLists.txt.old), just rename CMakeLists.txt to
CMakeLists.txt.other and rename CMakeLists.txt.old to
CMakeLists.txt
llvm-svn: 214850
Diffstat (limited to 'openmp/runtime/src')
-rw-r--r-- | openmp/runtime/src/dllexports | 36 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_csupport.c | 2 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_ftn_entry.h | 7 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_os.h | 6 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_str.h | 5 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_version.c | 2 | ||||
-rw-r--r-- | openmp/runtime/src/makefile.mk | 6 |
7 files changed, 53 insertions, 11 deletions
diff --git a/openmp/runtime/src/dllexports b/openmp/runtime/src/dllexports index 779f1d43cd2..2c58f4c673f 100644 --- a/openmp/runtime/src/dllexports +++ b/openmp/runtime/src/dllexports @@ -471,7 +471,9 @@ kmp_set_warnings_off 780 # ATOMIC entries + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_div 2000 + %endif __kmpc_atomic_fixed1_add 2001 __kmpc_atomic_fixed1_andb 2002 @@ -577,6 +579,7 @@ kmp_set_warnings_off 780 __kmpc_atomic_cmplx10_sub 2094 __kmpc_atomic_cmplx10_mul 2095 __kmpc_atomic_cmplx10_div 2096 + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_add 2097 __kmpc_atomic_cmplx16_sub 2098 __kmpc_atomic_cmplx16_mul 2099 @@ -627,6 +630,7 @@ kmp_set_warnings_off 780 __kmpc_atomic_float10_sub_fp 2136 __kmpc_atomic_float10_mul_fp 2137 __kmpc_atomic_float10_div_fp 2138 + %endif __kmpc_atomic_fixed1_mul_float8 2169 __kmpc_atomic_fixed1_div_float8 2170 @@ -661,6 +665,7 @@ kmp_set_warnings_off 780 %ifdef arch_32 + %ifdef HAVE_QUAD __kmpc_atomic_float16_add_a16 2255 __kmpc_atomic_float16_sub_a16 2256 __kmpc_atomic_float16_mul_a16 2257 @@ -672,6 +677,7 @@ kmp_set_warnings_off 780 __kmpc_atomic_cmplx16_sub_a16 2262 __kmpc_atomic_cmplx16_mul_a16 2263 __kmpc_atomic_cmplx16_div_a16 2264 + %endif %endif @@ -686,14 +692,18 @@ kmp_set_warnings_off 780 __kmpc_atomic_float4_rd 2269 __kmpc_atomic_float8_rd 2270 __kmpc_atomic_float10_rd 2271 + %ifdef HAVE_QUAD __kmpc_atomic_float16_rd 2272 + %endif __kmpc_atomic_cmplx4_rd 2273 __kmpc_atomic_cmplx8_rd 2274 __kmpc_atomic_cmplx10_rd 2275 + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_rd 2276 - %ifdef arch_32 - __kmpc_atomic_float16_a16_rd 2277 - __kmpc_atomic_cmplx16_a16_rd 2278 + %ifdef arch_32 + __kmpc_atomic_float16_a16_rd 2277 + __kmpc_atomic_cmplx16_a16_rd 2278 + %endif %endif __kmpc_atomic_fixed1_wr 2279 __kmpc_atomic_fixed2_wr 2280 @@ -702,15 +712,19 @@ kmp_set_warnings_off 780 __kmpc_atomic_float4_wr 2283 __kmpc_atomic_float8_wr 2284 __kmpc_atomic_float10_wr 2285 + %ifdef HAVE_QUAD __kmpc_atomic_float16_wr 2286 + %endif __kmpc_atomic_cmplx4_wr 2287 __kmpc_atomic_cmplx8_wr 2288 __kmpc_atomic_cmplx10_wr 2289 + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_wr 2290 %ifdef arch_32 __kmpc_atomic_float16_a16_wr 2291 __kmpc_atomic_cmplx16_a16_wr 2292 %endif + %endif __kmpc_atomic_fixed1_add_cpt 2293 __kmpc_atomic_fixed1_andb_cpt 2294 __kmpc_atomic_fixed1_div_cpt 2295 @@ -783,8 +797,10 @@ kmp_set_warnings_off 780 __kmpc_atomic_float4_min_cpt 2362 __kmpc_atomic_float8_max_cpt 2363 __kmpc_atomic_float8_min_cpt 2364 + %ifdef HAVE_QUAD __kmpc_atomic_float16_max_cpt 2365 __kmpc_atomic_float16_min_cpt 2366 + %endif __kmpc_atomic_fixed1_neqv_cpt 2367 __kmpc_atomic_fixed2_neqv_cpt 2368 __kmpc_atomic_fixed4_neqv_cpt 2369 @@ -797,10 +813,12 @@ kmp_set_warnings_off 780 __kmpc_atomic_float10_sub_cpt 2376 __kmpc_atomic_float10_mul_cpt 2377 __kmpc_atomic_float10_div_cpt 2378 + %ifdef HAVE_QUAD __kmpc_atomic_float16_add_cpt 2379 __kmpc_atomic_float16_sub_cpt 2380 __kmpc_atomic_float16_mul_cpt 2381 __kmpc_atomic_float16_div_cpt 2382 + %endif __kmpc_atomic_cmplx4_add_cpt 2383 __kmpc_atomic_cmplx4_sub_cpt 2384 __kmpc_atomic_cmplx4_mul_cpt 2385 @@ -813,13 +831,16 @@ kmp_set_warnings_off 780 __kmpc_atomic_cmplx10_sub_cpt 2392 __kmpc_atomic_cmplx10_mul_cpt 2393 __kmpc_atomic_cmplx10_div_cpt 2394 + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_add_cpt 2395 __kmpc_atomic_cmplx16_sub_cpt 2396 __kmpc_atomic_cmplx16_mul_cpt 2397 __kmpc_atomic_cmplx16_div_cpt 2398 + %endif #__kmpc_atomic_cmplx4_add_cpt_tmp 2409 %ifdef arch_32 + %ifdef HAVE_QUAD __kmpc_atomic_float16_add_a16_cpt 2399 __kmpc_atomic_float16_sub_a16_cpt 2400 __kmpc_atomic_float16_mul_a16_cpt 2401 @@ -831,6 +852,7 @@ kmp_set_warnings_off 780 __kmpc_atomic_cmplx16_mul_a16_cpt 2407 __kmpc_atomic_cmplx16_div_a16_cpt 2408 %endif + %endif __kmpc_atomic_start 2410 __kmpc_atomic_end 2411 @@ -846,16 +868,20 @@ kmp_set_warnings_off 780 __kmpc_atomic_float4_swp 2416 __kmpc_atomic_float8_swp 2417 __kmpc_atomic_float10_swp 2418 + %ifdef HAVE_QUAD __kmpc_atomic_float16_swp 2419 + %endif __kmpc_atomic_cmplx4_swp 2420 __kmpc_atomic_cmplx8_swp 2421 __kmpc_atomic_cmplx10_swp 2422 + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_swp 2423 %ifdef arch_32 __kmpc_atomic_float16_a16_swp 2424 __kmpc_atomic_cmplx16_a16_swp 2425 %endif + %endif __kmpc_atomic_fixed1_sub_cpt_rev 2426 __kmpc_atomic_fixed1_div_cpt_rev 2427 @@ -887,14 +913,17 @@ kmp_set_warnings_off 780 __kmpc_atomic_float8_div_cpt_rev 2453 __kmpc_atomic_float10_sub_cpt_rev 2454 __kmpc_atomic_float10_div_cpt_rev 2455 + %ifdef HAVE_QUAD __kmpc_atomic_float16_sub_cpt_rev 2456 __kmpc_atomic_float16_div_cpt_rev 2457 + %endif __kmpc_atomic_cmplx4_sub_cpt_rev 2458 __kmpc_atomic_cmplx4_div_cpt_rev 2459 __kmpc_atomic_cmplx8_sub_cpt_rev 2460 __kmpc_atomic_cmplx8_div_cpt_rev 2461 __kmpc_atomic_cmplx10_sub_cpt_rev 2462 __kmpc_atomic_cmplx10_div_cpt_rev 2463 + %ifdef HAVE_QUAD __kmpc_atomic_cmplx16_sub_cpt_rev 2464 __kmpc_atomic_cmplx16_div_cpt_rev 2465 @@ -904,6 +933,7 @@ kmp_set_warnings_off 780 __kmpc_atomic_cmplx16_sub_a16_cpt_rev 2468 __kmpc_atomic_cmplx16_div_a16_cpt_rev 2469 %endif + %endif %endif # OMP_40 diff --git a/openmp/runtime/src/kmp_csupport.c b/openmp/runtime/src/kmp_csupport.c index 18b6c359adb..06f2819db87 100644 --- a/openmp/runtime/src/kmp_csupport.c +++ b/openmp/runtime/src/kmp_csupport.c @@ -828,7 +828,7 @@ __kmpc_flush(ident_t *loc, ...) if ( ! __kmp_cpuinfo.sse2 ) { // CPU cannot execute SSE2 instructions. } else { - #if KMP_COMPILER_ICC + #if KMP_COMPILER_ICC || KMP_COMPILER_MSVC _mm_mfence(); #else __sync_synchronize(); diff --git a/openmp/runtime/src/kmp_ftn_entry.h b/openmp/runtime/src/kmp_ftn_entry.h index 8bb75d43d7c..280d76fe405 100644 --- a/openmp/runtime/src/kmp_ftn_entry.h +++ b/openmp/runtime/src/kmp_ftn_entry.h @@ -263,7 +263,7 @@ FTN_GET_AFFINITY_MAX_PROC( void ) #if KMP_OS_WINDOWS && KMP_ARCH_X86_64 if ( __kmp_num_proc_groups <= 1 ) { - return KMP_CPU_SETSIZE; + return (int)KMP_CPU_SETSIZE; } #endif /* KMP_OS_WINDOWS && KMP_ARCH_X86_64 */ return __kmp_xproc; @@ -412,7 +412,7 @@ xexpand(FTN_GET_THREAD_NUM)( void ) gtid = __kmp_entry_gtid(); #elif KMP_OS_WINDOWS if (!__kmp_init_parallel || - (gtid = ((kmp_intptr_t)TlsGetValue( __kmp_gtid_threadprivate_key ))) == 0) { + (gtid = (int)((kmp_intptr_t)TlsGetValue( __kmp_gtid_threadprivate_key ))) == 0) { // Either library isn't initialized or thread is not registered // 0 is the correct TID in this case return 0; @@ -463,7 +463,6 @@ xexpand(FTN_GET_NUM_PROCS)( void ) #ifdef KMP_STUB return 1; #else - int gtid; if ( ! TCR_4(__kmp_init_middle) ) { __kmp_middle_initialize(); } @@ -1013,7 +1012,7 @@ FTN_SET_DEFAULTS( char const * str { #ifndef KMP_STUB #ifdef PASS_ARGS_BY_VALUE - int len = strlen( str ); + int len = (int)strlen( str ); #endif __kmp_aux_set_defaults( str, len ); #endif diff --git a/openmp/runtime/src/kmp_os.h b/openmp/runtime/src/kmp_os.h index bb5e72f635c..a71055339a4 100644 --- a/openmp/runtime/src/kmp_os.h +++ b/openmp/runtime/src/kmp_os.h @@ -46,6 +46,7 @@ #define KMP_COMPILER_ICC 0 #define KMP_COMPILER_GCC 0 #define KMP_COMPILER_CLANG 0 +#define KMP_COMPILER_MSVC 0 #if defined( __INTEL_COMPILER ) # undef KMP_COMPILER_ICC @@ -56,6 +57,9 @@ #elif defined( __GNUC__ ) # undef KMP_COMPILER_GCC # define KMP_COMPILER_GCC 1 +#elif defined( _MSC_VER ) +# undef KMP_COMPILER_MSVC +# define KMP_COMPILER_MSVC 1 #else # error Unknown compiler #endif @@ -175,6 +179,8 @@ typedef __float128 _Quad; # undef KMP_HAVE_QUAD # define KMP_HAVE_QUAD 1 +# elif KMP_COMPILER_MSVC + typedef long double _Quad; # endif #else # if __LDBL_MAX_EXP__ >= 16384 && KMP_COMPILER_GCC diff --git a/openmp/runtime/src/kmp_str.h b/openmp/runtime/src/kmp_str.h index 634d1f1815a..7de3a2ec228 100644 --- a/openmp/runtime/src/kmp_str.h +++ b/openmp/runtime/src/kmp_str.h @@ -28,9 +28,8 @@ #endif // __cplusplus #if KMP_OS_WINDOWS - #define strdup _strdup - #define snprintf _snprintf - #define vsnprintf _vsnprintf +# define strdup _strdup +# define snprintf _snprintf #endif /* some macros to replace ctype.h functions */ diff --git a/openmp/runtime/src/kmp_version.c b/openmp/runtime/src/kmp_version.c index f64d05266b8..b836c39d192 100644 --- a/openmp/runtime/src/kmp_version.c +++ b/openmp/runtime/src/kmp_version.c @@ -53,6 +53,8 @@ #define KMP_COMPILER "Clang " stringer( __clang_major__ ) "." stringer( __clang_minor__ ) #elif KMP_COMPILER_GCC #define KMP_COMPILER "GCC " stringer( __GNUC__ ) "." stringer( __GNUC_MINOR__ ) +#elif KMP_COMPILER_MSVC + #define KMP_COMPILER "MSVC " stringer( __MSC_FULL_VER ) #endif #ifndef KMP_COMPILER #warning "Unknown compiler" diff --git a/openmp/runtime/src/makefile.mk b/openmp/runtime/src/makefile.mk index 9be8799cde4..2fa2e03bc04 100644 --- a/openmp/runtime/src/makefile.mk +++ b/openmp/runtime/src/makefile.mk @@ -73,6 +73,8 @@ OPTIMIZATION := $(call check_variable,OPTIMIZATION,off on) TARGET_COMPILER := $(call check_variable,TARGET_COMPILER,12 11) # Library version: 4 -- legacy, 5 -- compat. VERSION := $(call check_variable,VERSION,5 4) +# quad precision floating point +HAVE_QUAD = 1 VPATH += $(src_dir) VPATH += $(src_dir)i18n/ @@ -171,6 +173,7 @@ ifeq "$(c)" "clang" ld-flags += -m32 -msse as-flags += -m32 -msse endif + HAVE_QUAD = 0 endif ifeq "$(LINK_TYPE)" "dyna" @@ -596,6 +599,9 @@ kmp_version$(obj) : cpp-flags += -D _KMP_BUILD_TIME="\"$(date)\"" gd-flags += -D arch_$(arch) gd-flags += -D $(LIB_TYPE) +ifeq "$(HAVE_QUAD)" "1" + gd-flags += -D HAVE_QUAD +endif ifeq "$(OMP_VERSION)" "40" gd-flags += -D OMP_40 -D OMP_30 else |