[Beignet] [PATCH 00/18] Using bit code ocl lib to replace the huge header file.

He Junyan junyan.he at inbox.com
Thu Aug 28 01:03:45 PDT 2014


The dependencies of these files are complex here and may cause some
inconvenience because the CMake lacks of the flexibility.
After discussion with Zhigang, I notice that it is important to keep it
complying with the whole project and I will rewrite the all the building
files using CMake.


On 三, 2014-08-27 at 23:17 -0400, Yichao Yu wrote:
> On Wed, Aug 27, 2014 at 10:50 PM, Song, Ruiling <ruiling.song at intel.com> wrote:
> > Out-of-source build (mkdir build; cmake ../; make) does not work after apply your patch. It simply print " No targets specified and no makefile found.  Stop. " and stop building.
> 
> Do you mean `mkdir build; cd build; cmake ../; make` ? It feels like
> no makefile found error cannot be caused by changes in the cmake files
> without configure time error.
> 
> >
> > After apply your patch, utest compiler_copy_image1 failed on my machine.
> >
> > And seems that you miss "Copyright" header in the new files you added.
> >
> > -----Original Message-----
> > From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of junyan.he at inbox.com
> > Sent: Tuesday, August 12, 2014 3:31 PM
> > To: beignet at lists.freedesktop.org
> > Cc: Junyan He
> > Subject: [Beignet] [PATCH 00/18] Using bit code ocl lib to replace the huge header file.
> >
> > From: Junyan He <junyan.he at linux.intel.com>
> >
> > The PCH file is growing too big. It contains too many defines and macros, which need a lot of time to parse and may cause some conflicts with the user defined macros. This patch set will extract the function protocols from its definition into the header files and compile all the functions' definition into a llvm bitcode file as a cl library. This manner is also compatible with libclc and we can switch to libclc if libclc is stable and extensive enough.
> > This patch set may cause the compiling time slower than the PCH version, because the header file's parsing and bitcode's linking are not optimized yet, and we will continue to improve it.
> >
> > TODO:
> > Math functions' fast and standard switch in the lib.
> > Header file parsing optimization, may use PCH or PTH.
> > Linking optimization.
> >
> > Signed-off-by: Junyan He <junyan.he at linux.intel.com>
> > ---
> >  backend/CMakeLists.txt                        |     3 +
> >  backend/src/CMakeLists.txt                    |   141 +-
> >  backend/src/GBEConfig.h.in                    |     2 +
> >  backend/src/backend/program.cpp               |   239 +-
> >  backend/src/builtin_vector_proto.def          |   295 -
> >  backend/src/gen_as.sh                         |   101 -
> >  backend/src/gen_builtin_vector.py             |   414 -
> >  backend/src/gen_convert.sh                    |   553 -
> >  backend/src/libocl/Makefile.in                |    81 +
> >  backend/src/libocl/include/ocl.h              |    23 +
> >  backend/src/libocl/include/ocl_async.h        |    49 +
> >  backend/src/libocl/include/ocl_atom.h         |    84 +
> >  backend/src/libocl/include/ocl_common.inh     |    21 +
> >  backend/src/libocl/include/ocl_defines.inh    |    23 +
> >  backend/src/libocl/include/ocl_float.h        |    79 +
> >  backend/src/libocl/include/ocl_geometric.h    |    39 +
> >  backend/src/libocl/include/ocl_image.h        |   161 +
> >  backend/src/libocl/include/ocl_integer.inh    |   160 +
> >  backend/src/libocl/include/ocl_math.inh       |   103 +
> >  backend/src/libocl/include/ocl_misc.h         |   122 +
> >  backend/src/libocl/include/ocl_printf.h       |    15 +
> >  backend/src/libocl/include/ocl_relational.inh |    78 +
> >  backend/src/libocl/include/ocl_sync.h         |    18 +
> >  backend/src/libocl/include/ocl_types.h        |   104 +
> >  backend/src/libocl/include/ocl_vload.h        |   143 +
> >  backend/src/libocl/include/ocl_workitem.h     |    15 +
> >  backend/src/libocl/lib/ocl_async.cl           |    69 +
> >  backend/src/libocl/lib/ocl_atom.cl            |   122 +
> >  backend/src/libocl/lib/ocl_barrier.ll         |    39 +
> >  backend/src/libocl/lib/ocl_common.inc         |    49 +
> >  backend/src/libocl/lib/ocl_geometric.cl       |    96 +
> >  backend/src/libocl/lib/ocl_image.cl           |   412 +
> >  backend/src/libocl/lib/ocl_integer.inc        |   352 +
> >  backend/src/libocl/lib/ocl_math.inc           |  3316 +++++
> >  backend/src/libocl/lib/ocl_memcpy.ll          |   336 +
> >  backend/src/libocl/lib/ocl_memset.ll          |   127 +
> >  backend/src/libocl/lib/ocl_misc.cl            |   201 +
> >  backend/src/libocl/lib/ocl_relational.inc     |   151 +
> >  backend/src/libocl/lib/ocl_sync.cl            |    14 +
> >  backend/src/libocl/lib/ocl_vload.cl           |   257 +
> >  backend/src/libocl/lib/ocl_workitem.cl        |    40 +
> >  backend/src/libocl/script/gen_as.sh           |   124 +
> >  backend/src/libocl/script/gen_common.inc      |    11 +
> >  backend/src/libocl/script/gen_convert.sh      |   653 +
> >  backend/src/libocl/script/gen_vector.py       |   382 +
> >  backend/src/libocl/script/ocl_common.def      |    22 +
> >  backend/src/libocl/script/ocl_integer.def     |    31 +
> >  backend/src/libocl/script/ocl_math.def        |   166 +
> >  backend/src/libocl/script/ocl_relational.def  |    34 +
> >  backend/src/llvm/llvm_bitcode_link.cpp        |   138 +
> >  backend/src/llvm/llvm_gen_backend.hpp         |     3 +
> >  backend/src/llvm/llvm_to_gen.cpp              |    71 +-
> >  backend/src/ocl_as.h                          |  3086 -----
> >  backend/src/ocl_barrier.ll                    |    39 -
> >  backend/src/ocl_convert.h                     | 17415 ------------------------
> >  backend/src/ocl_memcpy.ll                     |   336 -
> >  backend/src/ocl_memset.ll                     |   127 -
> >  backend/src/ocl_stdlib.tmpl.h                 |  5149 -------
> >  backend/src/update.sh                         |     3 -
> >  backend/src/update_as.sh                      |    11 -
> >  backend/src/update_blob_ocl_header.py         |    65 -
> >  backend/src/update_convert.sh                 |    12 -
> >  utests/CMakeLists.txt                         |   154 -
> >  utests/setenv.sh.in                           |     4 +-
> >  65 files changed, 8581 insertions(+), 28104 deletions(-) _______________________________________________
> > Beignet mailing list
> > Beignet at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/beignet
> > _______________________________________________
> > Beignet mailing list
> > Beignet at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/beignet





More information about the Beignet mailing list