Add the possibilty to bind functions or types to an OpenCL extension
(e.g.: cl_khr_fp16 for the "half" type, or
cl_khr_global_int32_base_atomics for functions).
Type extensions currently added are:
*cl_khr_fp16
*cl_khr_fp64
*cl_khr_gl_msaa_sharing
Function extensions currently added are:
*cl_khr_global_int32_base_atomics
*cl_khr_global_int32_extended_atomics
This mimics the following pragma:
\#pragma OPENCL EXTENSION <ExtName> : [begin|end]
The previously defined atomic functions are updated accordingly.
This depends on:
-1, splitting opencl-c.h file: https://reviews.llvm.org/D63256/new/
-2, Adding generic types: https://reviews.llvm.org/D63434
-3, Adding const, volatile and pointer types: https://reviews.llvm.org/D63442
-4, Adding image types: https://reviews.llvm.org/D63480
-5, Adding version handling: https://reviews.llvm.org/D63504
should be used.