14 #ifndef MLIR_TRANSFORMS_PASSES_H
15 #define MLIR_TRANSFORMS_PASSES_H
20 #include "llvm/Support/Debug.h"
26 class GreedyRewriteConfig;
32 #define GEN_PASS_DECL_CANONICALIZER
33 #define GEN_PASS_DECL_CONTROLFLOWSINK
34 #define GEN_PASS_DECL_CSEPASS
35 #define GEN_PASS_DECL_INLINER
36 #define GEN_PASS_DECL_LOOPINVARIANTCODEMOTION
37 #define GEN_PASS_DECL_MEM2REG
38 #define GEN_PASS_DECL_PRINTIRPASS
39 #define GEN_PASS_DECL_PRINTOPSTATS
40 #define GEN_PASS_DECL_SROA
41 #define GEN_PASS_DECL_STRIPDEBUGINFO
42 #define GEN_PASS_DECL_SCCP
43 #define GEN_PASS_DECL_SYMBOLDCE
44 #define GEN_PASS_DECL_SYMBOLPRIVATIZE
45 #define GEN_PASS_DECL_TOPOLOGICALSORT
46 #include "mlir/Transforms/Passes.h.inc"
62 ArrayRef<std::string> disabledPatterns = std::nullopt,
63 ArrayRef<std::string> enabledPatterns = std::nullopt);
102 std::unique_ptr<Pass>
108 std::unique_ptr<Pass>
110 std::function<
void(OpPassManager &)> defaultPipelineBuilder);
125 std::unique_ptr<Pass>
138 #define GEN_PASS_REGISTRATION
139 #include "mlir/Transforms/Passes.h.inc"
Include the generated interface declarations.
std::unique_ptr< Pass > createPrintIRPass(const PrintIRPassOptions &={})
Creates a pass to print IR on the debug stream.
std::unique_ptr< Pass > createCSEPass()
Creates a pass to perform common sub expression elimination.
std::unique_ptr< Pass > createLoopInvariantCodeMotionPass()
Creates a loop invariant code motion pass that hoists loop invariant instructions out of the loop.
std::unique_ptr< Pass > createStripDebugInfoPass()
Creates a pass to strip debug information from a function.
std::unique_ptr< Pass > createTopologicalSortPass()
Creates a pass that recursively sorts nested regions without SSA dominance topologically such that,...
std::unique_ptr< Pass > createSCCPPass()
Creates a pass which performs sparse conditional constant propagation over nested operations.
std::unique_ptr< Pass > createSymbolDCEPass()
Creates a pass which delete symbol operations that are unreachable.
std::unique_ptr< Pass > createInlinerPass()
Creates a pass which inlines calls and callable operations as defined by the CallGraph.
std::unique_ptr< Pass > createGenerateRuntimeVerificationPass()
Creates a pass that generates IR to verify ops at runtime.
std::unique_ptr< Pass > createCanonicalizerPass()
Creates an instance of the Canonicalizer pass, configured with default settings (which can be overrid...
std::unique_ptr< Pass > createRemoveDeadValuesPass()
Creates an optimization pass to remove dead values.
std::unique_ptr< Pass > createPrintOpStatsPass(raw_ostream &os=llvm::errs())
Creates a pass which prints the list of ops and the number of occurrences in the module.
std::unique_ptr< Pass > createControlFlowSinkPass()
Creates a pass to perform control-flow sinking.
std::unique_ptr< Pass > createLoopInvariantSubsetHoistingPass()
Creates a pass that hoists loop-invariant subset ops.
std::unique_ptr< Pass > createSymbolPrivatizePass(ArrayRef< std::string > excludeSymbols={})
Creates a pass which marks top-level symbol operations as private unless listed in excludeSymbols.