mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-29 18:23:49 +00:00
Fix build issues once LLVM has been upgraded
* LLVM now has a C interface to LLVMBuildAtomicRMW * The exception handling support for the JIT seems to have been dropped * Various interfaces have been added or headers have changed
This commit is contained in:
parent
1d06aaae64
commit
8d29367650
@ -97,7 +97,6 @@ pub fn create_standard_passes(level: OptLevel) -> ~[~str] {
|
||||
passes.push(~"sroa");
|
||||
passes.push(~"domtree");
|
||||
passes.push(~"early-cse");
|
||||
passes.push(~"simplify-libcalls");
|
||||
passes.push(~"lazy-value-info");
|
||||
passes.push(~"jump-threading");
|
||||
passes.push(~"correlated-propagation");
|
||||
|
@ -1541,7 +1541,8 @@ pub mod llvm {
|
||||
Op: AtomicBinOp,
|
||||
LHS: ValueRef,
|
||||
RHS: ValueRef,
|
||||
Order: AtomicOrdering)
|
||||
Order: AtomicOrdering,
|
||||
SingleThreaded: Bool)
|
||||
-> ValueRef;
|
||||
|
||||
pub fn LLVMBuildAtomicFence(B: BuilderRef, Order: AtomicOrdering);
|
||||
|
@ -940,7 +940,7 @@ impl Builder {
|
||||
dst: ValueRef, src: ValueRef,
|
||||
order: AtomicOrdering) -> ValueRef {
|
||||
unsafe {
|
||||
llvm::LLVMBuildAtomicRMW(self.llbuilder, op, dst, src, order)
|
||||
llvm::LLVMBuildAtomicRMW(self.llbuilder, op, dst, src, order, False)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,6 +113,7 @@ public:
|
||||
|
||||
virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment,
|
||||
unsigned SectionID, bool isReadOnly);
|
||||
bool finalizeMemory(std::string *ErrMsg) { return false; }
|
||||
|
||||
virtual bool applyPermissions(std::string *Str);
|
||||
|
||||
@ -340,7 +341,6 @@ LLVMRustBuildJIT(void* mem,
|
||||
|
||||
std::string Err;
|
||||
TargetOptions Options;
|
||||
Options.JITExceptionHandling = true;
|
||||
Options.JITEmitDebugInfo = true;
|
||||
Options.NoFramePointerElim = true;
|
||||
Options.EnableSegmentedStacks = EnableSegmentedStacks;
|
||||
@ -516,15 +516,6 @@ extern "C" LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B,
|
||||
extern "C" LLVMValueRef LLVMBuildAtomicFence(LLVMBuilderRef B, AtomicOrdering order) {
|
||||
return wrap(unwrap(B)->CreateFence(order));
|
||||
}
|
||||
extern "C" LLVMValueRef LLVMBuildAtomicRMW(LLVMBuilderRef B,
|
||||
AtomicRMWInst::BinOp op,
|
||||
LLVMValueRef target,
|
||||
LLVMValueRef source,
|
||||
AtomicOrdering order) {
|
||||
return wrap(unwrap(B)->CreateAtomicRMW(op,
|
||||
unwrap(target), unwrap(source),
|
||||
order));
|
||||
}
|
||||
|
||||
extern "C" void LLVMSetDebug(int Enabled) {
|
||||
#ifndef NDEBUG
|
||||
|
@ -8,8 +8,10 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
#include "llvm/IR/InlineAsm.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/Linker.h"
|
||||
#include "llvm/PassManager.h"
|
||||
#include "llvm/IR/InlineAsm.h"
|
||||
|
Loading…
Reference in New Issue
Block a user