Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: include/llvm/Transforms/NaCl.h

Issue 17777004: Concurrency support for PNaCl ABI (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Fix bad merge. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/llvm/InitializePasses.h ('k') | lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- NaCl.h - NaCl Transformations ---------------------------*- C++ -*-===// 1 //===-- NaCl.h - NaCl Transformations ---------------------------*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 9
10 #ifndef LLVM_TRANSFORMS_NACL_H 10 #ifndef LLVM_TRANSFORMS_NACL_H
11 #define LLVM_TRANSFORMS_NACL_H 11 #define LLVM_TRANSFORMS_NACL_H
12 12
13 namespace llvm { 13 namespace llvm {
14 14
15 class BasicBlockPass; 15 class BasicBlockPass;
16 class Function; 16 class Function;
17 class FunctionPass; 17 class FunctionPass;
18 class FunctionType; 18 class FunctionType;
19 class Instruction; 19 class Instruction;
20 class ModulePass; 20 class ModulePass;
21 class PassManager; 21 class PassManager;
22 class Use; 22 class Use;
23 class Value; 23 class Value;
24 24
25 BasicBlockPass *createExpandGetElementPtrPass();
26 BasicBlockPass *createPromoteI1OpsPass();
27 FunctionPass *createExpandConstantExprPass();
28 FunctionPass *createExpandStructRegsPass();
29 FunctionPass *createInsertDivideCheckPass();
30 FunctionPass *createPromoteIntegersPass();
31 FunctionPass *createResolvePNaClIntrinsicsPass();
25 ModulePass *createAddPNaClExternalDeclsPass(); 32 ModulePass *createAddPNaClExternalDeclsPass();
26 ModulePass *createCanonicalizeMemIntrinsicsPass(); 33 ModulePass *createCanonicalizeMemIntrinsicsPass();
27 ModulePass *createExpandArithWithOverflowPass(); 34 ModulePass *createExpandArithWithOverflowPass();
28 ModulePass *createExpandByValPass(); 35 ModulePass *createExpandByValPass();
29 FunctionPass *createExpandConstantExprPass();
30 ModulePass *createExpandCtorsPass(); 36 ModulePass *createExpandCtorsPass();
31 BasicBlockPass *createExpandGetElementPtrPass();
32 ModulePass *createExpandSmallArgumentsPass(); 37 ModulePass *createExpandSmallArgumentsPass();
33 FunctionPass *createExpandStructRegsPass(); 38 ModulePass *createExpandTlsConstantExprPass();
34 ModulePass *createExpandTlsPass(); 39 ModulePass *createExpandTlsPass();
35 ModulePass *createExpandTlsConstantExprPass();
36 ModulePass *createExpandVarArgsPass(); 40 ModulePass *createExpandVarArgsPass();
37 ModulePass *createFlattenGlobalsPass(); 41 ModulePass *createFlattenGlobalsPass();
38 ModulePass *createGlobalCleanupPass(); 42 ModulePass *createGlobalCleanupPass();
39 BasicBlockPass *createPromoteI1OpsPass();
40 FunctionPass *createPromoteIntegersPass();
41 ModulePass *createReplacePtrsWithIntsPass(); 43 ModulePass *createReplacePtrsWithIntsPass();
42 ModulePass *createResolveAliasesPass(); 44 ModulePass *createResolveAliasesPass();
43 FunctionPass *createResolvePNaClIntrinsicsPass(); 45 ModulePass *createRewriteAtomicsPass();
44 ModulePass *createRewriteLLVMIntrinsicsPass(); 46 ModulePass *createRewriteLLVMIntrinsicsPass();
45 ModulePass *createRewritePNaClLibraryCallsPass(); 47 ModulePass *createRewritePNaClLibraryCallsPass();
46 ModulePass *createStripAttributesPass(); 48 ModulePass *createStripAttributesPass();
47 ModulePass *createStripMetadataPass(); 49 ModulePass *createStripMetadataPass();
48 FunctionPass *createInsertDivideCheckPass();
49 50
50 void PNaClABISimplifyAddPreOptPasses(PassManager &PM); 51 void PNaClABISimplifyAddPreOptPasses(PassManager &PM);
51 void PNaClABISimplifyAddPostOptPasses(PassManager &PM); 52 void PNaClABISimplifyAddPostOptPasses(PassManager &PM);
52 53
53 Instruction *PhiSafeInsertPt(Use *U); 54 Instruction *PhiSafeInsertPt(Use *U);
54 void PhiSafeReplaceUses(Use *U, Value *NewVal); 55 void PhiSafeReplaceUses(Use *U, Value *NewVal);
55 56
56 // Copy debug information from Original to NewInst, and return NewInst. 57 // Copy debug information from Original to NewInst, and return NewInst.
57 Instruction *CopyDebug(Instruction *NewInst, Instruction *Original); 58 Instruction *CopyDebug(Instruction *NewInst, Instruction *Original);
58 59
59 template <class InstType> 60 template <class InstType>
60 static void CopyLoadOrStoreAttrs(InstType *Dest, InstType *Src) { 61 static void CopyLoadOrStoreAttrs(InstType *Dest, InstType *Src) {
61 Dest->setVolatile(Src->isVolatile()); 62 Dest->setVolatile(Src->isVolatile());
62 Dest->setAlignment(Src->getAlignment()); 63 Dest->setAlignment(Src->getAlignment());
63 Dest->setOrdering(Src->getOrdering()); 64 Dest->setOrdering(Src->getOrdering());
64 Dest->setSynchScope(Src->getSynchScope()); 65 Dest->setSynchScope(Src->getSynchScope());
65 } 66 }
66 67
67 // In order to change a function's type, the function must be 68 // In order to change a function's type, the function must be
68 // recreated. RecreateFunction() recreates Func with type NewType. 69 // recreated. RecreateFunction() recreates Func with type NewType.
69 // It copies or moves across everything except the argument values, 70 // It copies or moves across everything except the argument values,
70 // which the caller must update because the argument types might be 71 // which the caller must update because the argument types might be
71 // different. 72 // different.
72 Function *RecreateFunction(Function *Func, FunctionType *NewType); 73 Function *RecreateFunction(Function *Func, FunctionType *NewType);
73 74
74 } 75 }
75 76
76 #endif 77 #endif
OLDNEW
« no previous file with comments | « include/llvm/InitializePasses.h ('k') | lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698