Age | Commit message (Collapse) | Author |
|
The commandqueue sanity test (tests/test_commandqueue.cpp) was failing.
This was due to a lock being taken twice in a row from the same
thread, with a mutex type of PTHREAD_MUTEX_DEFAULT, where re-locking
produces undefined behaviour.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Previous test was wrong.
- if (!stdlib || !Result) {
+ if (!stdlib || Result) {
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Previous casting to attempt to get the name of the node was erroneous,
and led to seg fault.
This has been fixed.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Without explicitly setting the ThreadModel, clang asserts.
This is new behaviour with LLVM 3.6.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Based on patch thanks to
Author: Tom Gall <tom.gall@linaro.org>
Date: Mon Jan 26 12:54:14 2015 -0600
add added updates based on comments in
http://llvm.org/docs/doxygen/html/classllvm_1_1ConstantInt.html
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Clang and GCC are now complaining about (this == 0) comparisons.
Rather than remove the comparison, keeping it for safety, and just
silencing the warning for this file (src/core/object.cpp) only.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
This macro seems to require MMX extension.
This can be revisited later for ARM once Image support added.
The macro will stil work for ARM, but will call the C implementation
rather than the clang builtin.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Also, removed call to .setUseMCJIT() method (removed in LLVM 3.6).
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Passing a raw pointer to addRemappedFile().
Act->takeModule() returns a unique_ptr, so we need the raw pointer, taking
it back by release() method.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
Needed to cast to get llvm::Value from node->getOperand().
Changes to deal with use of std::unique_ptr, and API change taking
MemoryBufferRef instead of MemoryBuffer.
Change in Linker::LinkModules which now takes a DiagnosticHandler instead
of a string.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
More updates due to C++11, used by LLVM.
Made addDependentEvent() const function.
As a result, cast away const on some pthread library function
calls and other calls in that const member function.
Also, made p_dependent_events mutable, since std library functions were
working on it.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
and updated CREDITS
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
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>
|
|
|
|
new kernel.
The new kernel push back into kernellist at createKernel() function already.
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
JIT's getPointerToFunction() call was redundant and deprecated by
getFunctionAddress().
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
|
|
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>
|