diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-04-26 10:55:29 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-04-26 10:55:29 -0400 |
| commit | bbfff4614614726dd2ef2c05f851f91be5368f84 (patch) | |
| tree | 9cbfbb8b744c883150312bc9adf068778c60397e /src/zig_llvm.cpp | |
| parent | ce68dda4b60914e947088e7cf0c5626ea7cebc08 (diff) | |
| parent | 27cbb44993389ae042a03266743379c0f15a523e (diff) | |
| download | zig-bbfff4614614726dd2ef2c05f851f91be5368f84.tar.gz zig-bbfff4614614726dd2ef2c05f851f91be5368f84.zip | |
Merge remote-tracking branch 'origin/master' into llvm7
Diffstat (limited to 'src/zig_llvm.cpp')
| -rw-r--r-- | src/zig_llvm.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index ba915bf064..22fd409859 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -82,7 +82,7 @@ static const bool assertions_on = false; #endif bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMModuleRef module_ref, - const char *filename, ZigLLVM_EmitOutputType output_type, char **error_message, bool is_debug) + const char *filename, ZigLLVM_EmitOutputType output_type, char **error_message, bool is_debug, bool is_small) { std::error_code EC; raw_fd_ostream dest(filename, EC, sys::fs::F_None); @@ -101,7 +101,7 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM return true; } PMBuilder->OptLevel = target_machine->getOptLevel(); - PMBuilder->SizeLevel = 0; + PMBuilder->SizeLevel = is_small ? 2 : 0; PMBuilder->DisableTailCalls = is_debug; PMBuilder->DisableUnitAtATime = is_debug; @@ -780,10 +780,12 @@ static AtomicOrdering mapFromLLVMOrdering(LLVMAtomicOrdering Ordering) { LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp, LLVMValueRef new_val, LLVMAtomicOrdering success_ordering, - LLVMAtomicOrdering failure_ordering) + LLVMAtomicOrdering failure_ordering, bool is_weak) { - return wrap(unwrap(builder)->CreateAtomicCmpXchg(unwrap(ptr), unwrap(cmp), unwrap(new_val), - mapFromLLVMOrdering(success_ordering), mapFromLLVMOrdering(failure_ordering))); + AtomicCmpXchgInst *inst = unwrap(builder)->CreateAtomicCmpXchg(unwrap(ptr), unwrap(cmp), + unwrap(new_val), mapFromLLVMOrdering(success_ordering), mapFromLLVMOrdering(failure_ordering)); + inst->setWeak(is_weak); + return wrap(inst); } LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS, |
