[Beignet] [PATCH] Make Beignet work with LLVM 3.3

Dag Lem dag at nimrod.no
Mon Jun 3 02:09:55 PDT 2013


Hi,

Fedora 18 users have just been ambushed with LLVM 3.3 RC2, which
leaves Beignet in an unworkable state.

This patch makes Beignet work with LLVM 3.3.

As an added bonus I have switched from the "nvptx" to the "spir" target.
I was unable to make "nvptx" work with constant globals, since these were
put in the global address space. The "nvptx" target also uses a different
address space convention than the Khronos SPIR spec, and Beignet has always
used the SPIR address space numbers (except for the hack on image types).

In any case, I guess SPIR is the way to go. Hopefully someone else will
pick up on this and remove the hacks on the built-in types image2d_t,
image3d_t, sampler_t, and event_t.

Note that I have only tested this on LLVM 3.3; hopefully it should still
work on earlier versions of LLVM.

Dag Lem (1):
  Adaptions for LLVM 3.3 / SPIR

 backend/src/backend/program.cpp             |  17 +-
 backend/src/ir/unit.cpp                     |   5 +
 backend/src/ir/unit.hpp                     |   5 +
 backend/src/llvm/llvm_gen_backend.cpp       |  38 ++-
 backend/src/llvm/llvm_passes.cpp            |  20 +-
 backend/src/llvm/llvm_scalarize.cpp         |  17 +-
 backend/src/llvm/llvm_to_gen.cpp            |  13 +-
 backend/src/ocl_stdlib.h                    | 359 ++++++++++++++--------------
 kernels/compiler_clod.cl                    |   4 +-
 kernels/compiler_julia.cl                   |   4 +-
 kernels/compiler_julia_no_break.cl          |   4 +-
 kernels/compiler_mandelbrot.cl              |   6 +-
 kernels/compiler_mandelbrot_alternate.cl    |   6 +-
 kernels/compiler_menger_sponge_no_shadow.cl |  14 +-
 kernels/compiler_ribbon.cl                  |   2 +-
 15 files changed, 305 insertions(+), 209 deletions(-)

-- 
1.8.1.4



More information about the Beignet mailing list