Helper for converting between linear and multi-dimensional indexing with checks to ensure indices are in range for the ArrayType.
More...
#include <ArrayTypeHelper.h>
|
| | ~ArrayIndexGen ()=default |
| | ArrayIndexGen (ArrayIndexGen &&) noexcept=default |
| ArrayIndexGen & | operator= (ArrayIndexGen &&) noexcept=default |
| | ArrayIndexGen (const ArrayIndexGen &)=delete |
| ArrayIndexGen & | operator= (const ArrayIndexGen &)=delete |
| std::optional< llvm::SmallVector< mlir::Value > > | delinearize (int64_t, mlir::Location, mlir::OpBuilder &) const |
| std::optional< llvm::SmallVector< mlir::Attribute > > | delinearize (int64_t, mlir::MLIRContext *) const |
| template<typename InListType> |
| std::optional< int64_t > | linearize (InListType multiDimIndex) const |
| template<typename InListType> |
| std::optional< llvm::SmallVector< mlir::Attribute > > | checkAndConvert (InListType multiDimIndex) |
| template<> |
| std::optional< int64_t > | linearize (ArrayRef< int64_t > multiDimIndex) const |
| template<> |
| std::optional< int64_t > | linearize (ArrayRef< Attribute > multiDimIndex) const |
| template<> |
| std::optional< int64_t > | linearize (ArrayRef< Operation * > multiDimIndex) const |
| template<> |
| std::optional< int64_t > | linearize (ArrayRef< Value > multiDimIndex) const |
| template<typename InListType> |
| std::optional< SmallVector< Attribute > > | checkAndConvert (InListType) |
| template<> |
| std::optional< SmallVector< Attribute > > | checkAndConvert (OperandRange multiDimIndex) |
Helper for converting between linear and multi-dimensional indexing with checks to ensure indices are in range for the ArrayType.
Definition at line 30 of file ArrayTypeHelper.h.
◆ ~ArrayIndexGen()
| llzk::array::ArrayIndexGen::~ArrayIndexGen |
( |
| ) |
|
|
default |
◆ ArrayIndexGen() [1/2]
| llzk::array::ArrayIndexGen::ArrayIndexGen |
( |
ArrayIndexGen && | | ) |
|
|
defaultnoexcept |
◆ ArrayIndexGen() [2/2]
| llzk::array::ArrayIndexGen::ArrayIndexGen |
( |
const ArrayIndexGen & | | ) |
|
|
delete |
◆ checkAndConvert() [1/3]
template<typename InListType>
| std::optional< llvm::SmallVector< mlir::Attribute > > llzk::array::ArrayIndexGen::checkAndConvert |
( |
InListType | multiDimIndex | ) |
|
◆ checkAndConvert() [2/3]
template<typename InListType>
| std::optional< SmallVector< Attribute > > llzk::array::ArrayIndexGen::checkAndConvert |
( |
InListType | | ) |
|
◆ checkAndConvert() [3/3]
template<>
| std::optional< SmallVector< Attribute > > llzk::array::ArrayIndexGen::checkAndConvert |
( |
OperandRange | multiDimIndex | ) |
|
◆ delinearize() [1/2]
| std::optional< llvm::SmallVector< mlir::Value > > llzk::array::ArrayIndexGen::delinearize |
( |
int64_t | , |
|
|
mlir::Location | , |
|
|
mlir::OpBuilder & | ) const |
◆ delinearize() [2/2]
| std::optional< llvm::SmallVector< mlir::Attribute > > llzk::array::ArrayIndexGen::delinearize |
( |
int64_t | , |
|
|
mlir::MLIRContext * | ) const |
◆ from()
| ArrayIndexGen ArrayIndexGen::from |
( |
ArrayType | t | ) |
|
|
static |
◆ linearize() [1/5]
template<>
| std::optional< int64_t > llzk::array::ArrayIndexGen::linearize |
( |
ArrayRef< Attribute > | multiDimIndex | ) |
const |
◆ linearize() [2/5]
template<>
| std::optional< int64_t > llzk::array::ArrayIndexGen::linearize |
( |
ArrayRef< int64_t > | multiDimIndex | ) |
const |
◆ linearize() [3/5]
template<>
| std::optional< int64_t > llzk::array::ArrayIndexGen::linearize |
( |
ArrayRef< Operation * > | multiDimIndex | ) |
const |
◆ linearize() [4/5]
template<>
| std::optional< int64_t > llzk::array::ArrayIndexGen::linearize |
( |
ArrayRef< Value > | multiDimIndex | ) |
const |
◆ linearize() [5/5]
template<typename InListType>
| std::optional< int64_t > ArrayIndexGen::linearize |
( |
InListType | multiDimIndex | ) |
const |
◆ operator=() [1/2]
| ArrayIndexGen & llzk::array::ArrayIndexGen::operator= |
( |
ArrayIndexGen && | | ) |
|
|
defaultnoexcept |
◆ operator=() [2/2]
| ArrayIndexGen & llzk::array::ArrayIndexGen::operator= |
( |
const ArrayIndexGen & | | ) |
|
|
delete |
The documentation for this class was generated from the following files: