[Mesa-dev] [Mesa-stable] [PATCH 3/3] gallivm: Reenable PPC VSX (v3)

Emil Velikov emil.l.velikov at gmail.com
Wed Feb 15 13:02:50 UTC 2017


Hi Ben,

On 10 February 2017 at 23:10, Ben Crocker <bcrocker at redhat.com> wrote:
> Reenable the PPC64LE Vector-Scalar Extension for LLVM versions >= 3.8.1,
> now that LLVM bug 26775 and its corollary, 25503, are fixed.
>
> Amendment: remove extraneous spaces in macro def & invocations.
>
> We would prefer a runtime check, e.g. via an LLVMQueryString
> (analogous to glGetString, eglQueryString) or LLVMGetVersion API,
> but no such API exists at this time.
>

Barring any objections I will push your patches, with the below hunk
squashed in, in a couple of days.

Thanks
-Emil

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index fb89da79c9..caa37f9386 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -42,8 +42,6 @@

 #include <stddef.h>

-#define LLVM_VERSION(MAJOR_MINOR, PATCH_LEVEL) ((MAJOR_MINOR << 8) +
PATCH_LEVEL)
-
 // Workaround http://llvm.org/PR23628
 #if HAVE_LLVM >= 0x0307
 #  pragma push_macro("DEBUG")
@@ -608,8 +606,8 @@
lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef
*OutJIT,

 #if defined(PIPE_ARCH_PPC)
    MAttrs.push_back(util_cpu_caps.has_altivec ? "+altivec" : "-altivec");
-#if (HAVE_LLVM >= 0x0304) && \
-   (LLVM_VERSION(HAVE_LLVM, MESA_LLVM_VERSION_PATCH) <=
LLVM_VERSION(0x0308, 0x00))
+#if (HAVE_LLVM >= 0x0304)
+#if (HAVE_LLVM <= 0x0307) || (HAVE_LLVM == 0x0308 &&
MESA_LLVM_VERSION_PATCH == 0)
    /*
     * Make sure VSX instructions are disabled
     * See LLVM bug https://llvm.org/bugs/show_bug.cgi?id=25503#c7
@@ -617,7 +615,7 @@
lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef
*OutJIT,
    if (util_cpu_caps.has_altivec) {
       MAttrs.push_back("-vsx");
    }
-#elif LLVM_VERSION(HAVE_LLVM, MESA_LLVM_VERSION_PATCH) >
LLVM_VERSION(0x0308, 0x00))
+#else
    /*
     * However, bug 25503 is fixed, by the same fix that fixed
     * bug 26775, in versions of LLVM later than 3.8 (starting with 3.8.1):
@@ -629,6 +627,7 @@
lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef
*OutJIT,
    }
 #endif
 #endif
+#endif

    builder.setMAttrs(MAttrs);


More information about the mesa-dev mailing list