gallium: Require LLVM >= 3.7

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
Adam Jackson 2019-09-06 09:50:22 +02:00 committed by Adam Jackson
parent 9abf7d5755
commit 59f18f2159
4 changed files with 7 additions and 48 deletions

View File

@ -1264,7 +1264,7 @@ elif with_gallium_swr
elif with_gallium_opencl or with_gallium_r600
_llvm_version = '>= 3.9.0'
else
_llvm_version = '>= 3.6.0'
_llvm_version = '>= 3.7.0'
endif
_shared_llvm = get_option('shared-llvm')

View File

@ -37,7 +37,7 @@ import SCons.Errors
import SCons.Util
required_llvm_version = '3.6'
required_llvm_version = '3.7'
def generate(env):
@ -159,24 +159,12 @@ def generate(env):
'LLVMSupport',
'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:
env.Prepend(LIBS = [
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData',
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMTransformUtils', 'LLVMipa',
'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler',
'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils',
'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine',

View File

@ -602,9 +602,7 @@ gallivm_compile_module(struct gallivm_state *gallivm)
/* Disable frame pointer omission on debug/profile builds */
/* XXX: And workaround http://llvm.org/PR21435 */
#if (LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)) && \
(defined(DEBUG) || defined(PROFILE) || \
defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64))
#if 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-non-leaf", "true");
#endif

View File

@ -45,10 +45,8 @@
#include <llvm/Config/llvm-config.h>
// Workaround http://llvm.org/PR23628
#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)
# pragma push_macro("DEBUG")
# undef DEBUG
#endif
#pragma push_macro("DEBUG")
#undef DEBUG
#include <llvm/Config/llvm-config.h>
#include <llvm-c/Core.h>
@ -57,11 +55,7 @@
#include <llvm/Target/TargetOptions.h>
#include <llvm/ExecutionEngine/ExecutionEngine.h>
#include <llvm/ADT/Triple.h>
#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)
#include <llvm/Analysis/TargetLibraryInfo.h>
#else
#include <llvm/Target/TargetLibraryInfo.h>
#endif
#include <llvm/ExecutionEngine/SectionMemoryManager.h>
#include <llvm/Support/CommandLine.h>
#include <llvm/Support/Host.h>
@ -80,9 +74,7 @@
#endif
// Workaround http://llvm.org/PR23628
#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7)
# pragma pop_macro("DEBUG")
#endif
#pragma pop_macro("DEBUG")
#include "c11/threads.h"
#include "os/os_thread.h"
@ -160,11 +152,7 @@ LLVMTargetLibraryInfoRef
gallivm_create_target_library_info(const char *triple)
{
return reinterpret_cast<LLVMTargetLibraryInfoRef>(
#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 7
new llvm::TargetLibraryInfo(
#else
new llvm::TargetLibraryInfoImpl(
#endif
llvm::Triple(triple)));
}
@ -173,11 +161,7 @@ void
gallivm_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info)
{
delete reinterpret_cast<
#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR < 7
llvm::TargetLibraryInfo
#else
llvm::TargetLibraryInfoImpl
#endif
*>(library_info);
}
@ -333,17 +317,6 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
options.StackAlignmentOverride = 4;
#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)
.setErrorStr(&Error)
.setTargetOptions(options)