summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Jackson <[email protected]>2019-09-06 09:50:27 +0200
committerAdam Jackson <[email protected]>2019-09-11 17:00:43 +0000
commit585d0956108b82514b3cb842642f8a3f23301ca1 (patch)
tree34a709b492251a0aa2a92c52c8ee099c5ce80dcc
parent59f18f21595c46f103a0efecd19d4137d179ecab (diff)
gallium: Require LLVM >= 3.8
Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
-rw-r--r--Android.mk4
-rw-r--r--meson.build2
-rw-r--r--scons/llvm.py2
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_logic.c6
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.
*/