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

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: Simplify overloading and function verification. 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
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();
Mark Seaborn 2013/07/02 19:16:02 Please don't re-sort this list -- it makes the cha
JF 2013/07/02 23:14:54 Unfortunate that automated sorting wasn't enforced
26 FunctionPass *createExpandConstantExprPass();
27 FunctionPass *createExpandStructRegsPass();
28 FunctionPass *createInsertDivideCheckPass();
29 FunctionPass *createPromoteIntegersPass();
30 FunctionPass *createResolvePNaClIntrinsicsPass();
25 ModulePass *createAddPNaClExternalDeclsPass(); 31 ModulePass *createAddPNaClExternalDeclsPass();
26 ModulePass *createExpandArithWithOverflowPass(); 32 ModulePass *createExpandArithWithOverflowPass();
27 ModulePass *createExpandByValPass(); 33 ModulePass *createExpandByValPass();
28 FunctionPass *createExpandConstantExprPass();
29 ModulePass *createExpandCtorsPass(); 34 ModulePass *createExpandCtorsPass();
30 BasicBlockPass *createExpandGetElementPtrPass();
31 ModulePass *createExpandSmallArgumentsPass(); 35 ModulePass *createExpandSmallArgumentsPass();
32 FunctionPass *createExpandStructRegsPass(); 36 ModulePass *createExpandTlsConstantExprPass();
33 ModulePass *createExpandTlsPass(); 37 ModulePass *createExpandTlsPass();
34 ModulePass *createExpandTlsConstantExprPass();
35 ModulePass *createExpandVarArgsPass(); 38 ModulePass *createExpandVarArgsPass();
36 ModulePass *createFlattenGlobalsPass(); 39 ModulePass *createFlattenGlobalsPass();
37 ModulePass *createGlobalCleanupPass(); 40 ModulePass *createGlobalCleanupPass();
38 FunctionPass *createPromoteIntegersPass();
39 ModulePass *createReplacePtrsWithIntsPass(); 41 ModulePass *createReplacePtrsWithIntsPass();
40 ModulePass *createResolveAliasesPass(); 42 ModulePass *createResolveAliasesPass();
41 FunctionPass *createResolvePNaClIntrinsicsPass(); 43 ModulePass *createRewriteAtomicsPass();
42 ModulePass *createRewriteLLVMIntrinsicsPass(); 44 ModulePass *createRewriteLLVMIntrinsicsPass();
43 ModulePass *createRewritePNaClLibraryCallsPass(); 45 ModulePass *createRewritePNaClLibraryCallsPass();
44 ModulePass *createStripAttributesPass(); 46 ModulePass *createStripAttributesPass();
45 ModulePass *createStripMetadataPass(); 47 ModulePass *createStripMetadataPass();
46 FunctionPass *createInsertDivideCheckPass();
47 48
48 void PNaClABISimplifyAddPreOptPasses(PassManager &PM); 49 void PNaClABISimplifyAddPreOptPasses(PassManager &PM);
49 void PNaClABISimplifyAddPostOptPasses(PassManager &PM); 50 void PNaClABISimplifyAddPostOptPasses(PassManager &PM);
50 51
51 Instruction *PhiSafeInsertPt(Use *U); 52 Instruction *PhiSafeInsertPt(Use *U);
52 void PhiSafeReplaceUses(Use *U, Value *NewVal); 53 void PhiSafeReplaceUses(Use *U, Value *NewVal);
53 54
54 // Copy debug information from Original to NewInst, and return NewInst. 55 // Copy debug information from Original to NewInst, and return NewInst.
55 Instruction *CopyDebug(Instruction *NewInst, Instruction *Original); 56 Instruction *CopyDebug(Instruction *NewInst, Instruction *Original);
56 57
57 // In order to change a function's type, the function must be 58 // In order to change a function's type, the function must be
58 // recreated. RecreateFunction() recreates Func with type NewType. 59 // recreated. RecreateFunction() recreates Func with type NewType.
59 // It copies or moves across everything except the argument values, 60 // It copies or moves across everything except the argument values,
60 // which the caller must update because the argument types might be 61 // which the caller must update because the argument types might be
61 // different. 62 // different.
62 Function *RecreateFunction(Function *Func, FunctionType *NewType); 63 Function *RecreateFunction(Function *Func, FunctionType *NewType);
63 64
64 } 65 }
65 66
66 #endif 67 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698