summaryrefslogtreecommitdiff
path: root/lib/make/aclocal.m4
diff options
context:
space:
mode:
authoreschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac>2013-07-07 14:29:13 +0000
committereschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac>2013-07-07 14:29:13 +0000
commit7667d814899d8e67cb8e45d5d04adf22e388e4d8 (patch)
tree72e101af59f3b6842be4554458b524a805d2f94f /lib/make/aclocal.m4
parent51cef93356584dc23771ef43ccb827a1abcf8159 (diff)
Add CCTK_BUILTIN_ASSUME_ALIGNED
This checks whether the GCC extension __builtin_assume_aligned is available, which can generate more efficient code when accessing data via pointers. git-svn-id: http://svn.cactuscode.org/flesh/trunk@5033 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/make/aclocal.m4')
-rw-r--r--lib/make/aclocal.m431
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/make/aclocal.m4 b/lib/make/aclocal.m4
index 2851bf0f..e96e7a46 100644
--- a/lib/make/aclocal.m4
+++ b/lib/make/aclocal.m4
@@ -1111,6 +1111,37 @@ fi
+AC_DEFUN(CCTK_C_BUILTIN_ASSUME_ALIGNED,
+[AC_CACHE_CHECK([for C __builtin_assume_aligned], cctk_cv_have_c_builtin_assume_aligned,
+[cctk_cv_have_c_builtin_assume_aligned=no
+AC_TRY_LINK(,
+__builtin_assume_aligned((void*)1000, 10);
+__builtin_assume_aligned((void*)1001, 10, 1);
+, cctk_cv_have_c_builtin_assume_aligned=yes, cctk_cv_have_c_builtin_assume_aligned=no)
+])
+if test "$cctk_cv_have_c_builtin_assume_aligned" = "yes" ; then
+ AC_DEFINE(HAVE_CCTK_C_BUILTIN_ASSUME_ALIGNED)
+fi
+])
+
+AC_DEFUN(CCTK_CXX_BUILTIN_ASSUME_ALIGNED,
+[AC_CACHE_CHECK([for CXX __builtin_assume_aligned], cctk_cv_have_cxx_builtin_assume_aligned,
+[cctk_cv_have_cxx_builtin_assume_aligned=no
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_TRY_LINK(,
+__builtin_assume_aligned((void*)1000, 10);
+__builtin_assume_aligned((void*)1001, 10, 1);
+, cctk_cv_have_cxx_builtin_assume_aligned=yes, cctk_cv_have_cxx_builtin_assume_aligned=no)
+AC_LANG_RESTORE
+])
+if test "$cctk_cv_have_cxx_builtin_assume_aligned" = "yes" ; then
+ AC_DEFINE(HAVE_CCTK_CXX_BUILTIN_ASSUME_ALIGNED)
+fi
+])
+
+
+
AC_DEFUN(CCTK_CXX_STATIC_ASSERT,
[AC_CACHE_CHECK([for CXX static_assert], cctk_cv_have_cxx_static_assert,
[cctk_cv_have_cxx_static_assert=no