1
Fork 0

Update LLVM.

This commit is contained in:
Luqman Aden 2014-09-30 17:20:22 -04:00
parent 20f4c45bad
commit 4b22178d32
8 changed files with 61 additions and 21 deletions

View file

@ -246,7 +246,7 @@ endif
###################################################################### ######################################################################
# FIXME: x86-ism # FIXME: x86-ism
LLVM_COMPONENTS=x86 arm mips ipo bitreader bitwriter linker asmparser jit mcjit \ LLVM_COMPONENTS=x86 arm mips ipo bitreader bitwriter linker asmparser mcjit \
interpreter instrumentation interpreter instrumentation
# Only build these LLVM tools # Only build these LLVM tools

View file

@ -3164,8 +3164,7 @@ fn populate_scope_map(cx: &CrateContext,
parent_scope, parent_scope,
file_metadata, file_metadata,
loc.line as c_uint, loc.line as c_uint,
loc.col.to_uint() as c_uint, loc.col.to_uint() as c_uint)
0)
}; };
scope_stack.push(ScopeStackEntry { scope_metadata: scope_metadata, scope_stack.push(ScopeStackEntry { scope_metadata: scope_metadata,
@ -3290,8 +3289,7 @@ fn populate_scope_map(cx: &CrateContext,
parent_scope, parent_scope,
file_metadata, file_metadata,
loc.line as c_uint, loc.line as c_uint,
loc.col.to_uint() as c_uint, loc.col.to_uint() as c_uint)
0)
}; };
scope_stack.push(ScopeStackEntry { scope_stack.push(ScopeStackEntry {

View file

@ -1747,8 +1747,7 @@ extern {
Scope: DIDescriptor, Scope: DIDescriptor,
File: DIFile, File: DIFile,
Line: c_uint, Line: c_uint,
Col: c_uint, Col: c_uint)
Discriminator: c_uint)
-> DILexicalBlock; -> DILexicalBlock;
pub fn LLVMDIBuilderCreateStaticVariable(Builder: DIBuilderRef, pub fn LLVMDIBuilderCreateStaticVariable(Builder: DIBuilderRef,
@ -2179,12 +2178,10 @@ pub unsafe fn static_link_hack_this_sucks() {
LLVMRustLinkInExternalBitcode(0 as *mut _, 0 as *const _, 0 as size_t); LLVMRustLinkInExternalBitcode(0 as *mut _, 0 as *const _, 0 as size_t);
LLVMLinkInJIT();
LLVMLinkInMCJIT(); LLVMLinkInMCJIT();
LLVMLinkInInterpreter(); LLVMLinkInInterpreter();
extern { extern {
fn LLVMLinkInJIT();
fn LLVMLinkInMCJIT(); fn LLVMLinkInMCJIT();
fn LLVMLinkInInterpreter(); fn LLVMLinkInInterpreter();
} }

@ -1 +1 @@
Subproject commit e9d037419441d51ccb0f41aacbc64080b0c6e81b Subproject commit c9b823739d1357a058e7437c00bec6d2d0b00ed6

View file

@ -118,7 +118,9 @@ LLVMRustAddAnalysisPasses(LLVMTargetMachineRef TM,
LLVMPassManagerRef PMR, LLVMPassManagerRef PMR,
LLVMModuleRef M) { LLVMModuleRef M) {
PassManagerBase *PM = unwrap(PMR); PassManagerBase *PM = unwrap(PMR);
#if LLVM_VERSION_MINOR >= 5 #if LLVM_VERSION_MINOR >= 6
PM->add(new DataLayoutPass());
#elif LLVM_VERSION_MINOR == 5
PM->add(new DataLayoutPass(unwrap(M))); PM->add(new DataLayoutPass(unwrap(M)));
#else #else
PM->add(new DataLayout(unwrap(M))); PM->add(new DataLayout(unwrap(M)));
@ -187,7 +189,12 @@ LLVMRustWriteOutputFile(LLVMTargetMachineRef Target,
PassManager *PM = unwrap<PassManager>(PMR); PassManager *PM = unwrap<PassManager>(PMR);
std::string ErrorInfo; std::string ErrorInfo;
#if LLVM_VERSION_MINOR >= 4 #if LLVM_VERSION_MINOR >= 6
std::error_code EC;
raw_fd_ostream OS(path, EC, sys::fs::F_None);
if (EC)
ErrorInfo = EC.message();
#elif LLVM_VERSION_MINOR >= 4
raw_fd_ostream OS(path, ErrorInfo, sys::fs::F_None); raw_fd_ostream OS(path, ErrorInfo, sys::fs::F_None);
#else #else
raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary); raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary);
@ -210,7 +217,12 @@ LLVMRustPrintModule(LLVMPassManagerRef PMR,
PassManager *PM = unwrap<PassManager>(PMR); PassManager *PM = unwrap<PassManager>(PMR);
std::string ErrorInfo; std::string ErrorInfo;
#if LLVM_VERSION_MINOR >= 4 #if LLVM_VERSION_MINOR >= 6
std::error_code EC;
raw_fd_ostream OS(path, EC, sys::fs::F_None);
if (EC)
ErrorInfo = EC.message();
#elif LLVM_VERSION_MINOR >= 4
raw_fd_ostream OS(path, ErrorInfo, sys::fs::F_None); raw_fd_ostream OS(path, ErrorInfo, sys::fs::F_None);
#else #else
raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary); raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary);

View file

@ -393,13 +393,12 @@ extern "C" LLVMValueRef LLVMDIBuilderCreateLexicalBlock(
LLVMValueRef Scope, LLVMValueRef Scope,
LLVMValueRef File, LLVMValueRef File,
unsigned Line, unsigned Line,
unsigned Col, unsigned Col) {
unsigned Discriminator) {
return wrap(Builder->createLexicalBlock( return wrap(Builder->createLexicalBlock(
unwrapDI<DIDescriptor>(Scope), unwrapDI<DIDescriptor>(Scope),
unwrapDI<DIFile>(File), Line, Col unwrapDI<DIFile>(File), Line, Col
#if LLVM_VERSION_MINOR >= 5 #if LLVM_VERSION_MINOR == 5
, Discriminator , 0
#endif #endif
)); ));
} }
@ -415,7 +414,11 @@ extern "C" LLVMValueRef LLVMDIBuilderCreateStaticVariable(
bool isLocalToUnit, bool isLocalToUnit,
LLVMValueRef Val, LLVMValueRef Val,
LLVMValueRef Decl = NULL) { LLVMValueRef Decl = NULL) {
#if LLVM_VERSION_MINOR == 6
return wrap(Builder->createGlobalVariable(unwrapDI<DIDescriptor>(Context),
#else
return wrap(Builder->createStaticVariable(unwrapDI<DIDescriptor>(Context), return wrap(Builder->createStaticVariable(unwrapDI<DIDescriptor>(Context),
#endif
Name, Name,
LinkageName, LinkageName,
unwrapDI<DIFile>(File), unwrapDI<DIFile>(File),
@ -665,11 +668,18 @@ extern "C" void LLVMWriteValueToString(LLVMValueRef Value, RustStringRef str) {
extern "C" bool extern "C" bool
LLVMRustLinkInExternalBitcode(LLVMModuleRef dst, char *bc, size_t len) { LLVMRustLinkInExternalBitcode(LLVMModuleRef dst, char *bc, size_t len) {
Module *Dst = unwrap(dst); Module *Dst = unwrap(dst);
#if LLVM_VERSION_MINOR == 5
MemoryBuffer* buf = MemoryBuffer::getMemBufferCopy(StringRef(bc, len)); MemoryBuffer* buf = MemoryBuffer::getMemBufferCopy(StringRef(bc, len));
ErrorOr<Module *> Src = llvm::getLazyBitcodeModule(buf, Dst->getContext()); ErrorOr<Module *> Src = llvm::getLazyBitcodeModule(buf, Dst->getContext());
#else
std::unique_ptr<MemoryBuffer> buf = MemoryBuffer::getMemBufferCopy(StringRef(bc, len));
ErrorOr<Module *> Src = llvm::getLazyBitcodeModule(std::move(buf), Dst->getContext());
#endif
if (!Src) { if (!Src) {
LLVMRustSetLastError(Src.getError().message().c_str()); LLVMRustSetLastError(Src.getError().message().c_str());
#if LLVM_VERSION_MINOR == 5
delete buf; delete buf;
#endif
return false; return false;
} }
@ -712,12 +722,26 @@ LLVMRustOpenArchive(char *path) {
return nullptr; return nullptr;
} }
#if LLVM_VERSION_MINOR >= 6
ErrorOr<std::unique_ptr<Archive>> archive_or =
Archive::create(buf_or.get()->getMemBufferRef());
if (!archive_or) {
LLVMRustSetLastError(archive_or.getError().message().c_str());
return nullptr;
}
OwningBinary<Archive> *ret = new OwningBinary<Archive>(
std::move(archive_or.get()), std::move(buf_or.get()));
#else
std::error_code err; std::error_code err;
Archive *ret = new Archive(std::move(buf_or.get()), err); Archive *ret = new Archive(std::move(buf_or.get()), err);
if (err) { if (err) {
LLVMRustSetLastError(err.message().c_str()); LLVMRustSetLastError(err.message().c_str());
return NULL; return nullptr;
} }
#endif
return ret; return ret;
} }
#else #else
@ -739,7 +763,14 @@ LLVMRustOpenArchive(char *path) {
#endif #endif
extern "C" const char* extern "C" const char*
#if LLVM_VERSION_MINOR >= 6
LLVMRustArchiveReadSection(OwningBinary<Archive> *ob, char *name, size_t *size) {
std::unique_ptr<Archive> &ar = ob->getBinary();
#else
LLVMRustArchiveReadSection(Archive *ar, char *name, size_t *size) { LLVMRustArchiveReadSection(Archive *ar, char *name, size_t *size) {
#endif
#if LLVM_VERSION_MINOR >= 5 #if LLVM_VERSION_MINOR >= 5
Archive::child_iterator child = ar->child_begin(), Archive::child_iterator child = ar->child_begin(),
end = ar->child_end(); end = ar->child_end();
@ -765,7 +796,11 @@ LLVMRustArchiveReadSection(Archive *ar, char *name, size_t *size) {
} }
extern "C" void extern "C" void
#if LLVM_VERSION_MINOR >= 6
LLVMRustDestroyArchive(OwningBinary<Archive> *ar) {
#else
LLVMRustDestroyArchive(Archive *ar) { LLVMRustDestroyArchive(Archive *ar) {
#endif
delete ar; delete ar;
} }

View file

@ -1,4 +1,4 @@
# If this file is modified, then llvm will be forcibly cleaned and then rebuilt. # If this file is modified, then llvm will be forcibly cleaned and then rebuilt.
# The actual contents of this file do not matter, but to trigger a change on the # The actual contents of this file do not matter, but to trigger a change on the
# build bots then the contents should be changed so git updates the mtime. # build bots then the contents should be changed so git updates the mtime.
2014-09-08 2014-10-04

View file

@ -32,8 +32,6 @@
#include "llvm/Support/DynamicLibrary.h" #include "llvm/Support/DynamicLibrary.h"
#include "llvm/Support/Memory.h" #include "llvm/Support/Memory.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h" #include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/JIT.h"
#include "llvm/ExecutionEngine/JITMemoryManager.h"
#include "llvm/ExecutionEngine/MCJIT.h" #include "llvm/ExecutionEngine/MCJIT.h"
#include "llvm/ExecutionEngine/Interpreter.h" #include "llvm/ExecutionEngine/Interpreter.h"
#include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetMachine.h"