Module: Mesa Branch: master Commit: 7e9abbea15bf6ff717c1908870d9c2de219d69b4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e9abbea15bf6ff717c1908870d9c2de219d69b4
Author: Tom Stellard <[email protected]> Date: Thu Mar 7 16:51:09 2013 -0500 radeon/llvm: Implement radeon_llvm_parse_bitcode() using C API Also make the function static since it is not used anywhere else. --- src/gallium/drivers/radeon/radeon_llvm_util.cpp | 18 +++++++++++------- src/gallium/drivers/radeon/radeon_llvm_util.h | 1 - 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.cpp b/src/gallium/drivers/radeon/radeon_llvm_util.cpp index 22c6dc6..5f63ed7 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_util.cpp +++ b/src/gallium/drivers/radeon/radeon_llvm_util.cpp @@ -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) diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.h b/src/gallium/drivers/radeon/radeon_llvm_util.h index a7dfa9b..e144164 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_util.h +++ b/src/gallium/drivers/radeon/radeon_llvm_util.h @@ -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, _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
