diff options
author | Gil Pitney <gil.pitney@linaro.org> | 2014-12-10 14:19:29 -0800 |
---|---|---|
committer | Gil Pitney <gil.pitney@linaro.org> | 2014-12-10 14:19:29 -0800 |
commit | dafc5b461979fd1bba2dabfd32d01d7a20cd1005 (patch) | |
tree | fc749e68125555d468cf6a146ba4b43757315e0e /include | |
parent | 27a45b16ed4aa2e3947b794c79e88fe0b4215510 (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.h | 38 |
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 |