19#include <llvm-c/Core.h>
20#include <llvm/IR/Function.h>
25#ifdef USE_LLVM_BACKPORT_SECTION_MEMORY_MANAGER
26#include <llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h>
27#include <llvm/ExecutionEngine/SectionMemoryManager.h>
29#include <llvm/Support/CBindingWrapping.h>
40 return llvm::wrap(llvm::unwrap<llvm::Function>(r)->getReturnType());
46 return llvm::wrap(llvm::unwrap<llvm::Function>(r)->getFunctionType());
49#ifdef USE_LLVM_BACKPORT_SECTION_MEMORY_MANAGER
50DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::ExecutionSession, LLVMOrcExecutionSessionRef)
51DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::ObjectLayer, LLVMOrcObjectLayerRef);
54LLVMOrcCreateRTDyldObjectLinkingLayerWithSafeSectionMemoryManager(LLVMOrcExecutionSessionRef ES)
56 return wrap(
new llvm::orc::RTDyldObjectLinkingLayer(
57 *unwrap(ES), [] {
return std::make_unique<llvm::backport::SectionMemoryManager>(
nullptr,
true); }));
LLVMTypeRef LLVMGetFunctionReturnType(LLVMValueRef r)
LLVMTypeRef LLVMGetFunctionType(LLVMValueRef r)