[Mesa-dev] [PATCH] anv: Disable __gen_validate_value if NDEBUG is set.

Jason Ekstrand jason at jlekstrand.net
Thu Jun 7 23:46:24 UTC 2018


On Thu, Jun 7, 2018 at 4:02 PM, Kenneth Graunke <kenneth at whitecape.org>
wrote:

> We were enabling undefined memory checking for genxml values based on
> Valgrind being installed at build time, even for release builds.  This
> generates piles and piles of assembly whenever you touch genxml.
>
> With gcc 7.3.1 and -O3 and -march=native on a Kabylake with Valgrind
> installed at build time:
>
>       text    data    bss     dec    hex filename
>    5978385  262884  13488 6254757 5f70a5 libvulkan_intel.so
>    3799377  262884  13488 4075749 3e30e5 libvulkan_intel.so
>
> That's a 36% reduction in text size.
> ---
>  src/intel/vulkan/anv_private.h | 2 ++
>  1 file changed, 2 insertions(+)
>
>  Eric,
>
>  You probably will want to make the equivalent change in
>  src/broadcom/cle/v3d_packet_helpers.h
>
>  --Ken
>
> diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_
> private.h
> index b47420f89ec..b035bf1c943 100644
> --- a/src/intel/vulkan/anv_private.h
> +++ b/src/intel/vulkan/anv_private.h
> @@ -36,7 +36,9 @@
>  #include <valgrind.h>
>  #include <memcheck.h>
>  #define VG(x) x
> +#ifndef NDEBUG
>  #define __gen_validate_value(x) VALGRIND_CHECK_MEM_IS_DEFINED(&(x),
> sizeof(x))
> +#endif
>

We could probably be fancier if we wanted to and disable all valgrind
checks in release builds but this should take care of the hot-paths and
leave us with at least something in release builds.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>


>  #else
>  #define VG(x)
>  #endif
> --
> 2.17.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180607/1a584574/attachment.html>


More information about the mesa-dev mailing list