[Mesa-dev] [PATCH 2/2] Make architecture specific compiler flags conditional for vector optimizations

Marc Dietrich marvin24 at gmx.de
Fri Jan 16 04:42:55 PST 2015


If the compiler supports the target attribute (or pragma), we can specify the
target architecture directly in the source. In this case we don't need to
parse the compiler flag via the command line. This is usefull when compiling
with LTO enabled, where all files will be recompiled during the link time.

Signed-off-by: Marc Dietrich <marvin24 at gmx.de>
---
 src/mesa/Makefile.am                  | 2 ++
 src/mesa/main/sse_minmax.c            | 1 +
 src/mesa/main/streaming-load-memcpy.c | 1 +
 3 files changed, 4 insertions(+)

diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
index 5a7884c..af64d74 100644
--- a/src/mesa/Makefile.am
+++ b/src/mesa/Makefile.am
@@ -190,7 +190,9 @@ libmesa_sse41_la_SOURCES = \
 	main/streaming-load-memcpy.h \
 	main/sse_minmax.c \
 	main/sse_minmax.h
+if !HAVE_TARGET_ATTRIBUTE
 libmesa_sse41_la_CFLAGS = $(AM_CFLAGS) $(SSE41_CFLAGS)
+endif
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = gl.pc
diff --git a/src/mesa/main/sse_minmax.c b/src/mesa/main/sse_minmax.c
index 2e34716..5fd59fc 100644
--- a/src/mesa/main/sse_minmax.c
+++ b/src/mesa/main/sse_minmax.c
@@ -25,6 +25,7 @@
  *
  */
 
+#pragma GCC target ("sse4.1")
 #include "main/sse_minmax.h"
 #include <smmintrin.h>
 #include <stdint.h>
diff --git a/src/mesa/main/streaming-load-memcpy.c b/src/mesa/main/streaming-load-memcpy.c
index d7147af..c84c8cf 100644
--- a/src/mesa/main/streaming-load-memcpy.c
+++ b/src/mesa/main/streaming-load-memcpy.c
@@ -26,6 +26,7 @@
  *
  */
 
+#pragma GCC target ("sse4.1")
 #include "main/macros.h"
 #include "main/streaming-load-memcpy.h"
 #include <smmintrin.h>
-- 
2.2.1



More information about the mesa-dev mailing list