mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 02:10:12 +01:00
gallivm: add wrappers for missing functions in LLVM <= 3.8
radeonsi needs these. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
4a2dbfff05
commit
2db56434d4
2 changed files with 27 additions and 0 deletions
|
|
@ -77,6 +77,7 @@
|
|||
|
||||
#include <llvm/Support/TargetSelect.h>
|
||||
|
||||
#include <llvm/IR/CallSite.h>
|
||||
#include <llvm/IR/IRBuilder.h>
|
||||
#include <llvm/IR/Module.h>
|
||||
#include <llvm/Support/CBindingWrapping.h>
|
||||
|
|
@ -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<llvm::Instruction>(call)).getCalledValue());
|
||||
#endif
|
||||
}
|
||||
|
||||
extern "C" bool
|
||||
lp_is_function(LLVMValueRef v)
|
||||
{
|
||||
#if HAVE_LLVM >= 0x0309
|
||||
return LLVMGetValueKind(v) == LLVMFunctionValueKind;
|
||||
#else
|
||||
return llvm::isa<llvm::Function>(llvm::unwrap(v));
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue