MLIR 22.0.0git
Passes.h File Reference
#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.

Classes

struct  mlir::affine::AffineDataCopyGenerationOptions
struct  mlir::affine::AffineLoopFusionOptions
struct  mlir::affine::AffineLoopNormalizeOptions
struct  mlir::affine::AffineLoopTilingOptions
struct  mlir::affine::AffineLoopUnrollOptions
struct  mlir::affine::AffineLoopUnrollAndJamOptions
struct  mlir::affine::AffineParallelizeOptions
struct  mlir::affine::AffineVectorizeOptions

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_DECL_AFFINEDATACOPYGENERATION
#define GEN_PASS_DECL_AFFINEEXPANDINDEXOPS
#define GEN_PASS_DECL_AFFINEEXPANDINDEXOPSASAFFINE
#define GEN_PASS_DECL_AFFINELOOPFUSION
#define GEN_PASS_DECL_AFFINELOOPINVARIANTCODEMOTION
#define GEN_PASS_DECL_AFFINELOOPNORMALIZE
#define GEN_PASS_DECL_AFFINELOOPTILING
#define GEN_PASS_DECL_AFFINELOOPUNROLL
#define GEN_PASS_DECL_AFFINELOOPUNROLLANDJAM
#define GEN_PASS_DECL_AFFINEPARALLELIZE
#define GEN_PASS_DECL_AFFINEPIPELINEDATATRANSFER
#define GEN_PASS_DECL_AFFINESCALARREPLACEMENT
#define GEN_PASS_DECL_AFFINEVECTORIZE
#define GEN_PASS_DECL_LOOPCOALESCING
#define GEN_PASS_DECL_RAISEMEMREFDIALECT
#define GEN_PASS_DECL_SIMPLIFYAFFINEMINMAXPASS
#define GEN_PASS_DECL_SIMPLIFYAFFINESTRUCTURES
#define GEN_PASS_REGISTRATION
 Generate the code for registering passes.
#define GEN_PASS_REGISTRATION_AFFINEDATACOPYGENERATION
#define GEN_PASS_REGISTRATION_AFFINEEXPANDINDEXOPS
#define GEN_PASS_REGISTRATION_AFFINEEXPANDINDEXOPSASAFFINE
#define GEN_PASS_REGISTRATION_AFFINELOOPFUSION
#define GEN_PASS_REGISTRATION_AFFINELOOPINVARIANTCODEMOTION
#define GEN_PASS_REGISTRATION_AFFINELOOPNORMALIZE
#define GEN_PASS_REGISTRATION_AFFINELOOPTILING
#define GEN_PASS_REGISTRATION_AFFINELOOPUNROLL
#define GEN_PASS_REGISTRATION_AFFINELOOPUNROLLANDJAM
#define GEN_PASS_REGISTRATION_AFFINEPARALLELIZE
#define GEN_PASS_REGISTRATION_AFFINEPIPELINEDATATRANSFER
#define GEN_PASS_REGISTRATION_AFFINESCALARREPLACEMENT
#define GEN_PASS_REGISTRATION_AFFINEVECTORIZE
#define GEN_PASS_REGISTRATION_LOOPCOALESCING
#define GEN_PASS_REGISTRATION_RAISEMEMREFDIALECT
#define GEN_PASS_REGISTRATION_SIMPLIFYAFFINEMINMAXPASS
#define GEN_PASS_REGISTRATION_SIMPLIFYAFFINESTRUCTURES

Enumerations

enum  mlir::affine::FusionMode { mlir::affine::Greedy , mlir::affine::ProducerConsumer , mlir::affine::Sibling }
 Fusion mode to attempt. More...

Functions

std::unique_ptr<::mlir::Passmlir::affine::createAffineParallelize ()
std::unique_ptr<::mlir::Passmlir::affine::createAffineParallelize (AffineParallelizeOptions options)
std::unique_ptr<::mlir::Passmlir::affine::createAffineVectorize ()
std::unique_ptr<::mlir::Passmlir::affine::createAffineVectorize (AffineVectorizeOptions options)
std::unique_ptr<::mlir::Passmlir::affine::createSimplifyAffineMinMaxPass ()
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< Passmlir::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< Passmlir::affine::createAffineExpandIndexOpsPass ()
 Creates a pass to expand affine index operations into more fundamental operations (not necessarily restricted to Affine dialect).
std::unique_ptr< Passmlir::affine::createAffineExpandIndexOpsAsAffinePass ()
 Creates a pass to expand affine index operations into affine.apply operations.
void mlir::affine::registerAffineDataCopyGeneration ()
void mlir::affine::registerAffineDataCopyGenerationPass ()
void mlir::affine::registerAffineExpandIndexOps ()
void mlir::affine::registerAffineExpandIndexOpsPass ()
void mlir::affine::registerAffineExpandIndexOpsAsAffine ()
void mlir::affine::registerAffineExpandIndexOpsAsAffinePass ()
void mlir::affine::registerAffineLoopFusion ()
void mlir::affine::registerAffineLoopFusionPass ()
void mlir::affine::registerAffineLoopInvariantCodeMotion ()
void mlir::affine::registerAffineLoopInvariantCodeMotionPass ()
void mlir::affine::registerAffineLoopNormalize ()
void mlir::affine::registerAffineLoopNormalizePass ()
void mlir::affine::registerAffineLoopTiling ()
void mlir::affine::registerAffineLoopTilingPass ()
void mlir::affine::registerAffineLoopUnroll ()
void mlir::affine::registerAffineLoopUnrollPass ()
void mlir::affine::registerAffineLoopUnrollAndJam ()
void mlir::affine::registerAffineLoopUnrollAndJamPass ()
void mlir::affine::registerAffineParallelize ()
void mlir::affine::registerAffineParallelizePass ()
void mlir::affine::registerAffinePipelineDataTransfer ()
void mlir::affine::registerAffinePipelineDataTransferPass ()
void mlir::affine::registerAffineScalarReplacement ()
void mlir::affine::registerAffineScalarReplacementPass ()
void mlir::affine::registerAffineVectorize ()
void mlir::affine::registerAffineVectorizePass ()
void mlir::affine::registerLoopCoalescing ()
void mlir::affine::registerLoopCoalescingPass ()
void mlir::affine::registerRaiseMemrefDialect ()
void mlir::affine::registerRaiseMemrefDialectPass ()
void mlir::affine::registerSimplifyAffineMinMaxPass ()
void mlir::affine::registerSimplifyAffineMinMaxPassPass ()
void mlir::affine::registerSimplifyAffineStructures ()
void mlir::affine::registerSimplifyAffineStructuresPass ()
void mlir::affine::registerAffinePasses ()

Macro Definition Documentation

◆ GEN_PASS_DECL

#define GEN_PASS_DECL

Definition at line 37 of file Passes.h.

◆ GEN_PASS_DECL_AFFINEDATACOPYGENERATION

#define GEN_PASS_DECL_AFFINEDATACOPYGENERATION

◆ GEN_PASS_DECL_AFFINEEXPANDINDEXOPS

#define GEN_PASS_DECL_AFFINEEXPANDINDEXOPS

◆ GEN_PASS_DECL_AFFINEEXPANDINDEXOPSASAFFINE

#define GEN_PASS_DECL_AFFINEEXPANDINDEXOPSASAFFINE

◆ GEN_PASS_DECL_AFFINELOOPFUSION

#define GEN_PASS_DECL_AFFINELOOPFUSION

◆ GEN_PASS_DECL_AFFINELOOPINVARIANTCODEMOTION

#define GEN_PASS_DECL_AFFINELOOPINVARIANTCODEMOTION

◆ GEN_PASS_DECL_AFFINELOOPNORMALIZE

#define GEN_PASS_DECL_AFFINELOOPNORMALIZE

◆ GEN_PASS_DECL_AFFINELOOPTILING

#define GEN_PASS_DECL_AFFINELOOPTILING

◆ GEN_PASS_DECL_AFFINELOOPUNROLL

#define GEN_PASS_DECL_AFFINELOOPUNROLL

◆ GEN_PASS_DECL_AFFINELOOPUNROLLANDJAM

#define GEN_PASS_DECL_AFFINELOOPUNROLLANDJAM

◆ GEN_PASS_DECL_AFFINEPARALLELIZE

#define GEN_PASS_DECL_AFFINEPARALLELIZE

◆ GEN_PASS_DECL_AFFINEPIPELINEDATATRANSFER

#define GEN_PASS_DECL_AFFINEPIPELINEDATATRANSFER

◆ GEN_PASS_DECL_AFFINESCALARREPLACEMENT

#define GEN_PASS_DECL_AFFINESCALARREPLACEMENT

◆ GEN_PASS_DECL_AFFINEVECTORIZE

#define GEN_PASS_DECL_AFFINEVECTORIZE

◆ GEN_PASS_DECL_LOOPCOALESCING

#define GEN_PASS_DECL_LOOPCOALESCING

◆ GEN_PASS_DECL_RAISEMEMREFDIALECT

#define GEN_PASS_DECL_RAISEMEMREFDIALECT

◆ GEN_PASS_DECL_SIMPLIFYAFFINEMINMAXPASS

#define GEN_PASS_DECL_SIMPLIFYAFFINEMINMAXPASS

◆ GEN_PASS_DECL_SIMPLIFYAFFINESTRUCTURES

#define GEN_PASS_DECL_SIMPLIFYAFFINESTRUCTURES

◆ GEN_PASS_REGISTRATION

#define GEN_PASS_REGISTRATION

Generate the code for registering passes.

Definition at line 134 of file Passes.h.

◆ GEN_PASS_REGISTRATION_AFFINEDATACOPYGENERATION

#define GEN_PASS_REGISTRATION_AFFINEDATACOPYGENERATION

◆ GEN_PASS_REGISTRATION_AFFINEEXPANDINDEXOPS

#define GEN_PASS_REGISTRATION_AFFINEEXPANDINDEXOPS

◆ GEN_PASS_REGISTRATION_AFFINEEXPANDINDEXOPSASAFFINE

#define GEN_PASS_REGISTRATION_AFFINEEXPANDINDEXOPSASAFFINE

◆ GEN_PASS_REGISTRATION_AFFINELOOPFUSION

#define GEN_PASS_REGISTRATION_AFFINELOOPFUSION

◆ GEN_PASS_REGISTRATION_AFFINELOOPINVARIANTCODEMOTION

#define GEN_PASS_REGISTRATION_AFFINELOOPINVARIANTCODEMOTION

◆ GEN_PASS_REGISTRATION_AFFINELOOPNORMALIZE

#define GEN_PASS_REGISTRATION_AFFINELOOPNORMALIZE

◆ GEN_PASS_REGISTRATION_AFFINELOOPTILING

#define GEN_PASS_REGISTRATION_AFFINELOOPTILING

◆ GEN_PASS_REGISTRATION_AFFINELOOPUNROLL

#define GEN_PASS_REGISTRATION_AFFINELOOPUNROLL

◆ GEN_PASS_REGISTRATION_AFFINELOOPUNROLLANDJAM

#define GEN_PASS_REGISTRATION_AFFINELOOPUNROLLANDJAM

◆ GEN_PASS_REGISTRATION_AFFINEPARALLELIZE

#define GEN_PASS_REGISTRATION_AFFINEPARALLELIZE

◆ GEN_PASS_REGISTRATION_AFFINEPIPELINEDATATRANSFER

#define GEN_PASS_REGISTRATION_AFFINEPIPELINEDATATRANSFER

◆ GEN_PASS_REGISTRATION_AFFINESCALARREPLACEMENT

#define GEN_PASS_REGISTRATION_AFFINESCALARREPLACEMENT

◆ GEN_PASS_REGISTRATION_AFFINEVECTORIZE

#define GEN_PASS_REGISTRATION_AFFINEVECTORIZE

◆ GEN_PASS_REGISTRATION_LOOPCOALESCING

#define GEN_PASS_REGISTRATION_LOOPCOALESCING

◆ GEN_PASS_REGISTRATION_RAISEMEMREFDIALECT

#define GEN_PASS_REGISTRATION_RAISEMEMREFDIALECT

◆ GEN_PASS_REGISTRATION_SIMPLIFYAFFINEMINMAXPASS

#define GEN_PASS_REGISTRATION_SIMPLIFYAFFINEMINMAXPASS

◆ GEN_PASS_REGISTRATION_SIMPLIFYAFFINESTRUCTURES

#define GEN_PASS_REGISTRATION_SIMPLIFYAFFINESTRUCTURES