Re: [Mesa-dev] [PATCH v3 24/25] configure.ac: Only add default LLVM components if needed

2016-10-12 Thread Tobias Droste
Am Mittwoch, 12. Oktober 2016, 12:03:38 CEST schrieb Emil Velikov:
> > Does this mean that the "default" components are required only by the
> > gallivm module ? Please rename the function to reflect that.
> > 
> > Don't recall if swr driver is/was using any of it, but the nv30 path
> > of nouveau does use it, iirc. In the latter you want to call the
> > function if --enable-gallium-llvm is set. Alternatively keep
> > llvm_add_default_components within the "test enable_gallium_llvm !=
> > xno" block.
> 
> In case you're wondering how the above might happen:
> 
> Some drivers (i915g, softpipe/llvmpipe, nv30, r300, svga?... ) use the
> aux/draw module. The latter of which has LLVM codepaths which get
> build if --enable-gallium-llvm is set.
> 
> Search "\ Emil

I didn't know that. Then I have to change this a little bit.
I need to think about that.
So don't bother with patch 24 right now until I came up with a better way.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH v3 24/25] configure.ac: Only add default LLVM components if needed

2016-10-12 Thread Tobias Droste
Am Mittwoch, 12. Oktober 2016, 10:57:14 CEST schrieb Emil Velikov:
> On 12 October 2016 at 00:02, Tobias Droste  wrote:
> > Each driver has to expllicitly call llvm_add_default_components to
> > add the shared components.
> > This way we can fail the build if a component is not found and avoid
> > the recursive solution from a previous version of the pach series.
> 
> s/pach/patch/
> 
> Does this mean that the "default" components are required only by the
> gallivm module ? Please rename the function to reflect that.

No, there's probably some of them that are only used by gallivm, but not all 
of them. That's something I wanted to do on a follow up to explicitly add all 
llvm components for each driver. But this needs some forensics, to actually 
find out what's really needed ;-)

> 
> Don't recall if swr driver is/was using any of it, but the nv30 path
> of nouveau does use it, iirc. In the latter you want to call the
> function if --enable-gallium-llvm is set. Alternatively keep
> llvm_add_default_components within the "test enable_gallium_llvm !=
> xno" block.

I'm going to add it to nv30.
swr was calling that function before my changes too. So it probably uses it.

> 
> -Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH v3 24/25] configure.ac: Only add default LLVM components if needed

2016-10-12 Thread Emil Velikov
On 12 October 2016 at 10:57, Emil Velikov  wrote:
> On 12 October 2016 at 00:02, Tobias Droste  wrote:
>> Each driver has to expllicitly call llvm_add_default_components to
>> add the shared components.
>> This way we can fail the build if a component is not found and avoid
>> the recursive solution from a previous version of the pach series.
>>
> s/pach/patch/
>
> Does this mean that the "default" components are required only by the
> gallivm module ? Please rename the function to reflect that.
>
> Don't recall if swr driver is/was using any of it, but the nv30 path
> of nouveau does use it, iirc. In the latter you want to call the
> function if --enable-gallium-llvm is set. Alternatively keep
> llvm_add_default_components within the "test enable_gallium_llvm !=
> xno" block.
>
In case you're wondering how the above might happen:

Some drivers (i915g, softpipe/llvmpipe, nv30, r300, svga?... ) use the
aux/draw module. The latter of which has LLVM codepaths which get
build if --enable-gallium-llvm is set.

Search "\

Re: [Mesa-dev] [PATCH v3 24/25] configure.ac: Only add default LLVM components if needed

2016-10-12 Thread Emil Velikov
On 12 October 2016 at 00:02, Tobias Droste  wrote:
> Each driver has to expllicitly call llvm_add_default_components to
> add the shared components.
> This way we can fail the build if a component is not found and avoid
> the recursive solution from a previous version of the pach series.
>
s/pach/patch/

Does this mean that the "default" components are required only by the
gallivm module ? Please rename the function to reflect that.

Don't recall if swr driver is/was using any of it, but the nv30 path
of nouveau does use it, iirc. In the latter you want to call the
function if --enable-gallium-llvm is set. Alternatively keep
llvm_add_default_components within the "test enable_gallium_llvm !=
xno" block.

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH v3 24/25] configure.ac: Only add default LLVM components if needed

2016-10-11 Thread Tobias Droste
Each driver has to expllicitly call llvm_add_default_components to
add the shared components.
This way we can fail the build if a component is not found and avoid
the recursive solution from a previous version of the pach series.

Signed-off-by: Tobias Droste 
---
 configure.ac | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 26861f5..4847704 100644
--- a/configure.ac
+++ b/configure.ac
@@ -947,8 +947,6 @@ llvm_get_version() {
 LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 
's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
 fi
 
-llvm_add_default_components
-
 DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT 
-DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
 MESA_LLVM=1
 else
@@ -984,8 +982,8 @@ llvm_add_component() {
 
 if $LLVM_CONFIG --components | grep -iqw $new_llvm_component ; then
 LLVM_COMPONENTS="${LLVM_COMPONENTS} ${new_llvm_component}"
-#else
-#AC_MSG_ERROR([LLVM component '$new_llvm_component' not enabled in 
your LLVM build. Required by $driver_name.])
+else
+AC_MSG_ERROR([LLVM component '$new_llvm_component' not enabled in your 
LLVM build. Required by $driver_name.])
 fi
 }
 
@@ -1010,6 +1008,8 @@ radeon_llvm_check() {
 llvm_check_version_for $*
 
 llvm_add_target $amdgpu_llvm_target_name $4
+
+llvm_add_default_components
 llvm_add_component "bitreader" $4
 llvm_add_component "ipo" $4
 
@@ -2179,6 +2179,7 @@ if test "x$enable_opencl" = xyes; then
 
 llvm_check_version_for "3" "6" "0" "opencl"
 
+llvm_add_default_components
 llvm_add_component "all-targets" "opencl"
 llvm_add_component "ipos" "opencl"
 llvm_add_component "linker" "opencl"
@@ -2394,6 +2395,7 @@ gallium_require_llvm() {
 
 llvm_check_version_for "3" "3" "0" "gallium"
 llvm_add_target "x86" "gallium"
+llvm_add_default_components
 ;;
 esac
 }
-- 
2.10.0

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev