Submitted By: Fernando de Oliveira Date: 2015-09-05 Initial Package Version: 10.6.6 Upstream Status: Fixed Origin: http://cgit.freedesktop.org/mesa/mesa/patch/?id=147ffd48166d851341cadd12de98895f32ec25a2 http://cgit.freedesktop.org/mesa/mesa/patch/?id=4d35eef326e49cc8da50879d30a1c5088d4775e1 Description: Fixes to build with LLVM 3.7: • gallivm: Do not use NoFramePointerElim with LLVM 3.7. • Handle LLVM backend rename from R600 to AMDGPU. ================================================================================ ================================================================================ From 4d35eef326e49cc8da50879d30a1c5088d4775e1 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 11 Jun 2015 15:42:25 +0000 Subject: radeon/llvm: Handle LLVM backend rename from R600 to AMDGPU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák diff --git a/configure.ac b/configure.ac index be0cd7d..34d1ac9 100644 --- a/configure.ac +++ b/configure.ac @@ -2048,16 +2048,19 @@ require_egl_drm() { } radeon_llvm_check() { + if test ${LLVM_VERSION_INT} -lt 307; then + amdgpu_llvm_target_name='r600' + else + amdgpu_llvm_target_name='amdgpu' + fi if test "x$enable_gallium_llvm" != "xyes"; then AC_MSG_ERROR([--enable-gallium-llvm is required when building $1]) fi llvm_check_version_for "3" "4" "2" $1 - if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then - AC_MSG_ERROR([LLVM R600 Target not enabled. You can enable it when building the LLVM - sources with the --enable-experimental-targets=R600 - configure flag]) + if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then + AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.]) fi - LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo" + LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo" NEED_RADEON_LLVM=yes if test "x$have_libelf" != xyes; then AC_MSG_ERROR([$1 requires libelf when using llvm]) diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c b/src/gallium/drivers/radeon/radeon_llvm_emit.c index 624077c..25580b6 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.c +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.c @@ -86,10 +86,18 @@ static void init_r600_target() { static unsigned initialized = 0; if (!initialized) { +#if HAVE_LLVM < 0x0307 LLVMInitializeR600TargetInfo(); LLVMInitializeR600Target(); LLVMInitializeR600TargetMC(); LLVMInitializeR600AsmPrinter(); +#else + LLVMInitializeAMDGPUTargetInfo(); + LLVMInitializeAMDGPUTarget(); + LLVMInitializeAMDGPUTargetMC(); + LLVMInitializeAMDGPUAsmPrinter(); + +#endif initialized = 1; } } -- cgit v0.10.2 From 147ffd48166d851341cadd12de98895f32ec25a2 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Tue, 26 May 2015 22:18:28 -0700 Subject: gallivm: Do not use NoFramePointerElim with LLVM 3.7. TargetOptions::NoFramePointerElim was removed in llvm-3.7.0svn r238244 "Remove NoFramePointerElim and NoFramePointerElimOverride from TargetOptions and remove ExecutionEngine's dependence on CodeGen. NFC." Signed-off-by: Vinson Lee Reviewed-by: Tom Stellard diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp index be3e834..76c302f 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp @@ -277,8 +277,10 @@ disassemble(const void* func, llvm::raw_ostream & Out) options.StackAlignmentOverride = 4; #endif #if defined(DEBUG) || defined(PROFILE) +#if HAVE_LLVM < 0x0307 options.NoFramePointerElim = true; #endif +#endif OwningPtr TM(T->createTargetMachine(Triple, sys::getHostCPUName(), "", options)); /* diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index 5e8a634..ffed9e6 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -439,8 +439,10 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, #if HAVE_LLVM < 0x0304 options.NoFramePointerElimNonLeaf = true; #endif +#if HAVE_LLVM < 0x0307 options.NoFramePointerElim = true; #endif +#endif builder.setEngineKind(EngineKind::JIT) .setErrorStr(&Error) -- cgit v0.10.2