MLIR  20.0.0git
Classes | Namespaces | Macros | Functions
AffineOps.h File Reference
#include "mlir/Dialect/Affine/IR/AffineMemoryOpInterfaces.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
#include "mlir/IR/AffineMap.h"
#include "mlir/IR/Builders.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/LoopLikeInterface.h"
#include "mlir/Dialect/Affine/IR/AffineOpsDialect.h.inc"
#include "mlir/Dialect/Affine/IR/AffineOps.h.inc"

Go to the source code of this file.

Classes

class  mlir::affine::AffineDmaStartOp
 AffineDmaStartOp starts a non-blocking DMA operation that transfers data from a source memref to a destination memref. More...
 
class  mlir::affine::AffineDmaWaitOp
 AffineDmaWaitOp blocks until the completion of a DMA operation associated with the tag element 'tag[index]'. More...
 
class  mlir::affine::AffineBound
 AffineBound represents a lower or upper bound in the for operation. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::affine
 

Macros

#define GET_OP_CLASSES
 

Functions

bool mlir::affine::isTopLevelValue (Value value)
 A utility function to check if a value is defined at the top level of an op with trait AffineScope or is a region argument for such an op. More...
 
bool mlir::affine::isTopLevelValue (Value value, Region *region)
 A utility function to check if a value is defined at the top level of region or is an argument of region. More...
 
Regionmlir::affine::getAffineScope (Operation *op)
 Returns the closest region enclosing op that is held by an operation with trait AffineScope; nullptr if there is no such region. More...
 
bool mlir::affine::isValidDim (Value value)
 Returns true if the given Value can be used as a dimension id in the region of the closest surrounding op that has the trait AffineScope. More...
 
bool mlir::affine::isValidDim (Value value, Region *region)
 Returns true if the given Value can be used as a dimension id in region, i.e., for all its uses in region. More...
 
bool mlir::affine::isValidSymbol (Value value)
 Returns true if the given value can be used as a symbol in the region of the closest surrounding op that has the trait AffineScope. More...
 
bool mlir::affine::isValidSymbol (Value value, Region *region)
 Returns true if the given Value can be used as a symbol for region, i.e., for all its uses in region. More...
 
ParseResult mlir::affine::parseDimAndSymbolList (OpAsmParser &parser, SmallVectorImpl< Value > &operands, unsigned &numDims)
 Parses dimension and symbol list. More...
 
void mlir::affine::canonicalizeMapAndOperands (AffineMap *map, SmallVectorImpl< Value > *operands)
 Modifies both map and operands in-place so as to: More...
 
void mlir::affine::canonicalizeSetAndOperands (IntegerSet *set, SmallVectorImpl< Value > *operands)
 Canonicalizes an integer set the same way canonicalizeMapAndOperands does for affine maps. More...
 
AffineApplyOp mlir::affine::makeComposedAffineApply (OpBuilder &b, Location loc, AffineMap map, ArrayRef< OpFoldResult > operands)
 Returns a composed AffineApplyOp by composing map and operands with other AffineApplyOps supplying those operands. More...
 
AffineApplyOp mlir::affine::makeComposedAffineApply (OpBuilder &b, Location loc, AffineExpr e, ArrayRef< OpFoldResult > operands)
 
OpFoldResult mlir::affine::makeComposedFoldedAffineApply (OpBuilder &b, Location loc, AffineMap map, ArrayRef< OpFoldResult > operands)
 Constructs an AffineApplyOp that applies map to operands after composing the map with the maps of any other AffineApplyOp supplying the operands, then immediately attempts to fold it. More...
 
OpFoldResult mlir::affine::makeComposedFoldedAffineApply (OpBuilder &b, Location loc, AffineExpr expr, ArrayRef< OpFoldResult > operands)
 Variant of makeComposedFoldedAffineApply that applies to an expression. More...
 
SmallVector< OpFoldResultmlir::affine::makeComposedFoldedMultiResultAffineApply (OpBuilder &b, Location loc, AffineMap map, ArrayRef< OpFoldResult > operands)
 Variant of makeComposedFoldedAffineApply suitable for multi-result maps. More...
 
AffineMinOp mlir::affine::makeComposedAffineMin (OpBuilder &b, Location loc, AffineMap map, ArrayRef< OpFoldResult > operands)
 Returns an AffineMinOp obtained by composing map and operands with AffineApplyOps supplying those operands. More...
 
OpFoldResult mlir::affine::makeComposedFoldedAffineMin (OpBuilder &b, Location loc, AffineMap map, ArrayRef< OpFoldResult > operands)
 Constructs an AffineMinOp that computes a minimum across the results of applying map to operands, then immediately attempts to fold it. More...
 
OpFoldResult mlir::affine::makeComposedFoldedAffineMax (OpBuilder &b, Location loc, AffineMap map, ArrayRef< OpFoldResult > operands)
 Constructs an AffineMinOp that computes a maximum across the results of applying map to operands, then immediately attempts to fold it. More...
 
void mlir::affine::fullyComposeAffineMapAndOperands (AffineMap *map, SmallVectorImpl< Value > *operands)
 Given an affine map map and its input operands, this method composes into map, maps of AffineApplyOps whose results are the values in operands, iteratively until no more of operands are the result of an AffineApplyOp. More...
 
bool mlir::affine::isAffineForInductionVar (Value val)
 Returns true if the provided value is the induction variable of an AffineForOp. More...
 
bool mlir::affine::isAffineParallelInductionVar (Value val)
 Returns true if val is the induction variable of an AffineParallelOp. More...
 
bool mlir::affine::isAffineInductionVar (Value val)
 Returns true if the provided value is the induction variable of an AffineForOp or AffineParallelOp. More...
 
AffineForOp mlir::affine::getForInductionVarOwner (Value val)
 Returns the loop parent of an induction variable. More...
 
AffineParallelOp mlir::affine::getAffineParallelInductionVarOwner (Value val)
 Returns true if the provided value is among the induction variables of an AffineParallelOp. More...
 
void mlir::affine::extractForInductionVars (ArrayRef< AffineForOp > forInsts, SmallVectorImpl< Value > *ivs)
 Extracts the induction variables from a list of AffineForOps and places them in the output argument ivs. More...
 
void mlir::affine::extractInductionVars (ArrayRef< Operation * > affineOps, SmallVectorImpl< Value > &ivs)
 Extracts the induction variables from a list of either AffineForOp or AffineParallelOp and places them in the output argument ivs. More...
 
void mlir::affine::buildAffineLoopNest (OpBuilder &builder, Location loc, ArrayRef< int64_t > lbs, ArrayRef< int64_t > ubs, ArrayRef< int64_t > steps, function_ref< void(OpBuilder &, Location, ValueRange)> bodyBuilderFn=nullptr)
 Builds a perfect nest of affine.for loops, i.e., each loop except the innermost one contains only another loop and a terminator. More...
 
void mlir::affine::buildAffineLoopNest (OpBuilder &builder, Location loc, ValueRange lbs, ValueRange ubs, ArrayRef< int64_t > steps, function_ref< void(OpBuilder &, Location, ValueRange)> bodyBuilderFn=nullptr)
 

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 457 of file AffineOps.h.