aboutsummaryrefslogtreecommitdiffstats
path: root/src/build-data
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2016-08-10 13:51:25 -0400
committerJack Lloyd <[email protected]>2016-11-26 12:34:15 -0500
commit3bc46d79c4509cbf871f762e39a366e95e8342ce (patch)
tree80359e3d3955412ae027393ec72db51456d5f575 /src/build-data
parent5372d0b499ad317ab3776c9ac92df866cc6a1e84 (diff)
Add Cilk/OpenMP support
Diffstat (limited to 'src/build-data')
-rw-r--r--src/build-data/buildh.in46
-rw-r--r--src/build-data/cc/clang.txt2
-rw-r--r--src/build-data/cc/gcc.txt3
3 files changed, 51 insertions, 0 deletions
diff --git a/src/build-data/buildh.in b/src/build-data/buildh.in
index 56b70e060..0702d1416 100644
--- a/src/build-data/buildh.in
+++ b/src/build-data/buildh.in
@@ -264,6 +264,52 @@ Each read generates 32 bits of output
#define BOTAN_NOEXCEPT noexcept
#endif
+#if !defined(BOTAN_PARALLEL_FOR)
+
+#if defined(BOTAN_TARGET_HAS_CILKPLUS)
+ #define BOTAN_PARALLEL_FOR _Cilk_for
+#elif defined(BOTAN_TARGET_HAS_OPENMP)
+ #define BOTAN_PARALLEL_FOR _Pragma("omp parallel for") for
+#else
+ #define BOTAN_PARALLEL_FOR for
+#endif
+
+#endif
+
+#if !defined(BOTAN_PARALLEL_SIMD_FOR)
+
+#if defined(BOTAN_TARGET_HAS_CILKPLUS)
+ #define BOTAN_PARALLEL_SIMD_FOR _Pragma("simd") for
+#elif defined(BOTAN_TARGET_HAS_OPENMP)
+ #define BOTAN_PARALLEL_SIMD_FOR _Pragma("omp simd") for
+#elif defined(BOTAN_TARGET_COMPILER_IS_GCC)
+ #define BOTAN_PARALLEL_FOR _Pragma("GCC ivdep") for
+#else
+ #define BOTAN_PARALLEL_SIMD_FOR for
+#endif
+
+#endif
+
+#if !defined(BOTAN_PARALLEL_SPAWN)
+
+#if defined(BOTAN_TARGET_HAS_CILKPLUS)
+ #define BOTAN_PARALLEL_SPAWN _Cilk_spawn
+#else
+ #define BOTAN_PARALLEL_SPAWN
+#endif
+
+#endif
+
+#if !defined(BOTAN_PARALLEL_SYNC)
+
+#if defined(BOTAN_TARGET_HAS_CILKPLUS)
+ #define BOTAN_PARALLEL_SYNC _Cilk_sync
+#else
+ #define BOTAN_PARALLEL_SYNC BOTAN_FORCE_SEMICOLON
+#endif
+
+#endif
+
/*
* Module availability definitions
*/
diff --git a/src/build-data/cc/clang.txt b/src/build-data/cc/clang.txt
index c4a85658f..055315c3b 100644
--- a/src/build-data/cc/clang.txt
+++ b/src/build-data/cc/clang.txt
@@ -73,6 +73,8 @@ ivybridge -> "-march=core-avx-i"
<mach_abi_linking>
all -> "-pthread"
+openmp -> "-fopenmp"
+
x86_32 -> "-m32"
x86_64 -> "-m64"
ppc64 -> "-m64"
diff --git a/src/build-data/cc/gcc.txt b/src/build-data/cc/gcc.txt
index b88454ce6..0a53e15c1 100644
--- a/src/build-data/cc/gcc.txt
+++ b/src/build-data/cc/gcc.txt
@@ -120,6 +120,9 @@ all_x86_64 -> "-momit-leaf-frame-pointer"
<mach_abi_linking>
all -> "-pthread -fstack-protector"
+cilkplus -> "-fcilkplus"
+openmp -> "-fopenmp"
+
mips64 -> "-mabi=64"
s390 -> "-m31"
s390x -> "-m64"