LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
llzk::array::ArrayAccessOpInterface Class Reference
Inheritance diagram for llzk::array::ArrayAccessOpInterface:
[legend]
Collaboration diagram for llzk::array::ArrayAccessOpInterface:
[legend]

Classes

struct  Trait
 

Public Member Functions

::mlir::Operation::operand_range getIndices ()
 Gets the operand range containing the index for each dimension.
 
::mlir::MutableOperandRange getIndicesMutable ()
 Gets the mutable operand range containing the index for each dimension.
 
bool isRead ()
 Return true if the op is a read, false if it's a write.
 
inline ::mlir::ArrayRef<::mlir::Attribute > getValueOperandDims ()
 Compute the dimensions of the read/write value.
 
::mlir::ArrayAttr indexOperandsToAttributeArray ()
 Returns the multi-dimensional indices of the array access as an Attribute array or a null pointer if a valid index cannot be computed for any dimension.
 
bool canRewire (const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute > &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot > &mustBeSafelyUsed)
 Required by companion interface DestructurableAccessorOpInterface / SROA pass.
 
::mlir::DeletionKind rewire (const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > &subslots, ::mlir::RewriterBase &rewriter)
 Required by companion interface DestructurableAccessorOpInterface / SROA pass.
 
 operator::llzk::array::ArrayRefOpInterface () const
 
::mlir::TypedValue<::llzk::array::ArrayTypegetArrRef ()
 Gets the SSA Value for the referenced array.
 
::mlir::OpOperand & getArrRefMutable ()
 Gets the mutable operand slot holding the SSA Value for the referenced array.
 
inline ::llzk::array::ArrayType getArrRefType ()
 Gets the type of the referenced array.
 

Detailed Description

Definition at line 113 of file OpInterfaces.h.inc.

Member Function Documentation

◆ canRewire()

bool llzk::array::ArrayAccessOpInterface::canRewire ( const ::mlir::DestructurableMemorySlot & slot,
::llvm::SmallPtrSetImpl<::mlir::Attribute > & usedIndices,
::mlir::SmallVectorImpl<::mlir::MemorySlot > & mustBeSafelyUsed )

Required by companion interface DestructurableAccessorOpInterface / SROA pass.

Required by DestructurableAllocationOpInterface / SROA pass.

Definition at line 218 of file Ops.cpp.

◆ getArrRef()

mlir::TypedValue<::llzk::array::ArrayType > llzk::array::ArrayAccessOpInterface::getArrRef ( )

Gets the SSA Value for the referenced array.

Definition at line 22 of file OpInterfaces.cpp.inc.

◆ getArrRefMutable()

mlir::OpOperand & llzk::array::ArrayAccessOpInterface::getArrRefMutable ( )

Gets the mutable operand slot holding the SSA Value for the referenced array.

Definition at line 26 of file OpInterfaces.cpp.inc.

◆ getArrRefType()

inline ::llzk::array::ArrayType llzk::array::ArrayAccessOpInterface::getArrRefType ( )
inline

Gets the type of the referenced array.

Definition at line 160 of file OpInterfaces.h.inc.

◆ getIndices()

mlir::Operation::operand_range llzk::array::ArrayAccessOpInterface::getIndices ( )

Gets the operand range containing the index for each dimension.

Definition at line 10 of file OpInterfaces.cpp.inc.

◆ getIndicesMutable()

mlir::MutableOperandRange llzk::array::ArrayAccessOpInterface::getIndicesMutable ( )

Gets the mutable operand range containing the index for each dimension.

Definition at line 14 of file OpInterfaces.cpp.inc.

◆ getValueOperandDims()

inline ::mlir::ArrayRef<::mlir::Attribute > llzk::array::ArrayAccessOpInterface::getValueOperandDims ( )
inline

Compute the dimensions of the read/write value.

Removing the number of indices provided from the front dimensions of the base array type gives the dimensions/shape of that value.

Definition at line 128 of file OpInterfaces.h.inc.

◆ indexOperandsToAttributeArray()

ArrayAttr llzk::array::ArrayAccessOpInterface::indexOperandsToAttributeArray ( )

Returns the multi-dimensional indices of the array access as an Attribute array or a null pointer if a valid index cannot be computed for any dimension.

Definition at line 207 of file Ops.cpp.

◆ isRead()

bool llzk::array::ArrayAccessOpInterface::isRead ( )

Return true if the op is a read, false if it's a write.

Definition at line 18 of file OpInterfaces.cpp.inc.

◆ operator::llzk::array::ArrayRefOpInterface()

llzk::array::ArrayAccessOpInterface::operator::llzk::array::ArrayRefOpInterface ( ) const
inline

Definition at line 149 of file OpInterfaces.h.inc.

◆ rewire()

DeletionKind llzk::array::ArrayAccessOpInterface::rewire ( const ::mlir::DestructurableMemorySlot & slot,
::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > & subslots,
::mlir::RewriterBase & rewriter )

Required by companion interface DestructurableAccessorOpInterface / SROA pass.

Required by DestructurableAllocationOpInterface / SROA pass.

Definition at line 242 of file Ops.cpp.


The documentation for this class was generated from the following files: