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");
Op: AtomicBinOp,
LHS: ValueRef,
RHS: ValueRef,
- Order: AtomicOrdering)
+ Order: AtomicOrdering,
+ SingleThreaded: Bool)
-> ValueRef;
pub fn LLVMBuildAtomicFence(B: BuilderRef, Order: AtomicOrdering);
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)
}
}
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);
std::string Err;
TargetOptions Options;
- Options.JITExceptionHandling = true;
Options.JITEmitDebugInfo = true;
Options.NoFramePointerElim = true;
Options.EnableSegmentedStacks = EnableSegmentedStacks;
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
// 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"