LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
llzk::array::WriteArrayOp Class Reference
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::Value getRvalue ()
 
::mlir::OpOperand & getArrRefMutable ()
 
::mlir::MutableOperandRange getIndicesMutable ()
 
::mlir::OpOperand & getRvalueMutable ()
 
std::pair< unsigned, unsigned > getODSResultIndexAndLength (unsigned index)
 
::mlir::Operation::result_range getODSResults (unsigned index)
 
::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::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 850 of file Ops.h.inc.

Member Typedef Documentation

◆ Adaptor

◆ FoldAdaptor

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

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

◆ GenericAdaptor

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

Definition at line 856 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 1816 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 1808 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 1802 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 )

Required by DestructurableAllocationOpInterface / SROA pass.

Definition at line 1954 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 )

Required by PromotableMemOpInterface / mem2reg pass.

Definition at line 352 of file Ops.cpp.

◆ getArrRef()

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

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

◆ getArrRefMutable()

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

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

◆ getArrRefType()

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

Gets the type of the referenced base array.

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

◆ getAttributeNames()

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

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

◆ getIndices()

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

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

◆ getIndicesMutable()

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

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

◆ getODSOperandIndexAndLength()

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

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

◆ getODSOperands()

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

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

◆ getODSResultIndexAndLength()

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

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

◆ getODSResults()

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

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

◆ getOperationName()

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

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

◆ getRvalue()

mlir::Value llzk::array::WriteArrayOp::getRvalue ( )

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

◆ getRvalueMutable()

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

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

◆ getStored()

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

Required by PromotableAllocationOpInterface / mem2reg pass.

Definition at line 1982 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 1987 of file Ops.cpp.inc.

◆ loadsFrom()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ parse()

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

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

◆ print()

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

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

◆ removeBlockingUses()

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

◆ rewire()

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

Required by DestructurableAllocationOpInterface / SROA pass.

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

◆ storesTo()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ verify()

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

Definition at line 346 of file Ops.cpp.

◆ verifyInvariants()

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

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

◆ verifyInvariantsImpl()

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

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

◆ verifySymbolUses()

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

Definition at line 339 of file Ops.cpp.


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