[LLVMdev] ANN: libclc (OpenCL C library implementation)
Speziale Ettore
speziale.ettore at gmail.com
Fri Oct 21 06:48:58 PDT 2011
Hi,
> libclc: http://www.pcc.me.uk/~peter/libclc/
> pocl: https://launchpad.net/pocl
> clover: http://cgit.freedesktop.org/~steckdenis/clover/
I have pushed our implementation on GitHub:
https://github.com/speziale-ettore/OpenCRun
I have focused on desiging a modular system, because OpenCRun is
intended to be used for research purpose -- not many people, no too much
time, so clean design is not an option. For the same reason, I have
tried to re-use as much as possible what LLVM/CLANG offers: compiler,
jit, build system, diagnostic routines, testing infrastructure, ...
Currently I have implemented an OpenCL backend for i386 and X86_64 CPUs.
I have coded work-item stacks by hand because after some sintetic
benchmarks I have observed that both ucontext and setjmp/longjmp contain
some extra overheads.
Code is not fully documented -- sorry -- and some mandatory features are
still missing (e.g. local variables).
Looking at the code, you can observe that there are a lot of LLVM
passes. I have implemented some features through passed because I want
to keep the code as much modular as possible.
Best regards,
speziale.ettore at gmail.com
PS-1: OpenCRun requires some extra metadata to be generated by clang. In
sources root directory there is a clang patch to add support for
metadata generation
PS-2: some parts are very bad-coded. I know, but I haven't had yet time
to do some refactoring
More information about the llvm-dev
mailing list