aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGil Pitney <gil.pitney@linaro.org>2014-12-10 14:19:29 -0800
committerGil Pitney <gil.pitney@linaro.org>2014-12-10 14:19:29 -0800
commitdafc5b461979fd1bba2dabfd32d01d7a20cd1005 (patch)
treefc749e68125555d468cf6a146ba4b43757315e0e /include
parent27a45b16ed4aa2e3947b794c79e88fe0b4215510 (diff)
prefetch: Implemented prefetch builtin (noop'ed)
Also, updated CL_DEVICE_LOCAL_MEM_SIZE and Buffer::Buffer() constructor so that Khrnos basic "prefetch" test can pass. Previously, it was trying to allocate huge global buffers (computed based on the LOCAL_MEM_SIZE) and was failing. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/cpu.h38
1 files changed, 21 insertions, 17 deletions
diff --git a/include/cpu.h b/include/cpu.h
index 6fa0d90..c7c5976 100644
--- a/include/cpu.h
+++ b/include/cpu.h
@@ -31,23 +31,27 @@
#include "clc.h"
#define PREFETCH_VECTORIZE(PRIM_TYPE) \
- _CLC_OVERLOAD _CLC_DECL void prefetch(const __global PRIM_TYPE *p, size_t num_gentypes); \
- _CLC_OVERLOAD _CLC_DECL void prefetch(const __global PRIM_TYPE##2 *p, size_t num_gentypes); \
- _CLC_OVERLOAD _CLC_DECL void prefetch(const __global PRIM_TYPE##3 *p, size_t num_gentypes); \
- _CLC_OVERLOAD _CLC_DECL void prefetch(const __global PRIM_TYPE##4 *p, size_t num_gentypes); \
- _CLC_OVERLOAD _CLC_DECL void prefetch(const __global PRIM_TYPE##8 *p, size_t num_gentypes); \
- _CLC_OVERLOAD _CLC_DECL void prefetch(const __global PRIM_TYPE##16 *p, size_t num_gentypes); \
-
-PREFETCH_VECTORIZE(char)
-PREFETCH_VECTORIZE(uchar)
-PREFETCH_VECTORIZE(short)
-PREFETCH_VECTORIZE(ushort)
-PREFETCH_VECTORIZE(int)
-PREFETCH_VECTORIZE(uint)
-PREFETCH_VECTORIZE(long)
-PREFETCH_VECTORIZE(ulong)
-PREFETCH_VECTORIZE(float)
-PREFETCH_VECTORIZE(double)
+ _CLC_OVERLOAD _CLC_INLINE void prefetch(const __global PRIM_TYPE *p, size_t num_gentypes){} \
+ _CLC_OVERLOAD _CLC_INLINE void prefetch(const __global PRIM_TYPE##2 *p, size_t num_gentypes){} \
+ _CLC_OVERLOAD _CLC_INLINE void prefetch(const __global PRIM_TYPE##3 *p, size_t num_gentypes){} \
+ _CLC_OVERLOAD _CLC_INLINE void prefetch(const __global PRIM_TYPE##4 *p, size_t num_gentypes){} \
+ _CLC_OVERLOAD _CLC_INLINE void prefetch(const __global PRIM_TYPE##8 *p, size_t num_gentypes){} \
+ _CLC_OVERLOAD _CLC_INLINE void prefetch(const __global PRIM_TYPE##16 *p, size_t num_gentypes){} \
+
+
+#define PREFETCH_TYPES() \
+ PREFETCH_VECTORIZE(char) \
+ PREFETCH_VECTORIZE(uchar) \
+ PREFETCH_VECTORIZE(short) \
+ PREFETCH_VECTORIZE(ushort) \
+ PREFETCH_VECTORIZE(int) \
+ PREFETCH_VECTORIZE(uint) \
+ PREFETCH_VECTORIZE(long) \
+ PREFETCH_VECTORIZE(ulong) \
+ PREFETCH_VECTORIZE(float) \
+ PREFETCH_VECTORIZE(double) \
+
+PREFETCH_TYPES()
/*-----------------------------------------------------------------------------
* This can be empty since our copy routines are currently synchronous. When