From: Eric Christopher Date: Mon, 19 Sep 2011 20:43:23 +0000 (+0000) Subject: Rename LLVM_MULTITHREADED define and fix build without threads. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=627445f3e661629d6d5f82f2dbf17be140a93c7d Rename LLVM_MULTITHREADED define and fix build without threads. Patch by Arrowdodger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140064 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 2def29dffc6..0883ed516dd 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -1515,9 +1515,9 @@ AC_LINK_IFELSE( ]]), AC_LANG_POP([C++]) AC_MSG_RESULT(yes) - AC_DEFINE(LLVM_MULTITHREADED, 1, Build multithreading support into LLVM), + AC_DEFINE(LLVM_HAS_ATOMICS, 1, Has gcc/MSVC atomic intrinsics), AC_MSG_RESULT(no) - AC_DEFINE(LLVM_MULTITHREADED, 0, Build multithreading support into LLVM) + AC_DEFINE(LLVM_HAS_ATOMICS, 0, Has gcc/MSVC atomic intrinsics) AC_MSG_WARN([LLVM will be built thread-unsafe because atomic builtins are missing])) dnl===-----------------------------------------------------------------------=== diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index 805ab987750..0381dbf4963 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -272,7 +272,7 @@ else() unset(HAVE_FFI_CALL CACHE) endif( LLVM_ENABLE_FFI ) -# Define LLVM_MULTITHREADED if gcc atomic builtins exists. +# Define LLVM_HAS_ATOMICS if gcc or MSVC atomic builtins are supported. include(CheckAtomic) if( LLVM_ENABLE_PIC ) diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake index f40ff4dfbd3..0d63a82b97a 100644 --- a/cmake/modules/CheckAtomic.cmake +++ b/cmake/modules/CheckAtomic.cmake @@ -22,8 +22,8 @@ int main() { #endif return 0; } -" LLVM_MULTITHREADED) +" LLVM_HAS_ATOMICS) -if( NOT LLVM_MULTITHREADED ) +if( NOT LLVM_HAS_ATOMICS ) message(STATUS "Warning: LLVM will be built thread-unsafe because atomic builtins are missing") endif() diff --git a/configure b/configure index 920040c30e6..8c59539b3a9 100755 --- a/configure +++ b/configure @@ -21027,7 +21027,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define LLVM_MULTITHREADED 1 +#define LLVM_HAS_ATOMICS 1 _ACEOF else @@ -21038,7 +21038,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 echo "${ECHO_T}no" >&6; } cat >>confdefs.h <<\_ACEOF -#define LLVM_MULTITHREADED 0 +#define LLVM_HAS_ATOMICS 0 _ACEOF { echo "$as_me:$LINENO: WARNING: LLVM will be built thread-unsafe because atomic builtins are missing" >&5 diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake index f45b0f462af..15321cab930 100644 --- a/include/llvm/Config/config.h.cmake +++ b/include/llvm/Config/config.h.cmake @@ -566,8 +566,8 @@ /* Installation directory for man pages */ #cmakedefine LLVM_MANDIR "${LLVM_MANDIR}" -/* Build multithreading support into LLVM */ -#cmakedefine LLVM_MULTITHREADED ${LLVM_MULTITHREADED} +/* Has gcc/MSVC atomic intrinsics */ +#define LLVM_HAS_ATOMICS ${LLVM_HAS_ATOMICS} /* LLVM architecture name for the native architecture, if available */ #cmakedefine LLVM_NATIVE_ARCH ${LLVM_NATIVE_ARCH} diff --git a/include/llvm/Config/config.h.in b/include/llvm/Config/config.h.in index 7246f71d038..c5d354e542d 100644 --- a/include/llvm/Config/config.h.in +++ b/include/llvm/Config/config.h.in @@ -564,8 +564,8 @@ /* Installation directory for man pages */ #undef LLVM_MANDIR -/* Build multithreading support into LLVM */ -#undef LLVM_MULTITHREADED +/* Has gcc/MSVC atomic intrinsics */ +#undef LLVM_HAS_ATOMICS /* LLVM architecture name for the native architecture, if available */ #undef LLVM_NATIVE_ARCH diff --git a/include/llvm/Config/llvm-config.h.cmake b/include/llvm/Config/llvm-config.h.cmake index 50ae2675da4..59ea122a908 100644 --- a/include/llvm/Config/llvm-config.h.cmake +++ b/include/llvm/Config/llvm-config.h.cmake @@ -46,8 +46,8 @@ /* Installation directory for man pages */ #cmakedefine LLVM_MANDIR "${LLVM_MANDIR}" -/* Build multithreading support into LLVM */ -#cmakedefine LLVM_MULTITHREADED ${LLVM_MULTITHREADED} +/* Has gcc/MSVC atomic intrinsics */ +#define LLVM_HAS_ATOMICS ${LLVM_HAS_ATOMICS} /* LLVM architecture name for the native architecture, if available */ #cmakedefine LLVM_NATIVE_ARCH ${LLVM_NATIVE_ARCH} diff --git a/include/llvm/Config/llvm-config.h.in b/include/llvm/Config/llvm-config.h.in index bc9e8caf5d6..c18a1798b13 100644 --- a/include/llvm/Config/llvm-config.h.in +++ b/include/llvm/Config/llvm-config.h.in @@ -46,8 +46,8 @@ /* Installation directory for man pages */ #undef LLVM_MANDIR -/* Build multithreading support into LLVM */ -#undef LLVM_MULTITHREADED +/* Has gcc/MSVC atomic intrinsics */ +#undef LLVM_HAS_ATOMICS /* LLVM architecture name for the native architecture, if available */ #undef LLVM_NATIVE_ARCH diff --git a/lib/Support/Atomic.cpp b/lib/Support/Atomic.cpp index c7b4bff2794..94760cc069f 100644 --- a/lib/Support/Atomic.cpp +++ b/lib/Support/Atomic.cpp @@ -22,7 +22,7 @@ using namespace llvm; #endif void sys::MemoryFence() { -#if LLVM_MULTITHREADED==0 +#if LLVM_HAS_ATOMICS == 0 return; #else # if defined(__GNUC__) @@ -38,7 +38,7 @@ void sys::MemoryFence() { sys::cas_flag sys::CompareAndSwap(volatile sys::cas_flag* ptr, sys::cas_flag new_value, sys::cas_flag old_value) { -#if LLVM_MULTITHREADED==0 +#if LLVM_HAS_ATOMICS == 0 sys::cas_flag result = *ptr; if (result == old_value) *ptr = new_value; @@ -53,7 +53,7 @@ sys::cas_flag sys::CompareAndSwap(volatile sys::cas_flag* ptr, } sys::cas_flag sys::AtomicIncrement(volatile sys::cas_flag* ptr) { -#if LLVM_MULTITHREADED==0 +#if LLVM_HAS_ATOMICS == 0 ++(*ptr); return *ptr; #elif defined(__GNUC__) @@ -66,7 +66,7 @@ sys::cas_flag sys::AtomicIncrement(volatile sys::cas_flag* ptr) { } sys::cas_flag sys::AtomicDecrement(volatile sys::cas_flag* ptr) { -#if LLVM_MULTITHREADED==0 +#if LLVM_HAS_ATOMICS == 0 --(*ptr); return *ptr; #elif defined(__GNUC__) @@ -79,7 +79,7 @@ sys::cas_flag sys::AtomicDecrement(volatile sys::cas_flag* ptr) { } sys::cas_flag sys::AtomicAdd(volatile sys::cas_flag* ptr, sys::cas_flag val) { -#if LLVM_MULTITHREADED==0 +#if LLVM_HAS_ATOMICS == 0 *ptr += val; return *ptr; #elif defined(__GNUC__) diff --git a/lib/Support/Threading.cpp b/lib/Support/Threading.cpp index bf432a9af71..8f0bb93eb4d 100644 --- a/lib/Support/Threading.cpp +++ b/lib/Support/Threading.cpp @@ -24,7 +24,7 @@ static bool multithreaded_mode = false; static sys::Mutex* global_lock = 0; bool llvm::llvm_start_multithreaded() { -#ifdef LLVM_MULTITHREADED +#if ENABLE_THREADS != 0 assert(!multithreaded_mode && "Already multithreaded!"); multithreaded_mode = true; global_lock = new sys::Mutex(true); @@ -39,7 +39,7 @@ bool llvm::llvm_start_multithreaded() { } void llvm::llvm_stop_multithreaded() { -#ifdef LLVM_MULTITHREADED +#if ENABLE_THREADS != 0 assert(multithreaded_mode && "Not currently multithreaded!"); // We fence here to insure that all threaded operations are complete BEFORE we @@ -63,7 +63,7 @@ void llvm::llvm_release_global_lock() { if (multithreaded_mode) global_lock->release(); } -#if defined(LLVM_MULTITHREADED) && defined(HAVE_PTHREAD_H) +#if ENABLE_THREADS != 0 && defined(HAVE_PTHREAD_H) #include struct ThreadInfo { @@ -102,7 +102,7 @@ void llvm::llvm_execute_on_thread(void (*Fn)(void*), void *UserData, error: ::pthread_attr_destroy(&Attr); } -#elif defined(LLVM_MULTITHREADED) && defined(LLVM_ON_WIN32) +#elif ENABLE_THREADS!=0 && defined(LLVM_ON_WIN32) #include "Windows/Windows.h" #include