#include "util/u_cpu_detect.h"
#include "util/u_debug.h"
#include "util/u_memory.h"
-#include "util/u_simple_list.h"
+#include "util/simple_list.h"
#include "os/os_time.h"
#include "lp_bld.h"
#include "lp_bld_debug.h"
/* Only MCJIT is available as of LLVM SVN r216982 */
#if HAVE_LLVM >= 0x0306
-
-#define USE_MCJIT 1
-#define HAVE_AVX 1
-
-#else
-
-/**
- * AVX is supported in:
- * - standard JIT from LLVM 3.2 onwards
- * - MC-JIT from LLVM 3.1
- * - MC-JIT supports limited OSes (MacOSX and Linux)
- * - standard JIT in LLVM 3.1, with backports
- */
-#if defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390) || defined(PIPE_ARCH_ARM) || defined(PIPE_ARCH_AARCH64)
# define USE_MCJIT 1
-# define HAVE_AVX 0
-#elif HAVE_LLVM >= 0x0302 || (HAVE_LLVM == 0x0301 && defined(HAVE_JIT_AVX_SUPPORT))
-# define USE_MCJIT 0
-# define HAVE_AVX 1
-#elif HAVE_LLVM == 0x0301 && (defined(PIPE_OS_LINUX) || defined(PIPE_OS_APPLE))
+#elif defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390) || defined(PIPE_ARCH_ARM) || defined(PIPE_ARCH_AARCH64)
# define USE_MCJIT 1
-# define HAVE_AVX 1
#else
# define USE_MCJIT 0
-# define HAVE_AVX 0
#endif
-#endif /* HAVE_LLVM >= 0x0306 */
-
#if USE_MCJIT
void LLVMLinkInMCJIT();
#endif
if (!gallivm->builder)
goto fail;
-#if HAVE_LLVM < 0x0306
gallivm->memorymgr = lp_get_default_memory_manager();
if (!gallivm->memorymgr)
goto fail;
-#else
- gallivm->memorymgr = 0;
-#endif
/* FIXME: MC-JIT only allows compiling one module at a time, and it must be
* complete when MC-JIT is created. So defer the MC-JIT engine creation for
if (gallivm_initialized)
return TRUE;
- /* XXX: Remove this once lp_bld_misc.cpp has been adapted to the removal
- * of JITMemoryManager
- */
-#if HAVE_LLVM >= 0x0306
- return FALSE;
-#endif
-
#ifdef DEBUG
gallivm_debug = debug_get_option_gallivm_debug();
#endif
* See also:
* - http://www.anandtech.com/show/4955/the-bulldozer-review-amd-fx8150-tested/2
*/
- if (HAVE_AVX &&
- util_cpu_caps.has_avx &&
+ if (util_cpu_caps.has_avx &&
util_cpu_caps.has_intel) {
lp_native_vector_width = 256;
} else {
util_cpu_caps.has_avx2 = 0;
}
- if (!HAVE_AVX) {
- /*
- * note these instructions are VEX-only, so can only emit if we use
- * avx (don't want to base it on has_avx & has_f16c later as that would
- * omit it unnecessarily on amd cpus, see above).
- */
- util_cpu_caps.has_f16c = 0;
- util_cpu_caps.has_xop = 0;
- }
-
#ifdef PIPE_ARCH_PPC_64
/* Set the NJ bit in VSCR to 0 so denormalized values are handled as
* specified by IEEE standard (PowerISA 2.06 - Section 6.3). This guarantees
gallivm_compile_module(struct gallivm_state *gallivm)
{
LLVMValueRef func;
- int64_t time_begin;
+ int64_t time_begin = 0;
assert(!gallivm->compiled);