diff options
author | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2013-07-07 14:29:13 +0000 |
---|---|---|
committer | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2013-07-07 14:29:13 +0000 |
commit | 7667d814899d8e67cb8e45d5d04adf22e388e4d8 (patch) | |
tree | 72e101af59f3b6842be4554458b524a805d2f94f /lib/make/aclocal.m4 | |
parent | 51cef93356584dc23771ef43ccb827a1abcf8159 (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.m4 | 31 |
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 |