MLIR  15.0.0git
Classes | Namespaces | Macros | Functions
AffineOps.h File Reference
#include "mlir/Dialect/Affine/IR/AffineMemoryOpInterfaces.h"
#include "mlir/Dialect/Arithmetic/IR/Arithmetic.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"
+ Include dependency graph for AffineOps.h:

Go to the source code of this file.

Classes

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

Namespaces

 mlir
 Include the generated interface declarations.
 

Macros

#define GET_OP_CLASSES
 

Functions

bool mlir::isTopLevelValue (Value value)
 TODO: These should be renamed if they are on the mlir namespace. More...
 
bool mlir::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::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::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::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::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::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::parseDimAndSymbolList (OpAsmParser &parser, SmallVectorImpl< Value > &operands, unsigned &numDims)
 Parses dimension and symbol list. More...
 
void mlir::canonicalizeMapAndOperands (AffineMap *map, SmallVectorImpl< Value > *operands)
 Modifies both map and operands in-place so as to: More...
 
void mlir::canonicalizeSetAndOperands (IntegerSet *set, SmallVectorImpl< Value > *operands)
 Canonicalizes an integer set the same way canonicalizeMapAndOperands does for affine maps. More...
 
AffineApplyOp mlir::makeComposedAffineApply (OpBuilder &b, Location loc, AffineMap map, ValueRange operands)
 Returns a composed AffineApplyOp by composing map and operands with other AffineApplyOps supplying those operands. More...
 
AffineApplyOp mlir::makeComposedAffineApply (OpBuilder &b, Location loc, AffineExpr e, ValueRange values)
 Variant of makeComposedAffineApply which infers the AffineMap from e. More...
 
SmallVector< Value, 4 > mlir::applyMapToValues (OpBuilder &b, Location loc, AffineMap map, ValueRange values)
 Returns the values obtained by applying map to the list of values. More...
 
void mlir::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::isForInductionVar (Value val)
 Returns true if the provided value is the induction variable of a AffineForOp. More...
 
AffineForOp mlir::getForInductionVarOwner (Value val)
 Returns the loop parent of an induction variable. More...
 
void mlir::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::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::buildAffineLoopNest (OpBuilder &builder, Location loc, ValueRange lbs, ValueRange ubs, ArrayRef< int64_t > steps, function_ref< void(OpBuilder &, Location, ValueRange)> bodyBuilderFn=nullptr)
 
AffineForOp mlir::replaceForOpWithNewYields (OpBuilder &b, AffineForOp loop, ValueRange newIterOperands, ValueRange newYieldedValues, ValueRange newIterArgs, bool replaceLoopResults=true)
 Replace loop with a new loop where newIterOperands are appended with new initialization values and newYieldedValues are added as new yielded values. More...
 

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 399 of file AffineOps.h.