Mesa (master): gallium: Require LLVM >= 3.8

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 11 17:46:19 UTC 2019


Module: Mesa
Branch: master
Commit: 585d0956108b82514b3cb842642f8a3f23301ca1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=585d0956108b82514b3cb842642f8a3f23301ca1

Author: Adam Jackson <ajax at redhat.com>
Date:   Fri Sep  6 09:50:27 2019 +0200

gallium: Require LLVM >= 3.8

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

---

 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.
        */




More information about the mesa-commit mailing list