From 585d0956108b82514b3cb842642f8a3f23301ca1 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 6 Sep 2019 09:50:27 +0200 Subject: [PATCH] gallium: Require LLVM >= 3.8 Reviewed-by: Timothy Arceri Reviewed-by: Jose Fonseca --- Android.mk | 4 +--- meson.build | 2 +- scons/llvm.py | 2 +- src/gallium/auxiliary/gallivm/lp_bld_logic.c | 6 ++---- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/Android.mk b/Android.mk index 753e9999fe2..c7c28885995 100644 --- a/Android.mk +++ b/Android.mk @@ -95,10 +95,8 @@ MESA_ENABLE_LLVM := true endif define mesa-build-with-llvm - $(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \ + $(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5 6), \ $(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \ - $(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \ - $(eval LOCAL_CFLAGS += -DLLVM_AVAILABLE -DMESA_LLVM_VERSION_STRING=\"3.7\")) \ $(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \ $(eval LOCAL_CFLAGS += -DLLVM_AVAILABLE -DMESA_LLVM_VERSION_STRING=\"3.8\")) \ $(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \ diff --git a/meson.build b/meson.build index 48be4a122e6..400427ee554 100644 --- a/meson.build +++ b/meson.build @@ -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.7.0' + _llvm_version = '>= 3.8.0' endif _shared_llvm = get_option('shared-llvm') diff --git a/scons/llvm.py b/scons/llvm.py index 30a74d85ca5..8d03d7ace06 100644 --- a/scons/llvm.py +++ b/scons/llvm.py @@ -37,7 +37,7 @@ import SCons.Errors import SCons.Util -required_llvm_version = '3.7' +required_llvm_version = '3.8' def generate(env): diff --git a/src/gallium/auxiliary/gallivm/lp_bld_logic.c b/src/gallium/auxiliary/gallivm/lp_bld_logic.c index 740a83e2e36..8f551bb387a 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_logic.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_logic.c @@ -318,16 +318,14 @@ lp_build_select(struct lp_build_context *bld, mask = LLVMBuildTrunc(builder, mask, LLVMInt1TypeInContext(lc), ""); res = LLVMBuildSelect(builder, mask, a, b, ""); } - else if (!(LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 7) && - (LLVMIsConstant(mask) || - LLVMGetInstructionOpcode(mask) == LLVMSExt)) { + else if (LLVMIsConstant(mask) || + LLVMGetInstructionOpcode(mask) == LLVMSExt) { /* Generate a vector select. * * Using vector selects should avoid emitting intrinsics hence avoid * hindering optimization passes, but vector selects weren't properly * supported yet for a long time, and LLVM will generate poor code when * the mask is not the result of a comparison. - * Also, llvm 3.7 may miscompile them (bug 94972). * XXX: Even if the instruction was an SExt, this may still produce * terrible code. Try piglit stencil-twoside. */ -- 2.30.2