LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
llzk::affineMapHelpers Namespace Reference

Group together all implementation related to AffineMap type parameters. More...

Functions

ParseResult parseDimAndSymbolList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &mapOperands, IntegerAttr &numDims)
 
void printDimAndSymbolList (OpAsmPrinter &printer, Operation *op, OperandRange mapOperands, IntegerAttr numDims)
 
ParseResult parseMultiDimAndSymbolList (OpAsmParser &parser, SmallVectorImpl< SmallVector< OpAsmParser::UnresolvedOperand > > &multiMapOperands, DenseI32ArrayAttr &numDimsPerMap)
 
void printMultiDimAndSymbolList (OpAsmPrinter &printer, Operation *op, OperandRangeRange multiMapOperands, DenseI32ArrayAttr numDimsPerMap)
 
ParseResult parseAttrDictWithWarnings (OpAsmParser &parser, NamedAttrList &extraAttrs, OperationState &state)
 
LogicalResult verifySizesForMultiAffineOps (Operation *op, int32_t segmentSize, ArrayRef< int32_t > mapOpGroupSizes, OperandRangeRange mapOperands, ArrayRef< int32_t > numDimsPerMap)
 
LogicalResult verifyAffineMapInstantiations (OperandRangeRange mapOps, ArrayRef< int32_t > numDimsPerMap, ArrayRef< AffineMapAttr > mapAttrs, Operation *origin)
 
mlir::ParseResult parseDimAndSymbolList (mlir::OpAsmParser &parser, mlir::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &mapOperands, mlir::IntegerAttr &numDims)
 Parses dimension and symbol list for an AffineMap instantiation.
 
void printDimAndSymbolList (mlir::OpAsmPrinter &printer, mlir::Operation *op, mlir::OperandRange mapOperands, mlir::IntegerAttr numDims)
 Prints dimension and symbol list for an AffineMap instantiation.
 
mlir::ParseResult parseMultiDimAndSymbolList (mlir::OpAsmParser &parser, mlir::SmallVectorImpl< mlir::SmallVector< mlir::OpAsmParser::UnresolvedOperand > > &multiMapOperands, mlir::DenseI32ArrayAttr &numDimsPerMap)
 Parses comma-separated list of multiple AffineMap instantiations.
 
void printMultiDimAndSymbolList (mlir::OpAsmPrinter &printer, mlir::Operation *op, mlir::OperandRangeRange multiMapOperands, mlir::DenseI32ArrayAttr numDimsPerMap)
 Prints comma-separated list of multiple AffineMap instantiations.
 
mlir::ParseResult parseAttrDictWithWarnings (mlir::OpAsmParser &parser, mlir::NamedAttrList &extraAttrs, mlir::OperationState &state)
 This custom parse/print AttrDictWithWarnings is necessary to directly check what 'attr-dict' is parsed from the input.
 
template<typename ConcreteOp>
void printAttrDictWithWarnings (mlir::OpAsmPrinter &printer, ConcreteOp op, mlir::DictionaryAttr extraAttrs, typename ConcreteOp::Properties state)
 
mlir::LogicalResult verifySizesForMultiAffineOps (mlir::Operation *op, int32_t segmentSize, mlir::ArrayRef< int32_t > mapOpGroupSizes, mlir::OperandRangeRange mapOperands, mlir::ArrayRef< int32_t > numDimsPerMap)
 Implements the ODS trait with the same name.
 
mlir::LogicalResult verifyAffineMapInstantiations (mlir::OperandRangeRange mapOps, mlir::ArrayRef< int32_t > numDimsPerMap, mlir::ArrayRef< mlir::AffineMapAttr > mapAttrs, mlir::Operation *origin)
 Produces errors if there is an inconsistency between the attributes/values that are used to support affine map instantiation in the op and the AffineMapAttr list collected from the type.
 
template<typename OpClass>
OpClass::Properties & buildInstantiationAttrs (mlir::OpBuilder &odsBuilder, mlir::OperationState &odsState, mlir::ArrayRef< mlir::ValueRange > mapOperands, mlir::DenseI32ArrayAttr numDimsPerMap, int32_t firstSegmentSize=0)
 Utility for build() functions that initializes the operandSegmentSizes, mapOpGroupSizes, and numDimsPerMap attributes for an Op that performs affine map instantiations.
 
template<typename OpClass>
void buildInstantiationAttrsNoSegments (mlir::OpBuilder &odsBuilder, mlir::OperationState &odsState, mlir::ArrayRef< mlir::ValueRange > mapOperands, mlir::DenseI32ArrayAttr numDimsPerMap)
 Utility for build() functions that initializes the mapOpGroupSizes, and numDimsPerMap attributes for an Op that performs affine map instantiations in the case were the op does not have two variadic sets of operands.
 
template<typename OpClass>
OpClass::Properties & buildInstantiationAttrsEmpty (mlir::OpBuilder &odsBuilder, mlir::OperationState &odsState, int32_t firstSegmentSize=0)
 Utility for build() functions that initializes the operandSegmentSizes, mapOpGroupSizes, and numDimsPerMap attributes for an Op that supports affine map instantiations but in the case where there are none.
 
template<typename OpClass>
OpClass::Properties & buildInstantiationAttrsEmptyNoSegments (mlir::OpBuilder &odsBuilder, mlir::OperationState &odsState)
 Utility for build() functions that initializes the mapOpGroupSizes, and numDimsPerMap attributes for an Op that supports affine map instantiations but in the case where there are none.
 

Detailed Description

Group together all implementation related to AffineMap type parameters.

Function Documentation

◆ buildInstantiationAttrs()

template<typename OpClass>
OpClass::Properties & llzk::affineMapHelpers::buildInstantiationAttrs ( mlir::OpBuilder & odsBuilder,
mlir::OperationState & odsState,
mlir::ArrayRef< mlir::ValueRange > mapOperands,
mlir::DenseI32ArrayAttr numDimsPerMap,
int32_t firstSegmentSize = 0 )
inline

Utility for build() functions that initializes the operandSegmentSizes, mapOpGroupSizes, and numDimsPerMap attributes for an Op that performs affine map instantiations.

Note: This function supports Ops with 2 ODS-defined operand segments with the second being the size of the mapOperands segment and the first provided by the firstSegmentSize parameter.

Definition at line 84 of file AffineHelper.h.

◆ buildInstantiationAttrsEmpty()

template<typename OpClass>
OpClass::Properties & llzk::affineMapHelpers::buildInstantiationAttrsEmpty ( mlir::OpBuilder & odsBuilder,
mlir::OperationState & odsState,
int32_t firstSegmentSize = 0 )
inline

Utility for build() functions that initializes the operandSegmentSizes, mapOpGroupSizes, and numDimsPerMap attributes for an Op that supports affine map instantiations but in the case where there are none.

Definition at line 133 of file AffineHelper.h.

◆ buildInstantiationAttrsEmptyNoSegments()

template<typename OpClass>
OpClass::Properties & llzk::affineMapHelpers::buildInstantiationAttrsEmptyNoSegments ( mlir::OpBuilder & odsBuilder,
mlir::OperationState & odsState )
inline

Utility for build() functions that initializes the mapOpGroupSizes, and numDimsPerMap attributes for an Op that supports affine map instantiations but in the case where there are none.

Definition at line 149 of file AffineHelper.h.

◆ buildInstantiationAttrsNoSegments()

template<typename OpClass>
void llzk::affineMapHelpers::buildInstantiationAttrsNoSegments ( mlir::OpBuilder & odsBuilder,
mlir::OperationState & odsState,
mlir::ArrayRef< mlir::ValueRange > mapOperands,
mlir::DenseI32ArrayAttr numDimsPerMap )
inline

Utility for build() functions that initializes the mapOpGroupSizes, and numDimsPerMap attributes for an Op that performs affine map instantiations in the case were the op does not have two variadic sets of operands.

Definition at line 111 of file AffineHelper.h.

◆ parseAttrDictWithWarnings() [1/2]

mlir::ParseResult llzk::affineMapHelpers::parseAttrDictWithWarnings ( mlir::OpAsmParser & parser,
mlir::NamedAttrList & extraAttrs,
mlir::OperationState & state )

This custom parse/print AttrDictWithWarnings is necessary to directly check what 'attr-dict' is parsed from the input.

Waiting until the verify() function will not work because the generated parse() function automatically computes and initializes the attributes.

◆ parseAttrDictWithWarnings() [2/2]

ParseResult llzk::affineMapHelpers::parseAttrDictWithWarnings ( OpAsmParser & parser,
NamedAttrList & extraAttrs,
OperationState & state )

Definition at line 93 of file AffineHelper.cpp.

◆ parseDimAndSymbolList() [1/2]

mlir::ParseResult llzk::affineMapHelpers::parseDimAndSymbolList ( mlir::OpAsmParser & parser,
mlir::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > & mapOperands,
mlir::IntegerAttr & numDims )

Parses dimension and symbol list for an AffineMap instantiation.

◆ parseDimAndSymbolList() [2/2]

ParseResult llzk::affineMapHelpers::parseDimAndSymbolList ( OpAsmParser & parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > & mapOperands,
IntegerAttr & numDims )

Definition at line 45 of file AffineHelper.cpp.

◆ parseMultiDimAndSymbolList() [1/2]

mlir::ParseResult llzk::affineMapHelpers::parseMultiDimAndSymbolList ( mlir::OpAsmParser & parser,
mlir::SmallVectorImpl< mlir::SmallVector< mlir::OpAsmParser::UnresolvedOperand > > & multiMapOperands,
mlir::DenseI32ArrayAttr & numDimsPerMap )

Parses comma-separated list of multiple AffineMap instantiations.

◆ parseMultiDimAndSymbolList() [2/2]

ParseResult llzk::affineMapHelpers::parseMultiDimAndSymbolList ( OpAsmParser & parser,
SmallVectorImpl< SmallVector< OpAsmParser::UnresolvedOperand > > & multiMapOperands,
DenseI32ArrayAttr & numDimsPerMap )

Definition at line 61 of file AffineHelper.cpp.

◆ printAttrDictWithWarnings()

template<typename ConcreteOp>
void llzk::affineMapHelpers::printAttrDictWithWarnings ( mlir::OpAsmPrinter & printer,
ConcreteOp op,
mlir::DictionaryAttr extraAttrs,
typename ConcreteOp::Properties state )
inline

Definition at line 57 of file AffineHelper.h.

◆ printDimAndSymbolList() [1/2]

void llzk::affineMapHelpers::printDimAndSymbolList ( mlir::OpAsmPrinter & printer,
mlir::Operation * op,
mlir::OperandRange mapOperands,
mlir::IntegerAttr numDims )

Prints dimension and symbol list for an AffineMap instantiation.

◆ printDimAndSymbolList() [2/2]

void llzk::affineMapHelpers::printDimAndSymbolList ( OpAsmPrinter & printer,
Operation * op,
OperandRange mapOperands,
IntegerAttr numDims )

Definition at line 55 of file AffineHelper.cpp.

◆ printMultiDimAndSymbolList() [1/2]

void llzk::affineMapHelpers::printMultiDimAndSymbolList ( mlir::OpAsmPrinter & printer,
mlir::Operation * op,
mlir::OperandRangeRange multiMapOperands,
mlir::DenseI32ArrayAttr numDimsPerMap )

Prints comma-separated list of multiple AffineMap instantiations.

◆ printMultiDimAndSymbolList() [2/2]

void llzk::affineMapHelpers::printMultiDimAndSymbolList ( OpAsmPrinter & printer,
Operation * op,
OperandRangeRange multiMapOperands,
DenseI32ArrayAttr numDimsPerMap )

Definition at line 81 of file AffineHelper.cpp.

◆ verifyAffineMapInstantiations() [1/2]

mlir::LogicalResult llzk::affineMapHelpers::verifyAffineMapInstantiations ( mlir::OperandRangeRange mapOps,
mlir::ArrayRef< int32_t > numDimsPerMap,
mlir::ArrayRef< mlir::AffineMapAttr > mapAttrs,
mlir::Operation * origin )

Produces errors if there is an inconsistency between the attributes/values that are used to support affine map instantiation in the op and the AffineMapAttr list collected from the type.

◆ verifyAffineMapInstantiations() [2/2]

LogicalResult llzk::affineMapHelpers::verifyAffineMapInstantiations ( OperandRangeRange mapOps,
ArrayRef< int32_t > numDimsPerMap,
ArrayRef< AffineMapAttr > mapAttrs,
Operation * origin )

Definition at line 184 of file AffineHelper.cpp.

◆ verifySizesForMultiAffineOps() [1/2]

mlir::LogicalResult llzk::affineMapHelpers::verifySizesForMultiAffineOps ( mlir::Operation * op,
int32_t segmentSize,
mlir::ArrayRef< int32_t > mapOpGroupSizes,
mlir::OperandRangeRange mapOperands,
mlir::ArrayRef< int32_t > numDimsPerMap )

Implements the ODS trait with the same name.

Produces errors if there is an inconsistency in the various attributes/values that are used to support affine map instantiation in the op.

◆ verifySizesForMultiAffineOps() [2/2]

LogicalResult llzk::affineMapHelpers::verifySizesForMultiAffineOps ( Operation * op,
int32_t segmentSize,
ArrayRef< int32_t > mapOpGroupSizes,
OperandRangeRange mapOperands,
ArrayRef< int32_t > numDimsPerMap )

Definition at line 127 of file AffineHelper.cpp.