aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-12-16v0.9: Shamrock README and TODO listsshamrock_v0.9Khronos_conformanceGil Pitney
and updated CREDITS Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-15Remove test test_basic_parameter_types from sanity testsGil Pitney
This test was added as an aid to debug a particular Khronos test, which is now fixed, so is being removed. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-15cpu.h: Allow printf() to be called from kernels for debugging.Gil Pitney
Fix prototype so printf() can be called from kernels. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-15Merge remote-tracking branch 'showliu/Khronos_conformance' into ↵Gil Pitney
Khronos_conformance Merge in fix to sanity test: test kernel.
2014-12-11fixed the tests kernel fail problemShow Liu
2014-12-10prefetch: Implemented prefetch builtin (noop'ed)Gil Pitney
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>
2014-12-09Fixed the incomplete kernellist when resurrect kernel from released kernel list.Show Liu
2014-12-09Fixed the kernel will been push into kernellist twice issue when create a ↵Show Liu
new kernel. The new kernel push back into kernellist at createKernel() function already.
2014-12-08Adjust CL_DEVICE_MAX_WORK_GROUP_SIZE and CL_DEVICE_MAX_WORK_ITEM_SIZES values.Gil Pitney
Some Khronos basic tests were crashing with huge work group sizes. This patch adjusts values down so that Khronos basic tests local_arg_def and local_kernel_def can now pass. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-08Ensure kernel arguments to local address space allocated on 128 byte boundaryGil Pitney
Buffers in local space, passed as kernel parameters, are allocated at runtime by shamrock. This patch ensures such allocated memory is aligned for maximum OpenCL data type alignment (double16). Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-08Added -ffake-address-space-map option to generate LLVM IR address spacesGil Pitney
Previously, shamrock was not able to get address space attributes from LLVM's getAddressSpace() API for function (kernel) arguments, as they didn't exist in the generated LLVM IR. Now, we use a clang option to force address space mapping, causing addrspace(<n>) attrs to be inserted. See the discussion here: https://www.mail-archive.com/cfe-commits@cs.uiuc.edu/msg76370.html This was a necessary step to get many of the Khronos basic tests involving local variables and parameters to not crash. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-08builtins: Fixed nextafter builtin; updated INFINITY definition.Gil Pitney
Redefined nextafter to use __builtin_nextafterf(), and INFINITY to use __builtin_inff(). This enables the Khronos basic test kernel_limit_constants to pass. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-11-21test: parameter types: updated to test for int4 to float4 conversion.basic_parameter_typesGil Pitney
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-11-21Fixed kernel stub argument marshalling code to ensure proper alignmentGil Pitney
Previously, shamrock was generating load instructions in the kernel stub with a strict type alignment, which was not being followed by the argument marshalling code. This resulted in a NEON vld1 instruction failing in the kernel stub, and trashing a base register which was not 16 byte aligned. Now the marshalling code calculates the proper alignement for each argument, and is based on a buffer aligned to double16 to begin with. With this patch, all the vector sub-tests of the Khronos basic_parameter_types test now pass. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-11-19clCreateBuffer(): Ensure allocation meets minimum alignment for double16 typeGil Pitney
Previously, clCreateBuffer() was using malloc to allocate buffers, which caused havoc with NEON instructions expecting 128 bit alignment for float4 vectors. Now, use posix_memallign() to ensure alignment meets requirements of largest OpenCL data type (double16). Also, update clGetDeviceInfo()'s CL_DEVICE_MEM_BASE_ADDR_ALIGN and CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE accordingly. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-11-17Remove redundant getPointerToFunction() call.Gil Pitney
JIT's getPointerToFunction() call was redundant and deprecated by getFunctionAddress(). Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-11-13Test: Added unit test to help debug Khronos basic_parameter_types vector testGil Pitney
See tests/basic_parameter_types.txt for usage. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-10-28Initial Commit: Based on TI OpenCL v0.8, originally based on clover.shamrock_v0.8Gil Pitney
This is a continuation of the clover OpenCL project: http://people.freedesktop.org/~steckdenis/clover based on the contributions from Texas Instruments for Keystone II DSP device: git.ti.com/opencl and adding contributions from Linaro for ARM CPU-only support. See README.txt for more info, and build instructions. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>