LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
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>>
using Properties = FoldAdaptor::Properties

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::ArrayType > getArrRef ()
::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.
bool loadsFromDiscardableAllocation (::mlir::Value ptr)
 Required by DiscardableAllocationAccessorOpInterface / unused allocation cleanup.
bool storesToDiscardableAllocation (::mlir::Value ptr)
 Required by DiscardableAllocationAccessorOpInterface / unused allocation cleanup.
bool canEraseAsDeadStoreTo (::mlir::Value ptr, const ::mlir::DataLayout &dataLayout)
 Required by DiscardableAllocationAccessorOpInterface / unused allocation cleanup.
::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 ()
::llvm::LogicalResult setPropertiesFromAttr (Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Attribute getPropertiesAsAttr (::mlir::MLIRContext *ctx, const Properties &prop)
static llvm::hash_code computePropertiesHash (const Properties &prop)
static std::optional< mlir::Attribute > getInherentAttr (::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void setInherentAttr (Properties &prop, llvm::StringRef name, mlir::Attribute value)
static void populateInherentAttrs (::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInherentAttrs (::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
static WriteArrayOp create (::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
static WriteArrayOp create (::mlir::ImplicitLocOpBuilder &builder, ::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 WriteArrayOp create (::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
static WriteArrayOp create (::mlir::ImplicitLocOpBuilder &builder, ::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={})
static WriteArrayOp create (::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes={})
static WriteArrayOp create (::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes={})
static void build (::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute > discardableAttributes={})
static WriteArrayOp create (::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute > discardableAttributes={})
static WriteArrayOp create (::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute > discardableAttributes={})
::mlir::ParseResult parse (::mlir::OpAsmParser &parser, ::mlir::OperationState &result)

Static Public Attributes

static constexpr int odsIndex_arr_ref = 0
static constexpr int odsIndex_indices = 1
static constexpr int odsIndex_rvalue = 2

Detailed Description

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

Member Typedef Documentation

◆ Adaptor

◆ FoldAdaptor

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

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

◆ GenericAdaptor

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

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

◆ Properties

Member Function Documentation

◆ build() [1/4]

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 2246 of file Ops.cpp.inc.

◆ build() [2/4]

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

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

◆ build() [3/4]

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 2226 of file Ops.cpp.inc.

◆ build() [4/4]

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 2208 of file Ops.cpp.inc.

◆ canEraseAsDeadStoreTo()

bool llzk::array::WriteArrayOp::canEraseAsDeadStoreTo ( ::mlir::Value ptr,
const ::mlir::DataLayout & dataLayout )

Required by DiscardableAllocationAccessorOpInterface / unused allocation cleanup.

Definition at line 2469 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 2421 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 422 of file Ops.cpp.

◆ computePropertiesHash()

llvm::hash_code llzk::array::WriteArrayOp::computePropertiesHash ( const Properties & prop)
static

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

◆ create() [1/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::ImplicitLocOpBuilder & builder,
::mlir::TypeRange resultTypes,
::mlir::Value arr_ref,
::mlir::ValueRange indices,
::mlir::Value rvalue )
static

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

◆ create() [2/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::ImplicitLocOpBuilder & builder,
::mlir::TypeRange resultTypes,
::mlir::ValueRange operands,
::llvm::ArrayRef<::mlir::NamedAttribute > attributes = {} )
static

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

◆ create() [3/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::ImplicitLocOpBuilder & builder,
::mlir::TypeRange resultTypes,
::mlir::ValueRange operands,
const Properties & properties,
::llvm::ArrayRef<::mlir::NamedAttribute > discardableAttributes = {} )
static

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

◆ create() [4/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::ImplicitLocOpBuilder & builder,
::mlir::Value arr_ref,
::mlir::ValueRange indices,
::mlir::Value rvalue )
static

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

◆ create() [5/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::OpBuilder & builder,
::mlir::Location location,
::mlir::TypeRange resultTypes,
::mlir::Value arr_ref,
::mlir::ValueRange indices,
::mlir::Value rvalue )
static

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

◆ create() [6/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::OpBuilder & builder,
::mlir::Location location,
::mlir::TypeRange resultTypes,
::mlir::ValueRange operands,
::llvm::ArrayRef<::mlir::NamedAttribute > attributes = {} )
static

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

◆ create() [7/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::OpBuilder & builder,
::mlir::Location location,
::mlir::TypeRange resultTypes,
::mlir::ValueRange operands,
const Properties & properties,
::llvm::ArrayRef<::mlir::NamedAttribute > discardableAttributes = {} )
static

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

◆ create() [8/8]

WriteArrayOp llzk::array::WriteArrayOp::create ( ::mlir::OpBuilder & builder,
::mlir::Location location,
::mlir::Value arr_ref,
::mlir::ValueRange indices,
::mlir::Value rvalue )
static

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

◆ getArrRef()

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

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

◆ getArrRefMutable()

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

Definition at line 1421 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 1480 of file Ops.h.inc.

◆ getAttributeNames()

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

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

◆ getIndices()

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

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

◆ getIndicesMutable()

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

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

◆ getInherentAttr()

std::optional< mlir::Attribute > llzk::array::WriteArrayOp::getInherentAttr ( ::mlir::MLIRContext * ctx,
const Properties & prop,
llvm::StringRef name )
static

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

◆ getODSOperandIndexAndLength()

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

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

◆ getODSOperands()

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

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

◆ getODSResultIndexAndLength()

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

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

◆ getODSResults()

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

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

◆ getOperationName()

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

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

◆ getPropertiesAsAttr()

mlir::Attribute llzk::array::WriteArrayOp::getPropertiesAsAttr ( ::mlir::MLIRContext * ctx,
const Properties & prop )
static

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

◆ getRvalue()

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

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

◆ getRvalueMutable()

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

Definition at line 1427 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 2448 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 2454 of file Ops.cpp.inc.

◆ loadsFrom()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ loadsFromDiscardableAllocation()

bool llzk::array::WriteArrayOp::loadsFromDiscardableAllocation ( ::mlir::Value ptr)

Required by DiscardableAllocationAccessorOpInterface / unused allocation cleanup.

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

◆ parse()

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

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

◆ populateInherentAttrs()

void llzk::array::WriteArrayOp::populateInherentAttrs ( ::mlir::MLIRContext * ctx,
const Properties & prop,
::mlir::NamedAttrList & attrs )
static

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

◆ print()

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

Definition at line 2389 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 435 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 2430 of file Ops.cpp.inc.

◆ setInherentAttr()

void llzk::array::WriteArrayOp::setInherentAttr ( Properties & prop,
llvm::StringRef name,
mlir::Attribute value )
static

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

◆ setPropertiesFromAttr()

llvm::LogicalResult llzk::array::WriteArrayOp::setPropertiesFromAttr ( Properties & prop,
::mlir::Attribute attr,
::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError )
static

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

◆ storesTo()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ storesToDiscardableAllocation()

bool llzk::array::WriteArrayOp::storesToDiscardableAllocation ( ::mlir::Value ptr)

Required by DiscardableAllocationAccessorOpInterface / unused allocation cleanup.

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

◆ verify()

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

Definition at line 417 of file Ops.cpp.

◆ verifyInherentAttrs()

llvm::LogicalResult llzk::array::WriteArrayOp::verifyInherentAttrs ( ::mlir::OperationName opName,
::mlir::NamedAttrList & attrs,
llvm::function_ref<::mlir::InFlightDiagnostic()> emitError )
static

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

◆ verifyInvariants()

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

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

◆ verifyInvariantsImpl()

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

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

◆ verifySymbolUses()

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

Definition at line 410 of file Ops.cpp.

Member Data Documentation

◆ odsIndex_arr_ref

int llzk::array::WriteArrayOp::odsIndex_arr_ref = 0
staticconstexpr

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

◆ odsIndex_indices

int llzk::array::WriteArrayOp::odsIndex_indices = 1
staticconstexpr

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

◆ odsIndex_rvalue

int llzk::array::WriteArrayOp::odsIndex_rvalue = 2
staticconstexpr

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


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