Backend: Add support for LLVM 3.9 release

Graphics / Beignet - Pan Xiuli [intel.com] - 28 September 2016 03:05 UTC

LLVM 3.9 changes a lot from 3.8, modify on: 1. API getGlobalContext was removed, add GBEGetLLVMContext instead 2. API LLVMLinkModules was removed, use LLVMLinkModules2 instead. 3. LLVMLinkModules2 now will delete src module for default, clone all src module and kernel names. 4. Few LLVM pass refine, change include headers and creadpass API. 5. clang refine image type name, change llvminfo check for image. 6. clang change kernel arg info metadata and some other metadata to function metadata, refine metedata query function logic. 7. clang default define most cl_khr_* macro, need to undef them first. 8. SPIR mangle was changed by a fix patch for Itanium mangle, now most SPIR can not be recognized by LLVM 3.9.

V2: Merge some code.

0056da7 Backend: Add support for LLVM 3.9 release
backend/src/backend/gen_program.cpp | 13 ++-
backend/src/backend/program.cpp | 10 +++
backend/src/ir/function.hpp | 12 +--
backend/src/libocl/include/ocl.h | 75 ++++++++++++++++++
backend/src/libocl/tmpl/ocl_defines.tmpl.h | 11 ---
backend/src/llvm/llvm_bitcode_link.cpp | 26 +++++-
backend/src/llvm/llvm_gen_backend.cpp | 119 +++++++++++++++++++++++++---
backend/src/llvm/llvm_includes.hpp | 5 ++
backend/src/llvm/llvm_passes.cpp | 6 +-
backend/src/llvm/llvm_to_gen.cpp | 19 ++++-
backend/src/llvm/llvm_to_gen.hpp | 6 ++
11 files changed, 272 insertions(+), 30 deletions(-)

Upstream: cgit.freedesktop.org


  • Share