[cfe-dev] OpenCl Built-in function declaration

Peter Collingbourne peter at pcc.me.uk
Tue Mar 6 09:48:50 PST 2012


On Tue, Mar 06, 2012 at 06:17:37AM -0800, ulop9 wrote:
> Hi,
> 
> i'm trying to use Clang to generate the AST of an OpenCL kernel, to then
> parse it and get some statistics about it (e.g. the number of floating
> additions).
> 
> I'm using Clang the following way: clang -cc1 -ast-dump -x cl "Kernel file"
> > "Kernel ast"
> 
> The point in here is that clang doesn't recognize OpenCl built-in functions,
> functions such as "get_local_id()" give implicit declaration error. My
> question is if there is any file where all these functions are defined.
> 
> I've searched along the mailing list and the most similar solution to my
> problem i've found is in:
> http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-October/017800.html
> 
> The ocldef.h file done by Speziale Ettore contains several definitions for
> built-in functions
> generated by TableGen as described in the post.
> This file doesn't include all the functions in the OpenCl specification
> Section 6, just some done by hand with TableGen, so i don't know if the only
> solution is to complete this file or there is some
> header file with all the declarations.
> 
> Thanks in advice.

You can also look at libclc, which is a project aimed to become a
standard library implementation for OpenCL C.  libclc is nowhere
near finished but it covers many commonly used functions, and you
are welcome to contribute more.

http://libclc.llvm.org/

The compile-test.sh script in the root directory shows you how to
compile a source file using libclc for the ptx32 target.  Since you
are only collecting statistics it shouldn't matter much which target
you use, so ptx32 should be fine.

Thanks,
-- 
Peter



More information about the cfe-dev mailing list