|
MLIR 22.0.0git
|
#include "mlir/Interfaces/FunctionInterfaces.h"#include "mlir/Pass/Pass.h"#include <limits>#include "mlir/Dialect/Affine/Passes.h.inc"Go to the source code of this file.
Namespaces | |
| namespace | mlir |
| Include the generated interface declarations. | |
| namespace | mlir::func |
| namespace | mlir::memref |
| namespace | mlir::affine |
Macros | |
| #define | GEN_PASS_DECL |
| #define | GEN_PASS_REGISTRATION |
| Generate the code for registering passes. | |
Enumerations | |
| enum | mlir::affine::FusionMode { mlir::affine::Greedy , mlir::affine::ProducerConsumer , mlir::affine::Sibling } |
| Fusion mode to attempt. More... | |
Functions | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createSimplifyAffineStructuresPass () |
| Creates a simplification pass for affine structures (maps and sets). | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createAffineLoopInvariantCodeMotionPass () |
| Creates a loop invariant code motion pass that hoists loop invariant operations out of affine loops. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createAffineParallelizePass () |
| Creates a pass to convert all parallel affine.for's into 1-d affine.parallel ops. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createRaiseMemrefToAffine () |
| Creates a pass that converts some memref operators to affine operators. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createAffineLoopNormalizePass (bool promoteSingleIter=false) |
| Apply normalization transformations to affine loop-like ops. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createAffineDataCopyGenerationPass (unsigned slowMemorySpace, unsigned fastMemorySpace, unsigned tagMemorySpace=0, int minDmaTransferSize=1024, uint64_t fastMemCapacityBytes=std::numeric_limits< uint64_t >::max()) |
| Performs packing (or explicit copying) of accessed memref regions into buffers in the specified faster memory space through either pointwise copies or DMA operations. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createAffineDataCopyGenerationPass () |
| Overload relying on pass options for initialization. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createAffineScalarReplacementPass () |
| Creates a pass to replace affine memref accesses by scalars using store to load forwarding and redundant load elimination; consequently also eliminate dead allocs. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createLoopCoalescingPass () |
| Creates a pass that transforms perfectly nested loops with independent bounds into a single loop. | |
| std::unique_ptr< Pass > | mlir::affine::createLoopFusionPass (unsigned fastMemorySpace=0, uint64_t localBufSizeThreshold=0, bool maximalFusion=false, enum FusionMode fusionMode=FusionMode::Greedy) |
| Creates a loop fusion pass which fuses affine loop nests at the top-level of the operation the pass is created on according to the type of fusion specified in fusionMode. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createLoopTilingPass (uint64_t cacheSizeBytes) |
| Creates a pass to perform tiling on loop nests. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createLoopTilingPass () |
| Overload relying on pass options for initialization. | |
| std::unique_ptr< InterfacePass< FunctionOpInterface > > | mlir::affine::createLoopUnrollPass (int unrollFactor=-1, bool unrollUpToFactor=false, const std::function< unsigned(AffineForOp)> &getUnrollFactor=nullptr) |
| Creates a loop unrolling pass with the provided parameters. | |
| std::unique_ptr< InterfacePass< FunctionOpInterface > > | mlir::affine::createLoopUnrollAndJamPass (int unrollJamFactor=-1) |
| Creates a loop unroll jam pass to unroll jam by the specified factor. | |
| std::unique_ptr< OperationPass< func::FuncOp > > | mlir::affine::createPipelineDataTransferPass () |
| Creates a pass to pipeline explicit movement of data across levels of the memory hierarchy. | |
| std::unique_ptr< Pass > | mlir::affine::createAffineExpandIndexOpsPass () |
| Creates a pass to expand affine index operations into more fundamental operations (not necessarily restricted to Affine dialect). | |
| std::unique_ptr< Pass > | mlir::affine::createAffineExpandIndexOpsAsAffinePass () |
| Creates a pass to expand affine index operations into affine.apply operations. | |