Permalink
Please
sign in to comment.
Showing
with
35,705 additions
and 13 deletions.
- +1 −0 CMakeLists.txt
- +2 −0 emscripten-version.txt
- +9 −0 include/llvm/ADT/Triple.h
- +74 −0 include/llvm/Analysis/NaCl.h
- +50 −0 include/llvm/IR/Intrinsics.td
- +110 −0 include/llvm/IR/NaClAtomicIntrinsics.h
- +63 −0 include/llvm/InitializePasses.h
- +109 −0 include/llvm/Transforms/NaCl.h
- +1 −0 lib/IR/CMakeLists.txt
- +76 −0 lib/IR/NaClAtomicIntrinsics.cpp
- +2 −2 lib/IR/Verifier.cpp
- +13 −0 lib/Support/Triple.cpp
- +588 −0 lib/Target/JSBackend/AllocaManager.cpp
- +182 −0 lib/Target/JSBackend/AllocaManager.h
- +16 −0 lib/Target/JSBackend/CMakeLists.txt
- +2,085 −0 lib/Target/JSBackend/CallHandlers.h
- +163 −0 lib/Target/JSBackend/ExpandBigSwitches.cpp
- +29 −0 lib/Target/JSBackend/JS.h
- +4,091 −0 lib/Target/JSBackend/JSBackend.cpp
- +48 −0 lib/Target/JSBackend/JSTargetMachine.cpp
- +71 −0 lib/Target/JSBackend/JSTargetMachine.h
- +118 −0 lib/Target/JSBackend/JSTargetTransformInfo.cpp
- +96 −0 lib/Target/JSBackend/JSTargetTransformInfo.h
- +31 −0 lib/Target/JSBackend/LLVMBuild.txt
- +6 −0 lib/Target/JSBackend/MCTargetDesc/CMakeLists.txt
- +22 −0 lib/Target/JSBackend/MCTargetDesc/JSBackendMCTargetDesc.cpp
- +25 −0 lib/Target/JSBackend/MCTargetDesc/JSBackendMCTargetDesc.h
- +24 −0 lib/Target/JSBackend/MCTargetDesc/LLVMBuild.txt
- +16 −0 lib/Target/JSBackend/MCTargetDesc/Makefile
- +16 −0 lib/Target/JSBackend/Makefile
- +85 −0 lib/Target/JSBackend/NaCl/AddPNaClExternalDecls.cpp
- +360 −0 lib/Target/JSBackend/NaCl/BackendCanonicalize.cpp
- +55 −0 lib/Target/JSBackend/NaCl/CMakeLists.txt
- +100 −0 lib/Target/JSBackend/NaCl/CanonicalizeMemIntrinsics.cpp
- +48 −0 lib/Target/JSBackend/NaCl/CleanupUsedGlobalsMetadata.cpp
- +180 −0 lib/Target/JSBackend/NaCl/ConstantInsertExtractElementIndex.cpp
- +291 −0 lib/Target/JSBackend/NaCl/ExceptionInfoWriter.cpp
- +71 −0 lib/Target/JSBackend/NaCl/ExceptionInfoWriter.h
- +234 −0 lib/Target/JSBackend/NaCl/ExpandArithWithOverflow.cpp
- +206 −0 lib/Target/JSBackend/NaCl/ExpandByVal.cpp
- +121 −0 lib/Target/JSBackend/NaCl/ExpandConstantExpr.cpp
- +154 −0 lib/Target/JSBackend/NaCl/ExpandCtors.cpp
- +151 −0 lib/Target/JSBackend/NaCl/ExpandGetElementPtr.cpp
- +1,231 −0 lib/Target/JSBackend/NaCl/ExpandI64.cpp
- +152 −0 lib/Target/JSBackend/NaCl/ExpandIndirectBr.cpp
- +100 −0 lib/Target/JSBackend/NaCl/ExpandInsertExtractElement.cpp
- +674 −0 lib/Target/JSBackend/NaCl/ExpandLargeIntegers.cpp
- +110 −0 lib/Target/JSBackend/NaCl/ExpandShuffleVector.cpp
- +250 −0 lib/Target/JSBackend/NaCl/ExpandSmallArguments.cpp
- +572 −0 lib/Target/JSBackend/NaCl/ExpandStructRegs.cpp
- +336 −0 lib/Target/JSBackend/NaCl/ExpandTls.cpp
- +107 −0 lib/Target/JSBackend/NaCl/ExpandTlsConstantExpr.cpp
- +58 −0 lib/Target/JSBackend/NaCl/ExpandUtils.cpp
- +324 −0 lib/Target/JSBackend/NaCl/ExpandVarArgs.cpp
- +264 −0 lib/Target/JSBackend/NaCl/FixVectorLoadStoreAlignment.cpp
- +546 −0 lib/Target/JSBackend/NaCl/FlattenGlobals.cpp
- +116 −0 lib/Target/JSBackend/NaCl/GlobalCleanup.cpp
- +176 −0 lib/Target/JSBackend/NaCl/GlobalizeConstantVectors.cpp
- +112 −0 lib/Target/JSBackend/NaCl/InsertDivideCheck.cpp
- +67 −0 lib/Target/JSBackend/NaCl/InternalizeUsedGlobals.cpp
- +23 −0 lib/Target/JSBackend/NaCl/LLVMBuild.txt
- +720 −0 lib/Target/JSBackend/NaCl/LowerEmAsyncify.cpp
- +275 −0 lib/Target/JSBackend/NaCl/LowerEmExceptionsPass.cpp
- +349 −0 lib/Target/JSBackend/NaCl/LowerEmSetjmp.cpp
- +13 −0 lib/Target/JSBackend/NaCl/Makefile
- +91 −0 lib/Target/JSBackend/NaCl/NoExitRuntime.cpp
- +86 −0 lib/Target/JSBackend/NaCl/NormalizeAlignment.cpp
- +465 −0 lib/Target/JSBackend/NaCl/PNaClSjLjEH.cpp
- +170 −0 lib/Target/JSBackend/NaCl/PromoteI1Ops.cpp
- +737 −0 lib/Target/JSBackend/NaCl/PromoteIntegers.cpp
- +70 −0 lib/Target/JSBackend/NaCl/RemoveAsmMemory.cpp
- +593 −0 lib/Target/JSBackend/NaCl/ReplacePtrsWithInts.cpp
- +489 −0 lib/Target/JSBackend/NaCl/ResolvePNaClIntrinsics.cpp
- +411 −0 lib/Target/JSBackend/NaCl/RewriteAtomics.cpp
- +149 −0 lib/Target/JSBackend/NaCl/RewriteLLVMIntrinsics.cpp
- +545 −0 lib/Target/JSBackend/NaCl/RewritePNaClLibraryCalls.cpp
- +140 −0 lib/Target/JSBackend/NaCl/SimplifiedFuncTypeMap.cpp
- +61 −0 lib/Target/JSBackend/NaCl/SimplifiedFuncTypeMap.h
- +147 −0 lib/Target/JSBackend/NaCl/SimplifyAllocas.cpp
- +597 −0 lib/Target/JSBackend/NaCl/SimplifyStructRegSignatures.cpp
- +246 −0 lib/Target/JSBackend/NaCl/StripAttributes.cpp
- +163 −0 lib/Target/JSBackend/NaCl/StripMetadata.cpp
- +24 −0 lib/Target/JSBackend/OptPasses.h
- +1,432 −0 lib/Target/JSBackend/Relooper.cpp
- +376 −0 lib/Target/JSBackend/Relooper.h
- +64 −0 lib/Target/JSBackend/RemoveLLVMAssume.cpp
- +107 −0 lib/Target/JSBackend/SimplifyAllocas.cpp
- +5 −0 lib/Target/JSBackend/TargetInfo/CMakeLists.txt
- +20 −0 lib/Target/JSBackend/TargetInfo/JSBackendTargetInfo.cpp
- +23 −0 lib/Target/JSBackend/TargetInfo/LLVMBuild.txt
- +15 −0 lib/Target/JSBackend/TargetInfo/Makefile
- +1 −0 lib/Target/LLVMBuild.txt
- +7 −0 lib/Transforms/IPO/ConstantMerge.cpp
- +57 −1 lib/Transforms/IPO/GlobalOpt.cpp
- +5 −0 lib/Transforms/InstCombine/InstCombineCompares.cpp
- +11 −1 lib/Transforms/InstCombine/InstCombineVectorOps.cpp
- +18 −0 readme-emscripten-fastcomp.txt
- +52 −0 test/CodeGen/JS/aliases.ll
- +35 −0 test/CodeGen/JS/alloca-contradiction.ll
- +142 −0 test/CodeGen/JS/allocamanager-phis.ll
- +165 −0 test/CodeGen/JS/allocamanager.ll
- +16 −0 test/CodeGen/JS/asm.ll
- +38 −0 test/CodeGen/JS/basics.ll
- +400 −0 test/CodeGen/JS/blockchanges.ll
- +12 −0 test/CodeGen/JS/dead-prototypes.ll
- +271 −0 test/CodeGen/JS/expand-i64.ll
- +31 −0 test/CodeGen/JS/expand-insertextract.ll
- +30 −0 test/CodeGen/JS/expect-intrinsics.ll
- +81 −0 test/CodeGen/JS/ffis-f32.ll
- +81 −0 test/CodeGen/JS/ffis.ll
- +47 −0 test/CodeGen/JS/getelementptr.ll
- +59 −0 test/CodeGen/JS/global-alias.ll
- +45 −0 test/CodeGen/JS/globals.ll
- +99 −0 test/CodeGen/JS/insertelement-chains.ll
- +20 −0 test/CodeGen/JS/invariant-intrinsics.ll
- +20 −0 test/CodeGen/JS/lifetime-intrinsics.ll
- +6 −0 test/CodeGen/JS/lit.local.cfg
- +56 −0 test/CodeGen/JS/mem-intrinsics.ll
- +25 −0 test/CodeGen/JS/phi.ll
- +37 −0 test/CodeGen/JS/simd-fcmp.ll
- +68 −0 test/CodeGen/JS/simd-loadstore.ll
- +41 −0 test/CodeGen/JS/simd-misc.ll
- +56 −0 test/CodeGen/JS/simd-select.ll
- +142 −0 test/CodeGen/JS/simd-shift.ll
- +524 −0 test/CodeGen/JS/simd-shuffle.ll
- +46 −0 test/CodeGen/JS/splat-precise-f32.ll
- +28 −0 test/CodeGen/JS/unrolled-simd.ll
- +3 −3 test/Transforms/GlobalOpt/integer-bool.ll
- +6 −0 test/Transforms/NaCl/add-pnacl-external-decls.ll
- +51 −0 test/Transforms/NaCl/atomic/atomic-seq-cst-only.ll
- +130 −0 test/Transforms/NaCl/atomic/atomic_others.ll
- +99 −0 test/Transforms/NaCl/atomic/atomic_seq_cst.ll
- +154 −0 test/Transforms/NaCl/atomic/fetch_and_.ll
- +68 −0 test/Transforms/NaCl/atomic/lock_.ll
- +51 −0 test/Transforms/NaCl/atomic/sync_synchronize.ll
- +112 −0 test/Transforms/NaCl/atomic/val_compare_and_swap.ll
- +171 −0 test/Transforms/NaCl/atomic/volatile.ll
- +45 −0 test/Transforms/NaCl/canonicalize-mem-intrinsics.ll
- +15 −0 test/Transforms/NaCl/cleanup-used-globals-metadata.ll
- +69 −0 test/Transforms/NaCl/combine-shuffle-vector.ll
- +425 −0 test/Transforms/NaCl/constant-insert-extract-element-index.ll
- +44 −0 test/Transforms/NaCl/constant-vector-rematerialization.ll
- +299 −0 test/Transforms/NaCl/expand-arith-with-overflow.ll
- +122 −0 test/Transforms/NaCl/expand-byval.ll
- +109 −0 test/Transforms/NaCl/expand-constantexpr.ll
- +12 −0 test/Transforms/NaCl/expand-ctors-empty.ll
- +13 −0 test/Transforms/NaCl/expand-ctors-emptylist.ll
- +17 −0 test/Transforms/NaCl/expand-ctors-zeroinit.ll
- +37 −0 test/Transforms/NaCl/expand-ctors.ll
- +123 −0 test/Transforms/NaCl/expand-getelementptr.ll
- +62 −0 test/Transforms/NaCl/expand-indirectbr.ll
- +618 −0 test/Transforms/NaCl/expand-integers.ll
- +138 −0 test/Transforms/NaCl/expand-shuffle-vector.ll
- +216 −0 test/Transforms/NaCl/expand-small-arguments.ll
- +228 −0 test/Transforms/NaCl/expand-struct-regs.ll
- +42 −0 test/Transforms/NaCl/expand-tls-aligned.ll
- +17 −0 test/Transforms/NaCl/expand-tls-bss.ll
- +28 −0 test/Transforms/NaCl/expand-tls-constexpr-alias.ll
- +152 −0 test/Transforms/NaCl/expand-tls-constexpr.ll
- +12 −0 test/Transforms/NaCl/expand-tls-constexpr2.ll
- +60 −0 test/Transforms/NaCl/expand-tls-phi.ll
- +86 −0 test/Transforms/NaCl/expand-tls.ll
- +72 −0 test/Transforms/NaCl/expand-varargs-attrs.ll
- +28 −0 test/Transforms/NaCl/expand-varargs-emscripten.ll
- +17 −0 test/Transforms/NaCl/expand-varargs-struct.ll
- +250 −0 test/Transforms/NaCl/expand-varargs.ll
- +435 −0 test/Transforms/NaCl/fix-vector-load-store-alignment.ll
- +209 −0 test/Transforms/NaCl/flatten-globals.ll
- +59 −0 test/Transforms/NaCl/globalcleanup.ll
- +204 −0 test/Transforms/NaCl/globalize-constant-vectors.ll
- +34 −0 test/Transforms/NaCl/internalize-used-globals.ll
- +66 −0 test/Transforms/NaCl/life.ll
- +3 −0 test/Transforms/NaCl/lit.local.cfg
- +73 −0 test/Transforms/NaCl/normalize-alignment.ll
- +22 −0 test/Transforms/NaCl/pnacl-abi-internalize-symbols-pso.ll
- +25 −0 test/Transforms/NaCl/pnacl-abi-internalize-symbols.ll
- +23 −0 test/Transforms/NaCl/pnacl-abi-simplify-postopt.ll
- +50 −0 test/Transforms/NaCl/pnacl-abi-simplify-preopt.ll
- +54 −0 test/Transforms/NaCl/pnacl-abi-simplify.ll
- +127 −0 test/Transforms/NaCl/pnacl-eh-exception-info.ll
- +81 −0 test/Transforms/NaCl/pnacl-sjlj-eh-bug.ll
- +173 −0 test/Transforms/NaCl/pnacl-sjlj-eh.ll
- +143 −0 test/Transforms/NaCl/promote-i1-ops.ll
- +63 −0 test/Transforms/NaCl/promote-integer-signatures.ll
- +568 −0 test/Transforms/NaCl/promote-integers.ll
- +88 −0 test/Transforms/NaCl/remove-asm-memory.ll
- +656 −0 test/Transforms/NaCl/replace-ptrs-with-ints.ll
- +36 −0 test/Transforms/NaCl/resolve-aliases.ll
- +99 −0 test/Transforms/NaCl/resolve-pnacl-intrinsics-lock-free.ll
- +293 −0 test/Transforms/NaCl/resolve-pnacl-intrinsics.ll
- +35 −0 test/Transforms/NaCl/rewrite-assume.ll
- +18 −0 test/Transforms/NaCl/rewrite-call-with-libfunc-argument.ll
- +38 −0 test/Transforms/NaCl/rewrite-flt-rounds.ll
- +38 −0 test/Transforms/NaCl/rewrite-libcalls-wrong-signature.ll
- +16 −0 test/Transforms/NaCl/rewrite-longjmp-no-store.ll
- +21 −0 test/Transforms/NaCl/rewrite-longjmp-noncall-uses.ll
- +34 −0 test/Transforms/NaCl/rewrite-memfuncs-no-store.ll
- +30 −0 test/Transforms/NaCl/rewrite-memfuncs-noncall-uses.ll
- +35 −0 test/Transforms/NaCl/rewrite-prefetch.ll
- +13 −0 test/Transforms/NaCl/rewrite-setjmp-store-error.ll
- +76 −0 test/Transforms/NaCl/rewrite-setlongjmp-calls.ll
- +207 −0 test/Transforms/NaCl/simplify-allocas.ll
- +21 −0 test/Transforms/NaCl/simplify-struct-reg-pad-crash.ll
- +20 −0 test/Transforms/NaCl/simplify-struct-reg-resume-crash.ll
- +276 −0 test/Transforms/NaCl/simplify-struct-reg-signatures.ll
- +10 −0 test/Transforms/NaCl/simplify-struct-reg-vararg-crash.ll
- +66 −0 test/Transforms/NaCl/strip-attributes.ll
- +29 −0 test/Transforms/NaCl/strip-branchweight-metadata.ll
- +69 −0 test/Transforms/NaCl/strip-meta-leaves-debug.ll
- +36 −0 test/Transforms/NaCl/strip-tbaa-metadata.ll
- +3 −0 tools/bugpoint/CMakeLists.txt
- +1 −0 tools/bugpoint/LLVMBuild.txt
- +1 −1 tools/bugpoint/bugpoint.cpp
- +1 −0 tools/llc/LLVMBuild.txt
- +4 −0 tools/opt/CMakeLists.txt
- +17 −0 tools/opt/Makefile
- +39 −5 tools/opt/opt.cpp
| @@ -0,0 +1,2 @@ | |||
| "1.36.9" | |||
|
|
|||
| @@ -0,0 +1,74 @@ | |||
| //===-- NaCl.h - NaCl Analysis ---------------------------*- C++ -*-===// | |||
| // | |||
| // The LLVM Compiler Infrastructure | |||
| // | |||
| // This file is distributed under the University of Illinois Open Source | |||
| // License. See LICENSE.TXT for details. | |||
| // | |||
| //===----------------------------------------------------------------------===// | |||
|
|
|||
| #ifndef LLVM_ANALYSIS_NACL_H | |||
| #define LLVM_ANALYSIS_NACL_H | |||
|
|
|||
| #include "llvm/Support/CommandLine.h" | |||
| #include "llvm/Support/ErrorHandling.h" | |||
| #include "llvm/Support/raw_ostream.h" | |||
| #include <string> | |||
|
|
|||
| namespace llvm { | |||
|
|
|||
| class FunctionPass; | |||
| class ModulePass; | |||
| extern cl::opt<bool> PNaClABIAllowDebugMetadata; | |||
|
|
|||
| class PNaClABIErrorReporter { | |||
| PNaClABIErrorReporter(const PNaClABIErrorReporter&) = delete; | |||
| void operator=(const PNaClABIErrorReporter&) = delete; | |||
| public: | |||
| PNaClABIErrorReporter() : ErrorCount(0), Errors(ErrorString), | |||
| UseFatalErrors(true) {} | |||
| ~PNaClABIErrorReporter() {} | |||
| // Return the number of verification errors from the last run. | |||
| int getErrorCount() const { return ErrorCount; } | |||
| // Print the error messages to O | |||
| void printErrors(llvm::raw_ostream &O) { | |||
| Errors.flush(); | |||
| O << ErrorString; | |||
| } | |||
| // Increments the error count and returns an ostream to which the error | |||
| // message can be streamed. | |||
| raw_ostream &addError() { | |||
| ErrorCount++; | |||
| return Errors; | |||
| } | |||
| // Reset the error count and error messages. | |||
| void reset() { | |||
| ErrorCount = 0; | |||
| Errors.flush(); | |||
| ErrorString.clear(); | |||
| } | |||
| void setNonFatal() { | |||
| UseFatalErrors = false; | |||
| } | |||
| void checkForFatalErrors() { | |||
| if (UseFatalErrors && ErrorCount != 0) { | |||
| printErrors(errs()); | |||
| report_fatal_error("PNaCl ABI verification failed"); | |||
| } | |||
| } | |||
| private: | |||
| int ErrorCount; | |||
| std::string ErrorString; | |||
| raw_string_ostream Errors; | |||
| bool UseFatalErrors; | |||
| }; | |||
|
|
|||
| FunctionPass *createPNaClABIVerifyFunctionsPass( | |||
| PNaClABIErrorReporter *Reporter); | |||
| ModulePass *createPNaClABIVerifyModulePass(PNaClABIErrorReporter *Reporter, | |||
| bool StreamingMode = false); | |||
|
|
|||
| } | |||
|
|
|||
|
|
|||
| #endif | |||
| @@ -0,0 +1,110 @@ | |||
| //===-- llvm/IR/NaClAtomicIntrinsics.h - NaCl Atomic Intrinsics -*- C++ -*-===// | |||
| // | |||
| // The LLVM Compiler Infrastructure | |||
| // | |||
| // This file is distributed under the University of Illinois Open Source | |||
| // License. See LICENSE.TXT for details. | |||
| // | |||
| //===----------------------------------------------------------------------===// | |||
| // | |||
| // This file describes atomic intrinsic functions that are specific to NaCl. | |||
| // | |||
| //===----------------------------------------------------------------------===// | |||
|
|
|||
| #ifndef LLVM_IR_NACL_ATOMIC_INTRINSICS_H | |||
| #define LLVM_IR_NACL_ATOMIC_INTRINSICS_H | |||
|
|
|||
| #include "llvm/IR/Intrinsics.h" | |||
| #include "llvm/Support/Compiler.h" | |||
| #include <cstddef> | |||
|
|
|||
| namespace llvm { | |||
|
|
|||
| namespace NaCl { | |||
|
|
|||
| static const size_t NumAtomicIntrinsics = 6; | |||
| static const size_t NumAtomicIntrinsicOverloadTypes = 4; | |||
| static const size_t MaxAtomicIntrinsicsParameters = 5; | |||
|
|
|||
| /// Describe all the atomic intrinsics and their type signature. Most | |||
| /// can be overloaded on a type. | |||
| class AtomicIntrinsics { | |||
| public: | |||
| enum ParamType { | |||
| NoP, /// No parameter. | |||
| Int, /// Overloaded. | |||
| Ptr, /// Overloaded. | |||
| RMW, /// Atomic RMW operation type. | |||
| Mem /// Memory order. | |||
| }; | |||
|
|
|||
| struct AtomicIntrinsic { | |||
| Type *OverloadedType; | |||
| Intrinsic::ID ID; | |||
| uint8_t Overloaded : 1; | |||
| uint8_t NumParams : 7; | |||
| uint8_t ParamType[MaxAtomicIntrinsicsParameters]; | |||
|
|
|||
| Function *getDeclaration(Module *M) const { | |||
| // The atomic intrinsic can be overloaded on zero or one type, | |||
| // which is needed to create the function's declaration. | |||
| return Intrinsic::getDeclaration( | |||
| M, ID, ArrayRef<Type *>(&OverloadedType, Overloaded ? 1 : 0)); | |||
| } | |||
| }; | |||
|
|
|||
| AtomicIntrinsics(LLVMContext &C); | |||
| ~AtomicIntrinsics() {} | |||
|
|
|||
| typedef ArrayRef<AtomicIntrinsic> View; | |||
|
|
|||
| /// Access all atomic intrinsics, which can then be iterated over. | |||
| View allIntrinsicsAndOverloads() const; | |||
| /// Access a particular atomic intrinsic. | |||
| /// \returns 0 if no intrinsic was found. | |||
| const AtomicIntrinsic *find(Intrinsic::ID ID, Type *OverloadedType) const; | |||
|
|
|||
| private: | |||
| AtomicIntrinsic I[NumAtomicIntrinsics][NumAtomicIntrinsicOverloadTypes]; | |||
|
|
|||
| AtomicIntrinsics() = delete; | |||
| AtomicIntrinsics(const AtomicIntrinsics &) = delete; | |||
| AtomicIntrinsics &operator=(const AtomicIntrinsics &) = delete; | |||
| }; | |||
|
|
|||
| /// Operations that can be represented by the @llvm.nacl.atomic.rmw | |||
| /// intrinsic. | |||
| /// | |||
| /// Do not reorder these values: their order offers forward | |||
| /// compatibility of bitcode targeted to NaCl. | |||
| enum AtomicRMWOperation { | |||
| AtomicInvalid = 0, // Invalid, keep first. | |||
| AtomicAdd, | |||
| AtomicSub, | |||
| AtomicOr, | |||
| AtomicAnd, | |||
| AtomicXor, | |||
| AtomicExchange, | |||
| AtomicNum // Invalid, keep last. | |||
| }; | |||
|
|
|||
| /// Memory orderings supported by C11/C++11. | |||
| /// | |||
| /// Do not reorder these values: their order offers forward | |||
| /// compatibility of bitcode targeted to NaCl. | |||
| enum MemoryOrder { | |||
| MemoryOrderInvalid = 0, // Invalid, keep first. | |||
| MemoryOrderRelaxed, | |||
| MemoryOrderConsume, | |||
| MemoryOrderAcquire, | |||
| MemoryOrderRelease, | |||
| MemoryOrderAcquireRelease, | |||
| MemoryOrderSequentiallyConsistent, | |||
| MemoryOrderNum // Invalid, keep last. | |||
| }; | |||
|
|
|||
| } // End NaCl namespace | |||
|
|
|||
| } // End llvm namespace | |||
|
|
|||
| #endif | |||
Oops, something went wrong.
0 comments on commit
f19e5a4