radeon/llvm: Implement radeon_llvm_parse_bitcode() using C API

Also make the function static since it is not used anywhere else.
This commit is contained in:
Tom Stellard 2013-03-07 16:51:09 -05:00
parent 97bfcddde0
commit 7e9abbea15
2 changed files with 11 additions and 8 deletions

View file

@ -10,18 +10,22 @@
#include <llvm/Support/MemoryBuffer.h>
#include <llvm/Support/SourceMgr.h>
#include <llvm/Transforms/IPO.h>
#include <llvm-c/BitReader.h>
#include <llvm-c/Core.h>
#include "radeon_llvm_util.h"
extern "C" LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len)
static LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode,
unsigned bitcode_len)
{
llvm::OwningPtr<llvm::Module> M;
llvm::StringRef str((const char*)bitcode, bitcode_len);
llvm::MemoryBuffer* buffer = llvm::MemoryBuffer::getMemBufferCopy(str);
llvm::SMDiagnostic Err;
M.reset(llvm::ParseIR(buffer, Err, llvm::getGlobalContext()));
return wrap(M.take());
LLVMMemoryBufferRef buf;
LLVMModuleRef module = LLVMModuleCreateWithName("radeon");
buf = LLVMCreateMemoryBufferWithMemoryRangeCopy((const char*)bitcode,
bitcode_len, "radeon");
LLVMParseBitcode(buf, &module, NULL);
return module;
}
extern "C" void radeon_llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name)

View file

@ -7,7 +7,6 @@
extern "C" {
#endif
LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len);
void radeon_llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name);
unsigned radeon_llvm_get_num_kernels(const unsigned char *bitcode, unsigned bitcode_len);
LLVMModuleRef radeon_llvm_get_kernel_module(unsigned index,