MLIR  15.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
VectorOps.h File Reference
#include "mlir/IR/AffineMap.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Interfaces/VectorInterfaces.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
#include "llvm/ADT/StringExtras.h"
#include "mlir/Dialect/Vector/IR/VectorOpsEnums.h.inc"
#include "mlir/Dialect/Vector/IR/VectorOps.h.inc"
#include "mlir/Dialect/Vector/IR/VectorOpsDialect.h.inc"
+ Include dependency graph for VectorOps.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mlir::vector::CombiningKindAttr
 An attribute that specifies the combining function for vector.contract, and vector.reduction. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::arith
 
 mlir::vector
 
 mlir::vector::detail
 

Macros

#define GET_OP_CLASSES
 

Enumerations

enum  mlir::vector::BroadcastableToResult { mlir::vector::BroadcastableToResult::Success = 0, mlir::vector::BroadcastableToResult::SourceRankHigher = 1, mlir::vector::BroadcastableToResult::DimensionMismatch = 2, mlir::vector::BroadcastableToResult::SourceTypeNotAVector = 3 }
 Return whether srcType can be broadcast to dstVectorType under the semantics of the vector.broadcast op. More...
 

Functions

BroadcastableToResult mlir::vector::isBroadcastableTo (Type srcType, VectorType dstVectorType, std::pair< int, int > *mismatchingDims=nullptr)
 
void mlir::vector::populateVectorToVectorCanonicalizationPatterns (RewritePatternSet &patterns)
 Collect a set of vector-to-vector canonicalization patterns. More...
 
void mlir::vector::populateShapeCastFoldingPatterns (RewritePatternSet &patterns)
 Collect a set of vector.shape_cast folding patterns. More...
 
void mlir::vector::populateCastAwayVectorLeadingOneDimPatterns (RewritePatternSet &patterns)
 Collect a set of leading one dimension removal patterns. More...
 
void mlir::vector::populateVectorTransferDropUnitDimsPatterns (RewritePatternSet &patterns)
 Collect a set of one dimension removal patterns. More...
 
void mlir::vector::populateFlattenVectorTransferPatterns (RewritePatternSet &patterns)
 Collect a set of patterns to flatten n-D vector transfers on contiguous memref. More...
 
void mlir::vector::populateBubbleVectorBitCastOpPatterns (RewritePatternSet &patterns)
 Collect a set of patterns that bubble up/down bitcast ops. More...
 
void mlir::vector::populateVectorTransferLoweringPatterns (RewritePatternSet &patterns, llvm::Optional< unsigned > maxTransferRank=llvm::None)
 Collect a set of transfer read/write lowering patterns. More...
 
void mlir::vector::populateVectorMaskMaterializationPatterns (RewritePatternSet &patterns, bool force32BitVectorIndices)
 These patterns materialize masks for various vector ops such as transfers. More...
 
void mlir::vector::populatePropagateVectorDistributionPatterns (RewritePatternSet &patterns)
 Collect a set of patterns to propagate insert_map/extract_map in the ssa chain. More...
 
void mlir::vector::populateVectorBroadcastLoweringPatterns (RewritePatternSet &patterns)
 Collects patterns to progressively lower vector.broadcast ops on high-D vectors to low-D vector ops. More...
 
void mlir::vector::populateVectorMaskOpLoweringPatterns (RewritePatternSet &patterns)
 Collects patterns to progressively lower vector mask ops into elementary selection and insertion ops. More...
 
void mlir::vector::populateVectorShapeCastLoweringPatterns (RewritePatternSet &patterns)
 Collects patterns to progressively lower vector.shape_cast ops on high-D vectors into 1-D/2-D vector ops by generating data movement extract/insert ops. More...
 
IntegerType mlir::vector::getVectorSubscriptType (Builder &builder)
 Returns the integer type required for subscripts in the vector dialect. More...
 
ArrayAttr mlir::vector::getVectorSubscriptAttr (Builder &b, ArrayRef< int64_t > values)
 Returns an integer array attribute containing the given values using the integer type required for subscripts in the vector dialect. More...
 
Value mlir::vector::getVectorReductionOp (arith::AtomicRMWKind op, OpBuilder &builder, Location loc, Value vector)
 Returns the value obtained by reducing the vector into a scalar using the operation kind associated with a binary AtomicRMWKind op. More...
 
bool mlir::vector::isLastMemrefDimUnitStride (MemRefType type)
 Return true if the last dimension of the MemRefType has unit stride. More...
 
AffineMap mlir::vector::getTransferMinorIdentityMap (ShapedType shapedType, VectorType vectorType)
 Build the default minor identity map suitable for a vector transfer. More...
 
bool mlir::vector::checkSameValueRAW (TransferWriteOp defWrite, TransferReadOp read)
 Return true if the transfer_write fully writes the data accessed by the transfer_read. More...
 
bool mlir::vector::checkSameValueWAW (TransferWriteOp write, TransferWriteOp priorWrite)
 Return true if the write op fully over-write the priorWrite transfer_write op. More...
 
bool mlir::vector::isDisjointTransferIndices (VectorTransferOpInterface transferA, VectorTransferOpInterface transferB)
 Same behavior as isDisjointTransferSet but doesn't require the operations to have the same tensor/memref. More...
 
bool mlir::vector::isDisjointTransferSet (VectorTransferOpInterface transferA, VectorTransferOpInterface transferB)
 Return true if we can prove that the transfer operations access disjoint memory. More...
 

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 188 of file VectorOps.h.