Chromium Code Reviews| Index: include/llvm/Transforms/NaCl.h |
| diff --git a/include/llvm/Transforms/NaCl.h b/include/llvm/Transforms/NaCl.h |
| index 3dbf3c03446841ff943bff8ba13103e840adbe1f..afca5c1db0afa789807db41b695570a4fd3d0fb3 100644 |
| --- a/include/llvm/Transforms/NaCl.h |
| +++ b/include/llvm/Transforms/NaCl.h |
| @@ -13,6 +13,7 @@ |
| #include "llvm/CodeGen/Passes.h" |
| #include "llvm/IR/Instructions.h" |
| #include "llvm/IR/LLVMContext.h" |
| +#include "llvm/IR/PassManager.h" |
| namespace llvm { |
| @@ -26,56 +27,18 @@ class Triple; |
| class Use; |
| class Value; |
| -BasicBlockPass *createConstantInsertExtractElementIndexPass(); |
| -BasicBlockPass *createExpandGetElementPtrPass(); |
| -BasicBlockPass *createExpandShuffleVectorPass(); |
| -BasicBlockPass *createFixVectorLoadStoreAlignmentPass(); |
| -BasicBlockPass *createPromoteI1OpsPass(); |
| -BasicBlockPass *createSimplifyAllocasPass(); |
| -FunctionPass *createBackendCanonicalizePass(); |
| -FunctionPass *createExpandConstantExprPass(); |
| -FunctionPass *createExpandLargeIntegersPass(); |
| -FunctionPass *createExpandStructRegsPass(); |
| -FunctionPass *createInsertDivideCheckPass(); |
| -FunctionPass *createNormalizeAlignmentPass(); |
| -FunctionPass *createRemoveAsmMemoryPass(); |
| -FunctionPass *createResolvePNaClIntrinsicsPass(); |
| -ModulePass *createAddPNaClExternalDeclsPass(); |
| -ModulePass *createCanonicalizeMemIntrinsicsPass(); |
| -ModulePass *createCleanupUsedGlobalsMetadataPass(); |
| -ModulePass *createExpandArithWithOverflowPass(); |
| -ModulePass *createExpandByValPass(); |
| -ModulePass *createExpandCtorsPass(); |
| -ModulePass *createExpandIndirectBrPass(); |
| -ModulePass *createExpandSmallArgumentsPass(); |
| -ModulePass *createExpandTlsConstantExprPass(); |
| -ModulePass *createExpandTlsPass(); |
| -ModulePass *createExpandVarArgsPass(); |
| -ModulePass *createFlattenGlobalsPass(); |
| -ModulePass *createGlobalCleanupPass(); |
| -ModulePass *createGlobalizeConstantVectorsPass(); |
| -ModulePass *createInternalizeUsedGlobalsPass(); |
| -ModulePass *createPNaClSjLjEHPass(); |
| -ModulePass *createPromoteIntegersPass(); |
| -ModulePass *createReplacePtrsWithIntsPass(); |
| -ModulePass *createResolveAliasesPass(); |
| -ModulePass *createRewriteAtomicsPass(); |
| -ModulePass *createRewriteLLVMIntrinsicsPass(); |
| -ModulePass *createRewritePNaClLibraryCallsPass(); |
| -ModulePass *createSimplifyStructRegSignaturesPass(); |
| -ModulePass *createStripAttributesPass(); |
| -ModulePass *createStripMetadataPass(); |
| -ModulePass *createStripModuleFlagsPass(); |
| -ModulePass *createStripDanglingDISubprogramsPass(); |
| +#define PNACLPASS_LEGACY_ONLY(kind, name) \ |
| + kind ## Pass *create ## name ## Pass() |
| -// Emscripten passes: |
| -FunctionPass *createExpandInsertExtractElementPass(); |
| -ModulePass *createExpandI64Pass(); |
| -ModulePass *createLowerEmAsyncifyPass(); |
| -ModulePass *createLowerEmExceptionsPass(); |
| -ModulePass *createLowerEmSetjmpPass(); |
| -ModulePass *createNoExitRuntimePass(); |
| -// Emscripten passes end. |
| +// name is nested in `pnacl` so uses of `name::something` isn't ambiguous |
| +#define PNACLPASS(kind, name) \ |
| + namespace pnacl { namespace name { \ |
| + void addPass(kind ## PassManager &Mgr); \ |
| + } } \ |
| + PNACLPASS_LEGACY_ONLY(kind, name) |
| +#include "PNaClPasses.def" |
| +#undef PNACLPASS |
| +#undef PNACLPASS_LEGACY_ONLY |
|
JF
2015/07/23 22:44:38
Could you do this in a separate CL?
Richard Diamond
2015/07/24 19:54:38
Done.
|
| void PNaClABISimplifyAddPreOptPasses(Triple *T, PassManagerBase &PM); |
| void PNaClABISimplifyAddPostOptPasses(Triple *T, PassManagerBase &PM); |