LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
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::TypedValue<::mlir::Type > getResult ()
::llvm::LogicalResult verifyInvariantsImpl ()
::llvm::LogicalResult verifyInvariants ()
::llvm::LogicalResult verify ()
bool canRewire (const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute > &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot > &mustBeSafelyUsed, const ::mlir::DataLayout &dataLayout)
 Required by DestructurableAllocationOpInterface / SROA pass.
::mlir::DeletionKind rewire (const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > &subslots, ::mlir::OpBuilder &builder, const ::mlir::DataLayout &dataLayout)
 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::OpBuilder &builder, ::mlir::Value reachingDef, const ::mlir::DataLayout &dataLayout)
 Required by PromotableAllocationOpInterface / mem2reg pass.
bool canUsesBeRemoved (const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::OpOperand * > &blockingUses, ::llvm::SmallVectorImpl<::mlir::OpOperand * > &newBlockingUses, const ::mlir::DataLayout &datalayout)
 Required by PromotableMemOpInterface / mem2reg pass.
::mlir::DeletionKind removeBlockingUses (const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl< mlir::OpOperand * > &blockingUses, ::mlir::OpBuilder &builder, ::mlir::Value reachingDefinition, const ::mlir::DataLayout &dataLayout)
 Required by PromotableMemOpInterface / mem2reg pass.
::llvm::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={})
::llvm::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)
::llvm::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 874 of file Ops.h.inc.

Member Typedef Documentation

◆ Adaptor

◆ FoldAdaptor

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

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

◆ GenericAdaptor

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

Definition at line 880 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 1271 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 1242 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 1264 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 1248 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 1279 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,
const ::mlir::DataLayout & dataLayout )

Required by DestructurableAllocationOpInterface / SROA pass.

Definition at line 1429 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,
const ::mlir::DataLayout & datalayout )

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 319 of file Ops.cpp.

◆ getArrRef()

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

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

◆ getArrRefMutable()

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

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

◆ getArrRefType()

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

Gets the type of the referenced base array.

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

◆ getAttributeNames()

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

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

◆ getIndices()

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

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

◆ getIndicesMutable()

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

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

◆ getODSOperandIndexAndLength()

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

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

◆ getODSOperands()

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

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

◆ getODSResultIndexAndLength()

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

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

◆ getODSResults()

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

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

◆ getOperationName()

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

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

◆ getResult()

::mlir::TypedValue<::mlir::Type > llzk::array::ReadArrayOp::getResult ( )
inline

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

◆ getStored()

mlir::Value llzk::array::ReadArrayOp::getStored ( const ::mlir::MemorySlot & slot,
::mlir::OpBuilder & builder,
::mlir::Value reachingDef,
const ::mlir::DataLayout & dataLayout )

Required by PromotableAllocationOpInterface / mem2reg pass.

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

◆ inferReturnTypes() [1/2]

::llvm::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]

::llvm::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 309 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 1462 of file Ops.cpp.inc.

◆ loadsFrom()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ parse()

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

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

◆ print()

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

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

◆ removeBlockingUses()

DeletionKind llzk::array::ReadArrayOp::removeBlockingUses ( const ::mlir::MemorySlot & slot,
const ::llvm::SmallPtrSetImpl< mlir::OpOperand * > & blockingUses,
::mlir::OpBuilder & builder,
::mlir::Value reachingDefinition,
const ::mlir::DataLayout & dataLayout )

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 332 of file Ops.cpp.

◆ rewire()

mlir::DeletionKind llzk::array::ReadArrayOp::rewire ( const ::mlir::DestructurableMemorySlot & slot,
::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > & subslots,
::mlir::OpBuilder & builder,
const ::mlir::DataLayout & dataLayout )

Required by DestructurableAllocationOpInterface / SROA pass.

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

◆ storesTo()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ verify()

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

Definition at line 313 of file Ops.cpp.

◆ verifyInvariants()

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

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

◆ verifyInvariantsImpl()

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

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

◆ verifySymbolUses()

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

Definition at line 293 of file Ops.cpp.


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