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

Public Types

using Adaptor = WriteArrayOpAdaptor
template<typename RangeT>
using GenericAdaptor = WriteArrayOpGenericAdaptor<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::TypedValue<::mlir::Type > getRvalue ()
::mlir::OpOperand & getArrRefMutable ()
::mlir::MutableOperandRange getIndicesMutable ()
::mlir::OpOperand & getRvalueMutable ()
std::pair< unsigned, unsigned > getODSResultIndexAndLength (unsigned index)
::mlir::Operation::result_range getODSResults (unsigned index)
::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::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
static void build (::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes={})
::mlir::ParseResult parse (::mlir::OpAsmParser &parser, ::mlir::OperationState &result)

Detailed Description

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

Member Typedef Documentation

◆ Adaptor

◆ FoldAdaptor

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

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

◆ GenericAdaptor

template<typename RangeT>
using llzk::array::WriteArrayOp::GenericAdaptor = WriteArrayOpGenericAdaptor<RangeT>

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

Member Function Documentation

◆ build() [1/3]

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

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

◆ build() [2/3]

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

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

◆ build() [3/3]

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

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

◆ canRewire()

bool llzk::array::WriteArrayOp::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 1678 of file Ops.cpp.inc.

◆ canUsesBeRemoved()

bool llzk::array::WriteArrayOp::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 358 of file Ops.cpp.

◆ getArrRef()

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

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

◆ getArrRefMutable()

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

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

◆ getArrRefType()

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

Gets the type of the referenced base array.

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

◆ getAttributeNames()

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

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

◆ getIndices()

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

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

◆ getIndicesMutable()

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

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

◆ getODSOperandIndexAndLength()

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

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

◆ getODSOperands()

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

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

◆ getODSResultIndexAndLength()

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

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

◆ getODSResults()

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

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

◆ getOperationName()

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

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

◆ getRvalue()

::mlir::TypedValue<::mlir::Type > llzk::array::WriteArrayOp::getRvalue ( )
inline

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

◆ getRvalueMutable()

::mlir::OpOperand & llzk::array::WriteArrayOp::getRvalueMutable ( )
inline

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

◆ getStored()

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

Required by PromotableAllocationOpInterface / mem2reg pass.

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

◆ isRead()

bool llzk::array::WriteArrayOp::isRead ( )

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

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

◆ loadsFrom()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ parse()

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

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

◆ print()

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

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

◆ removeBlockingUses()

DeletionKind llzk::array::WriteArrayOp::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 371 of file Ops.cpp.

◆ rewire()

mlir::DeletionKind llzk::array::WriteArrayOp::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 1687 of file Ops.cpp.inc.

◆ storesTo()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ verify()

LogicalResult llzk::array::WriteArrayOp::verify ( )

Definition at line 352 of file Ops.cpp.

◆ verifyInvariants()

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

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

◆ verifyInvariantsImpl()

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

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

◆ verifySymbolUses()

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

Definition at line 345 of file Ops.cpp.


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