r600g: disable handling of DISCARD_RANGE
[mesa.git] / src / gallium / drivers / r600 / llvm_wrapper.cpp
1 #include <llvm/ADT/OwningPtr.h>
2 #include <llvm/ADT/StringRef.h>
3 #include <llvm/LLVMContext.h>
4 #include <llvm/Support/IRReader.h>
5 #include <llvm/Support/MemoryBuffer.h>
6 #include <llvm/Support/SourceMgr.h>
7
8 #include "llvm_wrapper.h"
9
10
11 extern "C" LLVMModuleRef llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len)
12 {
13 llvm::OwningPtr<llvm::Module> M;
14 llvm::StringRef str((const char*)bitcode, bitcode_len);
15 llvm::MemoryBuffer* buffer = llvm::MemoryBuffer::getMemBufferCopy(str);
16 llvm::SMDiagnostic Err;
17 M.reset(llvm::ParseIR(buffer, Err, llvm::getGlobalContext()));
18 return wrap(M.take());
19 }