[cfe-dev] [LLVMdev] ANN: libclc (OpenCL C library implementation)

Speziale Ettore speziale.ettore at gmail.com
Fri Oct 21 06:48:58 PDT 2011


> 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:


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 cfe-dev mailing list