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

Public Types

using Adaptor = ReadArrayOpAdaptor
 
template<typename RangeT>
using GenericAdaptor = ReadArrayOpGenericAdaptor<RangeT>
 
using FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>>
 

Public Member Functions

static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames ()
 
std::pair< unsigned, unsigned > getODSOperandIndexAndLength (unsigned index)
 
::mlir::Operation::operand_range getODSOperands (unsigned index)
 
::mlir::TypedValue<::llzk::array::ArrayTypegetArrRef ()
 
::mlir::Operation::operand_range getIndices ()
 
::mlir::OpOperand & getArrRefMutable ()
 
::mlir::MutableOperandRange getIndicesMutable ()
 
std::pair< unsigned, unsigned > getODSResultIndexAndLength (unsigned index)
 
::mlir::Operation::result_range getODSResults (unsigned index)
 
::mlir::Value getResult ()
 
::mlir::LogicalResult verifyInvariantsImpl ()
 
::mlir::LogicalResult verifyInvariants ()
 
::mlir::LogicalResult verify ()
 
bool canRewire (const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute > &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot > &mustBeSafelyUsed)
 Required by DestructurableAllocationOpInterface / SROA pass.
 
::mlir::DeletionKind rewire (const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > &subslots, ::mlir::RewriterBase &rewriter)
 Required by DestructurableAllocationOpInterface / SROA pass.
 
bool loadsFrom (const ::mlir::MemorySlot &slot)
 Required by PromotableMemOpInterface / mem2reg pass.
 
bool storesTo (const ::mlir::MemorySlot &slot)
 Required by PromotableMemOpInterface / mem2reg pass.
 
::mlir::Value getStored (const ::mlir::MemorySlot &slot, ::mlir::RewriterBase &rewriter)
 Required by PromotableAllocationOpInterface / mem2reg pass.
 
bool canUsesBeRemoved (const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::OpOperand * > &blockingUses, ::llvm::SmallVectorImpl<::mlir::OpOperand * > &newBlockingUses)
 Required by PromotableMemOpInterface / mem2reg pass.
 
::mlir::DeletionKind removeBlockingUses (const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl< mlir::OpOperand * > &blockingUses, ::mlir::RewriterBase &rewriter, ::mlir::Value reachingDefinition)
 Required by PromotableMemOpInterface / mem2reg pass.
 
::mlir::LogicalResult verifySymbolUses (::mlir::SymbolTableCollection &symbolTable)
 
bool isRead ()
 Return true if the op is a read, false if it's a write.
 
void print (::mlir::OpAsmPrinter &_odsPrinter)
 
inline ::llzk::array::ArrayType getArrRefType ()
 Gets the type of the referenced base array.
 

Static Public Member Functions

static constexpr ::llvm::StringLiteral getOperationName ()
 
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value arr_ref, ::mlir::ValueRange indices)
 
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices)
 
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices)
 
static void build (::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes={})
 
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes={})
 
::mlir::LogicalResult inferReturnTypes (::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
 
::mlir::ParseResult parse (::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
 
::mlir::LogicalResult inferReturnTypes (::mlir::MLIRContext *context, std::optional<::mlir::Location > location, Adaptor adaptor, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
 
static bool isCompatibleReturnTypes (::mlir::TypeRange l, ::mlir::TypeRange r)
 

Detailed Description

Definition at line 715 of file Ops.h.inc.

Member Typedef Documentation

◆ Adaptor

◆ FoldAdaptor

using llzk::array::ReadArrayOp::FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>>

Definition at line 722 of file Ops.h.inc.

◆ GenericAdaptor

template<typename RangeT>
using llzk::array::ReadArrayOp::GenericAdaptor = ReadArrayOpGenericAdaptor<RangeT>

Definition at line 721 of file Ops.h.inc.

Member Function Documentation

◆ build() [1/5]

void llzk::array::ReadArrayOp::build ( ::mlir::OpBuilder & ,
::mlir::OperationState & odsState,
::mlir::TypeRange resultTypes,
::mlir::ValueRange operands,
::llvm::ArrayRef<::mlir::NamedAttribute > attributes = {} )
static

Definition at line 1499 of file Ops.cpp.inc.

◆ build() [2/5]

void llzk::array::ReadArrayOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::Type result,
::mlir::Value arr_ref,
::mlir::ValueRange indices )
static

Definition at line 1471 of file Ops.cpp.inc.

◆ build() [3/5]

void llzk::array::ReadArrayOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::TypeRange resultTypes,
::mlir::Value arr_ref,
::mlir::ValueRange indices )
static

Definition at line 1492 of file Ops.cpp.inc.

◆ build() [4/5]

void llzk::array::ReadArrayOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::Value arr_ref,
::mlir::ValueRange indices )
static

Definition at line 1477 of file Ops.cpp.inc.

◆ build() [5/5]

void llzk::array::ReadArrayOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::ValueRange operands,
::llvm::ArrayRef<::mlir::NamedAttribute > attributes = {} )
static

Definition at line 1507 of file Ops.cpp.inc.

◆ canRewire()

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

Required by DestructurableAllocationOpInterface / SROA pass.

Definition at line 1657 of file Ops.cpp.inc.

◆ canUsesBeRemoved()

bool llzk::array::ReadArrayOp::canUsesBeRemoved ( const ::mlir::MemorySlot & slot,
const ::llvm::SmallPtrSetImpl<::mlir::OpOperand * > & blockingUses,
::llvm::SmallVectorImpl<::mlir::OpOperand * > & newBlockingUses )

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 313 of file Ops.cpp.

◆ getArrRef()

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

Definition at line 1438 of file Ops.cpp.inc.

◆ getArrRefMutable()

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

Definition at line 1446 of file Ops.cpp.inc.

◆ getArrRefType()

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

Gets the type of the referenced base array.

Definition at line 771 of file Ops.h.inc.

◆ getAttributeNames()

static ::llvm::ArrayRef<::llvm::StringRef > llzk::array::ReadArrayOp::getAttributeNames ( )
inline

Definition at line 723 of file Ops.h.inc.

◆ getIndices()

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

Definition at line 1442 of file Ops.cpp.inc.

◆ getIndicesMutable()

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

Definition at line 1451 of file Ops.cpp.inc.

◆ getODSOperandIndexAndLength()

std::pair< unsigned, unsigned > llzk::array::ReadArrayOp::getODSOperandIndexAndLength ( unsigned index)

Definition at line 1414 of file Ops.cpp.inc.

◆ getODSOperands()

mlir::Operation::operand_range llzk::array::ReadArrayOp::getODSOperands ( unsigned index)

Definition at line 1432 of file Ops.cpp.inc.

◆ getODSResultIndexAndLength()

std::pair< unsigned, unsigned > llzk::array::ReadArrayOp::getODSResultIndexAndLength ( unsigned index)

Definition at line 1457 of file Ops.cpp.inc.

◆ getODSResults()

mlir::Operation::result_range llzk::array::ReadArrayOp::getODSResults ( unsigned index)

Definition at line 1461 of file Ops.cpp.inc.

◆ getOperationName()

static constexpr ::llvm::StringLiteral llzk::array::ReadArrayOp::getOperationName ( )
inlinestatic

Definition at line 727 of file Ops.h.inc.

◆ getResult()

mlir::Value llzk::array::ReadArrayOp::getResult ( )

Definition at line 1467 of file Ops.cpp.inc.

◆ getStored()

mlir::Value llzk::array::ReadArrayOp::getStored ( const ::mlir::MemorySlot & slot,
::mlir::RewriterBase & rewriter )

Required by PromotableAllocationOpInterface / mem2reg pass.

Definition at line 1685 of file Ops.cpp.inc.

◆ inferReturnTypes() [1/2]

::mlir::LogicalResult llzk::array::ReadArrayOp::inferReturnTypes ( ::mlir::MLIRContext * context,
::std::optional<::mlir::Location > location,
::mlir::ValueRange operands,
::mlir::DictionaryAttr attributes,
::mlir::OpaqueProperties properties,
::mlir::RegionRange regions,
::llvm::SmallVectorImpl<::mlir::Type > & inferredReturnTypes )
static

◆ inferReturnTypes() [2/2]

::mlir::LogicalResult llzk::array::ReadArrayOp::inferReturnTypes ( ::mlir::MLIRContext * context,
std::optional<::mlir::Location > location,
Adaptor adaptor,
::llvm::SmallVectorImpl<::mlir::Type > & inferredReturnTypes )
static

◆ isCompatibleReturnTypes()

bool llzk::array::ReadArrayOp::isCompatibleReturnTypes ( ::mlir::TypeRange l,
::mlir::TypeRange r )
static

Definition at line 303 of file Ops.cpp.

◆ isRead()

bool llzk::array::ReadArrayOp::isRead ( )

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

Definition at line 1690 of file Ops.cpp.inc.

◆ loadsFrom()

bool llzk::array::ReadArrayOp::loadsFrom ( const ::mlir::MemorySlot & slot)

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 1675 of file Ops.cpp.inc.

◆ parse()

mlir::ParseResult llzk::array::ReadArrayOp::parse ( ::mlir::OpAsmParser & parser,
::mlir::OperationState & result )
static

Definition at line 1561 of file Ops.cpp.inc.

◆ print()

void llzk::array::ReadArrayOp::print ( ::mlir::OpAsmPrinter & _odsPrinter)

Definition at line 1616 of file Ops.cpp.inc.

◆ removeBlockingUses()

DeletionKind llzk::array::ReadArrayOp::removeBlockingUses ( const ::mlir::MemorySlot & slot,
const ::llvm::SmallPtrSetImpl< mlir::OpOperand * > & blockingUses,
::mlir::RewriterBase & rewriter,
::mlir::Value reachingDefinition )

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 326 of file Ops.cpp.

◆ rewire()

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

Required by DestructurableAllocationOpInterface / SROA pass.

Definition at line 1666 of file Ops.cpp.inc.

◆ storesTo()

bool llzk::array::ReadArrayOp::storesTo ( const ::mlir::MemorySlot & slot)

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 1680 of file Ops.cpp.inc.

◆ verify()

LogicalResult llzk::array::ReadArrayOp::verify ( )

Definition at line 307 of file Ops.cpp.

◆ verifyInvariants()

mlir::LogicalResult llzk::array::ReadArrayOp::verifyInvariants ( )

Definition at line 1555 of file Ops.cpp.inc.

◆ verifyInvariantsImpl()

mlir::LogicalResult llzk::array::ReadArrayOp::verifyInvariantsImpl ( )

Definition at line 1525 of file Ops.cpp.inc.

◆ verifySymbolUses()

LogicalResult llzk::array::ReadArrayOp::verifySymbolUses ( ::mlir::SymbolTableCollection & symbolTable)

Definition at line 287 of file Ops.cpp.


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