From: Marek Olšák Date: Wed, 19 Oct 2016 22:09:44 +0000 (+0200) Subject: gallivm: add wrappers for missing functions in LLVM <= 3.8 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2db56434d4a275b5b24445dcaeaa024eca6fa7f9;p=mesa.git gallivm: add wrappers for missing functions in LLVM <= 3.8 radeonsi needs these. Reviewed-by: Nicolai Hähnle --- diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp index 791a4702556..f4045ad1d89 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp @@ -77,6 +77,7 @@ #include +#include #include #include #include @@ -708,3 +709,23 @@ lp_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes) A->addAttr(llvm::AttributeSet::get(A->getContext(), A->getArgNo() + 1, B)); #endif } + +extern "C" LLVMValueRef +lp_get_called_value(LLVMValueRef call) +{ +#if HAVE_LLVM >= 0x0309 + return LLVMGetCalledValue(call); +#else + return llvm::wrap(llvm::CallSite(llvm::unwrap(call)).getCalledValue()); +#endif +} + +extern "C" bool +lp_is_function(LLVMValueRef v) +{ +#if HAVE_LLVM >= 0x0309 + return LLVMGetValueKind(v) == LLVMFunctionValueKind; +#else + return llvm::isa(llvm::unwrap(v)); +#endif +} diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h index c127c480d52..a55c6bd508d 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h @@ -76,6 +76,12 @@ lp_free_memory_manager(LLVMMCJITMemoryManagerRef memorymgr); extern void lp_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes); +extern LLVMValueRef +lp_get_called_value(LLVMValueRef call); + +extern bool +lp_is_function(LLVMValueRef v); + #ifdef __cplusplus } #endif