gallium: Require LLVM >= 3.8
authorAdam Jackson <ajax@redhat.com>
Fri, 6 Sep 2019 07:50:27 +0000 (09:50 +0200)
committerAdam Jackson <ajax@nwnk.net>
Wed, 11 Sep 2019 17:00:43 +0000 (17:00 +0000)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Android.mk
meson.build
scons/llvm.py
src/gallium/auxiliary/gallivm/lp_bld_logic.c

index 753e9999fe209b0309794e497afa04a64dbc71ee..c7c2888599566aa6a2aba4d41ceed09d74834a5f 100644 (file)
@@ -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)), \
index 48be4a122e6f53411c2b1889fcf3a3e31140bf47..400427ee554497abe2572ad2382ee830a9929554 100644 (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.7.0'
+  _llvm_version = '>= 3.8.0'
 endif
 
 _shared_llvm = get_option('shared-llvm')
index 30a74d85ca5fcd1a9a69ec9680a9c7dba90c8731..8d03d7ace067d02330f1d9b3dc9cfd0f43b8964a 100644 (file)
@@ -37,7 +37,7 @@ import SCons.Errors
 import SCons.Util
 
 
-required_llvm_version = '3.7'
+required_llvm_version = '3.8'
 
 
 def generate(env):
index 740a83e2e36c21f5d42fe4ea95aa207400c9119a..8f551bb387abe15bf4b8723494981182b2b0117b 100644 (file)
@@ -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.
        */