gallium: Require LLVM >= 3.7
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:

committed by
Adam Jackson

parent
9abf7d5755
commit
59f18f2159
@@ -1264,7 +1264,7 @@ elif with_gallium_swr
|
|||||||
elif with_gallium_opencl or with_gallium_r600
|
elif with_gallium_opencl or with_gallium_r600
|
||||||
_llvm_version = '>= 3.9.0'
|
_llvm_version = '>= 3.9.0'
|
||||||
else
|
else
|
||||||
_llvm_version = '>= 3.6.0'
|
_llvm_version = '>= 3.7.0'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
_shared_llvm = get_option('shared-llvm')
|
_shared_llvm = get_option('shared-llvm')
|
||||||
|
@@ -37,7 +37,7 @@ import SCons.Errors
|
|||||||
import SCons.Util
|
import SCons.Util
|
||||||
|
|
||||||
|
|
||||||
required_llvm_version = '3.6'
|
required_llvm_version = '3.7'
|
||||||
|
|
||||||
|
|
||||||
def generate(env):
|
def generate(env):
|
||||||
@@ -159,24 +159,12 @@ def generate(env):
|
|||||||
'LLVMSupport',
|
'LLVMSupport',
|
||||||
'LLVMIRReader', 'LLVMASMParser'
|
'LLVMIRReader', 'LLVMASMParser'
|
||||||
])
|
])
|
||||||
elif llvm_version >= distutils.version.LooseVersion('3.7'):
|
|
||||||
env.Prepend(LIBS = [
|
|
||||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
|
||||||
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
|
||||||
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData',
|
|
||||||
'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMTransformUtils', 'LLVMipa',
|
|
||||||
'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler',
|
|
||||||
'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils',
|
|
||||||
'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine',
|
|
||||||
'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
|
|
||||||
'LLVMBitReader', 'LLVMMC', 'LLVMCore', 'LLVMSupport'
|
|
||||||
])
|
|
||||||
else:
|
else:
|
||||||
env.Prepend(LIBS = [
|
env.Prepend(LIBS = [
|
||||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||||
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
||||||
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData',
|
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData',
|
||||||
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
|
'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMTransformUtils', 'LLVMipa',
|
||||||
'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler',
|
'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler',
|
||||||
'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils',
|
'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils',
|
||||||
'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine',
|
'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine',
|
||||||
|
@@ -602,9 +602,7 @@ gallivm_compile_module(struct gallivm_state *gallivm)
|
|||||||
|
|
||||||
/* Disable frame pointer omission on debug/profile builds */
|
/* Disable frame pointer omission on debug/profile builds */
|
||||||
/* XXX: And workaround http://llvm.org/PR21435 */
|
/* XXX: And workaround http://llvm.org/PR21435 */
|
||||||
#if (LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)) && \
|
#if defined(DEBUG) || defined(PROFILE) || defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
||||||
(defined(DEBUG) || defined(PROFILE) || \
|
|
||||||
defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64))
|
|
||||||
LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim", "true");
|
LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim", "true");
|
||||||
LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim-non-leaf", "true");
|
LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim-non-leaf", "true");
|
||||||
#endif
|
#endif
|
||||||
|
@@ -45,10 +45,8 @@
|
|||||||
#include <llvm/Config/llvm-config.h>
|
#include <llvm/Config/llvm-config.h>
|
||||||
|
|
||||||
// Workaround http://llvm.org/PR23628
|
// Workaround http://llvm.org/PR23628
|
||||||
#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)
|
#pragma push_macro("DEBUG")
|
||||||
# pragma push_macro("DEBUG")
|
#undef DEBUG
|
||||||
# undef DEBUG
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <llvm/Config/llvm-config.h>
|
#include <llvm/Config/llvm-config.h>
|
||||||
#include <llvm-c/Core.h>
|
#include <llvm-c/Core.h>
|
||||||
@@ -57,11 +55,7 @@
|
|||||||
#include <llvm/Target/TargetOptions.h>
|
#include <llvm/Target/TargetOptions.h>
|
||||||
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||||
#include <llvm/ADT/Triple.h>
|
#include <llvm/ADT/Triple.h>
|
||||||
#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)
|
|
||||||
#include <llvm/Analysis/TargetLibraryInfo.h>
|
#include <llvm/Analysis/TargetLibraryInfo.h>
|
||||||
#else
|
|
||||||
#include <llvm/Target/TargetLibraryInfo.h>
|
|
||||||
#endif
|
|
||||||
#include <llvm/ExecutionEngine/SectionMemoryManager.h>
|
#include <llvm/ExecutionEngine/SectionMemoryManager.h>
|
||||||
#include <llvm/Support/CommandLine.h>
|
#include <llvm/Support/CommandLine.h>
|
||||||
#include <llvm/Support/Host.h>
|
#include <llvm/Support/Host.h>
|
||||||
@@ -80,9 +74,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Workaround http://llvm.org/PR23628
|
// Workaround http://llvm.org/PR23628
|
||||||
#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)
|
#pragma pop_macro("DEBUG")
|
||||||
# pragma pop_macro("DEBUG")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "c11/threads.h"
|
#include "c11/threads.h"
|
||||||
#include "os/os_thread.h"
|
#include "os/os_thread.h"
|
||||||
@@ -160,11 +152,7 @@ LLVMTargetLibraryInfoRef
|
|||||||
gallivm_create_target_library_info(const char *triple)
|
gallivm_create_target_library_info(const char *triple)
|
||||||
{
|
{
|
||||||
return reinterpret_cast<LLVMTargetLibraryInfoRef>(
|
return reinterpret_cast<LLVMTargetLibraryInfoRef>(
|
||||||
#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 7
|
|
||||||
new llvm::TargetLibraryInfo(
|
|
||||||
#else
|
|
||||||
new llvm::TargetLibraryInfoImpl(
|
new llvm::TargetLibraryInfoImpl(
|
||||||
#endif
|
|
||||||
llvm::Triple(triple)));
|
llvm::Triple(triple)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,11 +161,7 @@ void
|
|||||||
gallivm_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info)
|
gallivm_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info)
|
||||||
{
|
{
|
||||||
delete reinterpret_cast<
|
delete reinterpret_cast<
|
||||||
#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 7
|
|
||||||
llvm::TargetLibraryInfo
|
|
||||||
#else
|
|
||||||
llvm::TargetLibraryInfoImpl
|
llvm::TargetLibraryInfoImpl
|
||||||
#endif
|
|
||||||
*>(library_info);
|
*>(library_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,17 +317,6 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
|||||||
options.StackAlignmentOverride = 4;
|
options.StackAlignmentOverride = 4;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(DEBUG) && (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 7)
|
|
||||||
options.JITEmitDebugInfo = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* XXX: Workaround http://llvm.org/PR21435 */
|
|
||||||
#if defined(DEBUG) || defined(PROFILE) || defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
|
||||||
#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 7
|
|
||||||
options.NoFramePointerElim = true;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
builder.setEngineKind(EngineKind::JIT)
|
builder.setEngineKind(EngineKind::JIT)
|
||||||
.setErrorStr(&Error)
|
.setErrorStr(&Error)
|
||||||
.setTargetOptions(options)
|
.setTargetOptions(options)
|
||||||
|
Reference in New Issue
Block a user