Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 |
| OLD | NEW |