Navigation Menu

Skip to content

Commit

Permalink
Update LLVM.
Browse files Browse the repository at this point in the history
  • Loading branch information
luqmana committed Oct 4, 2014
1 parent 20f4c45 commit 4b22178
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 21 deletions.
2 changes: 1 addition & 1 deletion mk/main.mk
Expand Up @@ -246,7 +246,7 @@ endif
######################################################################

# 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

# Only build these LLVM tools
Expand Down
6 changes: 2 additions & 4 deletions src/librustc/middle/trans/debuginfo.rs
Expand Up @@ -3164,8 +3164,7 @@ fn populate_scope_map(cx: &CrateContext,
parent_scope,
file_metadata,
loc.line as c_uint,
loc.col.to_uint() as c_uint,
0)
loc.col.to_uint() as c_uint)
};

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

scope_stack.push(ScopeStackEntry {
Expand Down
5 changes: 1 addition & 4 deletions src/librustc_llvm/lib.rs
Expand Up @@ -1747,8 +1747,7 @@ extern {
Scope: DIDescriptor,
File: DIFile,
Line: c_uint,
Col: c_uint,
Discriminator: c_uint)
Col: c_uint)
-> DILexicalBlock;

pub fn LLVMDIBuilderCreateStaticVariable(Builder: DIBuilderRef,
Expand Down Expand Up @@ -2179,12 +2178,10 @@ pub unsafe fn static_link_hack_this_sucks() {

LLVMRustLinkInExternalBitcode(0 as *mut _, 0 as *const _, 0 as size_t);

LLVMLinkInJIT();
LLVMLinkInMCJIT();
LLVMLinkInInterpreter();

extern {
fn LLVMLinkInJIT();
fn LLVMLinkInMCJIT();
fn LLVMLinkInInterpreter();
}
Expand Down
2 changes: 1 addition & 1 deletion src/llvm
Submodule llvm updated 3131 files
18 changes: 15 additions & 3 deletions src/rustllvm/PassWrapper.cpp
Expand Up @@ -118,7 +118,9 @@ LLVMRustAddAnalysisPasses(LLVMTargetMachineRef TM,
LLVMPassManagerRef PMR,
LLVMModuleRef M) {
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)));
#else
PM->add(new DataLayout(unwrap(M)));
Expand Down Expand Up @@ -187,7 +189,12 @@ LLVMRustWriteOutputFile(LLVMTargetMachineRef Target,
PassManager *PM = unwrap<PassManager>(PMR);

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);
#else
raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary);
Expand All @@ -210,7 +217,12 @@ LLVMRustPrintModule(LLVMPassManagerRef PMR,
PassManager *PM = unwrap<PassManager>(PMR);
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);
#else
raw_fd_ostream OS(path, ErrorInfo, raw_fd_ostream::F_Binary);
Expand Down
45 changes: 40 additions & 5 deletions src/rustllvm/RustWrapper.cpp
Expand Up @@ -393,13 +393,12 @@ extern "C" LLVMValueRef LLVMDIBuilderCreateLexicalBlock(
LLVMValueRef Scope,
LLVMValueRef File,
unsigned Line,
unsigned Col,
unsigned Discriminator) {
unsigned Col) {
return wrap(Builder->createLexicalBlock(
unwrapDI<DIDescriptor>(Scope),
unwrapDI<DIFile>(File), Line, Col
#if LLVM_VERSION_MINOR >= 5
, Discriminator
#if LLVM_VERSION_MINOR == 5
, 0
#endif
));
}
Expand All @@ -415,7 +414,11 @@ extern "C" LLVMValueRef LLVMDIBuilderCreateStaticVariable(
bool isLocalToUnit,
LLVMValueRef Val,
LLVMValueRef Decl = NULL) {
#if LLVM_VERSION_MINOR == 6
return wrap(Builder->createGlobalVariable(unwrapDI<DIDescriptor>(Context),
#else
return wrap(Builder->createStaticVariable(unwrapDI<DIDescriptor>(Context),
#endif
Name,
LinkageName,
unwrapDI<DIFile>(File),
Expand Down Expand Up @@ -665,11 +668,18 @@ extern "C" void LLVMWriteValueToString(LLVMValueRef Value, RustStringRef str) {
extern "C" bool
LLVMRustLinkInExternalBitcode(LLVMModuleRef dst, char *bc, size_t len) {
Module *Dst = unwrap(dst);
#if LLVM_VERSION_MINOR == 5
MemoryBuffer* buf = MemoryBuffer::getMemBufferCopy(StringRef(bc, len));
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) {
LLVMRustSetLastError(Src.getError().message().c_str());
#if LLVM_VERSION_MINOR == 5
delete buf;
#endif
return false;
}

Expand Down Expand Up @@ -712,12 +722,26 @@ LLVMRustOpenArchive(char *path) {
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;
Archive *ret = new Archive(std::move(buf_or.get()), err);
if (err) {
LLVMRustSetLastError(err.message().c_str());
return NULL;
return nullptr;
}
#endif

return ret;
}
#else
Expand All @@ -739,7 +763,14 @@ LLVMRustOpenArchive(char *path) {
#endif

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) {
#endif

#if LLVM_VERSION_MINOR >= 5
Archive::child_iterator child = ar->child_begin(),
end = ar->child_end();
Expand All @@ -765,7 +796,11 @@ LLVMRustArchiveReadSection(Archive *ar, char *name, size_t *size) {
}

extern "C" void
#if LLVM_VERSION_MINOR >= 6
LLVMRustDestroyArchive(OwningBinary<Archive> *ar) {
#else
LLVMRustDestroyArchive(Archive *ar) {
#endif
delete ar;
}

Expand Down
2 changes: 1 addition & 1 deletion src/rustllvm/llvm-auto-clean-trigger
@@ -1,4 +1,4 @@
# 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
# build bots then the contents should be changed so git updates the mtime.
2014-09-08
2014-10-04
2 changes: 0 additions & 2 deletions src/rustllvm/rustllvm.h
Expand Up @@ -32,8 +32,6 @@
#include "llvm/Support/DynamicLibrary.h"
#include "llvm/Support/Memory.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/JIT.h"
#include "llvm/ExecutionEngine/JITMemoryManager.h"
#include "llvm/ExecutionEngine/MCJIT.h"
#include "llvm/ExecutionEngine/Interpreter.h"
#include "llvm/Target/TargetMachine.h"
Expand Down

5 comments on commit 4b22178

@bors
Copy link
Contributor

@bors bors commented on 4b22178 Oct 5, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from alexcrichton
at luqmana@4b22178

@bors
Copy link
Contributor

@bors bors commented on 4b22178 Oct 5, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging luqmana/rust/ul = 4b22178 into auto

@bors
Copy link
Contributor

@bors bors commented on 4b22178 Oct 5, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

luqmana/rust/ul = 4b22178 merged ok, testing candidate = 3b8c528

@bors
Copy link
Contributor

@bors bors commented on 4b22178 Oct 5, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bors
Copy link
Contributor

@bors bors commented on 4b22178 Oct 5, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = 3b8c528

Please sign in to comment.