1 /* 2 * Copyright 2015 WebAssembly Community Group participants 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef wasm_passes_h 18 #define wasm_passes_h 19 20 namespace wasm { 21 22 class Pass; 23 24 // All passes: 25 Pass* createAlignmentLoweringPass(); 26 Pass* createAsyncifyPass(); 27 Pass* createAvoidReinterpretsPass(); 28 Pass* createCoalesceLocalsPass(); 29 Pass* createCoalesceLocalsWithLearningPass(); 30 Pass* createCodeFoldingPass(); 31 Pass* createCodePushingPass(); 32 Pass* createConstHoistingPass(); 33 Pass* createDAEPass(); 34 Pass* createDAEOptimizingPass(); 35 Pass* createDataFlowOptsPass(); 36 Pass* createDeadCodeEliminationPass(); 37 Pass* createDeNaNPass(); 38 Pass* createDeAlignPass(); 39 Pass* createDirectizePass(); 40 Pass* createDWARFDumpPass(); 41 Pass* createDuplicateImportEliminationPass(); 42 Pass* createDuplicateFunctionEliminationPass(); 43 Pass* createEmitTargetFeaturesPass(); 44 Pass* createEmscriptenPICPass(); 45 Pass* createEmscriptenPICMainModulePass(); 46 Pass* createExtractFunctionPass(); 47 Pass* createFlattenPass(); 48 Pass* createFuncCastEmulationPass(); 49 Pass* createFullPrinterPass(); 50 Pass* createFunctionMetricsPass(); 51 Pass* createGenerateDynCallsPass(); 52 Pass* createGenerateI64DynCallsPass(); 53 Pass* createGenerateStackIRPass(); 54 Pass* createI64ToI32LoweringPass(); 55 Pass* createInlineMainPass(); 56 Pass* createInliningPass(); 57 Pass* createInliningOptimizingPass(); 58 Pass* createLegalizeJSInterfacePass(); 59 Pass* createLegalizeJSInterfaceMinimallyPass(); 60 Pass* createLimitSegmentsPass(); 61 Pass* createLocalCSEPass(); 62 Pass* createLogExecutionPass(); 63 Pass* createInstrumentLocalsPass(); 64 Pass* createInstrumentMemoryPass(); 65 Pass* createLoopInvariantCodeMotionPass(); 66 Pass* createMemoryPackingPass(); 67 Pass* createMergeBlocksPass(); 68 Pass* createMergeLocalsPass(); 69 Pass* createMinifiedPrinterPass(); 70 Pass* createMinifyImportsPass(); 71 Pass* createMinifyImportsAndExportsPass(); 72 Pass* createMinifyImportsAndExportsAndModulesPass(); 73 Pass* createMetricsPass(); 74 Pass* createNameListPass(); 75 Pass* createNoExitRuntimePass(); 76 Pass* createOptimizeAddedConstantsPass(); 77 Pass* createOptimizeAddedConstantsPropagatePass(); 78 Pass* createOptimizeInstructionsPass(); 79 Pass* createOptimizeStackIRPass(); 80 Pass* createPickLoadSignsPass(); 81 Pass* createModAsyncifyAlwaysOnlyUnwindPass(); 82 Pass* createModAsyncifyNeverUnwindPass(); 83 Pass* createPostAssemblyScriptPass(); 84 Pass* createPostAssemblyScriptFinalizePass(); 85 Pass* createPostEmscriptenPass(); 86 Pass* createPrecomputePass(); 87 Pass* createPrecomputePropagatePass(); 88 Pass* createPrinterPass(); 89 Pass* createPrintCallGraphPass(); 90 Pass* createPrintFeaturesPass(); 91 Pass* createPrintFunctionMapPass(); 92 Pass* createPrintStackIRPass(); 93 Pass* createRemoveNonJSOpsPass(); 94 Pass* createRemoveImportsPass(); 95 Pass* createRemoveMemoryPass(); 96 Pass* createRemoveUnusedBrsPass(); 97 Pass* createRemoveUnusedModuleElementsPass(); 98 Pass* createRemoveUnusedNonFunctionModuleElementsPass(); 99 Pass* createRemoveUnusedNamesPass(); 100 Pass* createReorderFunctionsPass(); 101 Pass* createReorderLocalsPass(); 102 Pass* createReplaceStackPointerPass(); 103 Pass* createReReloopPass(); 104 Pass* createRedundantSetEliminationPass(); 105 Pass* createRoundTripPass(); 106 Pass* createSafeHeapPass(); 107 Pass* createSimplifyLocalsPass(); 108 Pass* createSimplifyGlobalsPass(); 109 Pass* createSimplifyGlobalsOptimizingPass(); 110 Pass* createSimplifyLocalsNoNestingPass(); 111 Pass* createSimplifyLocalsNoTeePass(); 112 Pass* createSimplifyLocalsNoStructurePass(); 113 Pass* createSimplifyLocalsNoTeeNoStructurePass(); 114 Pass* createStackCheckPass(); 115 Pass* createStripDebugPass(); 116 Pass* createStripDWARFPass(); 117 Pass* createStripProducersPass(); 118 Pass* createStripTargetFeaturesPass(); 119 Pass* createSouperifyPass(); 120 Pass* createSouperifySingleUsePass(); 121 Pass* createSpillPointersPass(); 122 Pass* createStubUnsupportedJSOpsPass(); 123 Pass* createSSAifyPass(); 124 Pass* createSSAifyNoMergePass(); 125 Pass* createTrapModeClamp(); 126 Pass* createTrapModeJS(); 127 Pass* createUnteePass(); 128 Pass* createVacuumPass(); 129 130 } // namespace wasm 131 132 #endif 133