LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Inheritance diagram for llzk::pod::WritePodOp:
[legend]
Collaboration diagram for llzk::pod::WritePodOp:
[legend]

Public Types

using Adaptor = WritePodOpAdaptor
template<typename RangeT>
using GenericAdaptor = WritePodOpGenericAdaptor<RangeT>
using FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>>
using Properties = FoldAdaptor::Properties

Public Member Functions

static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames ()
::mlir::StringAttr getRecordNameAttrName ()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength (unsigned index)
::mlir::Operation::operand_range getODSOperands (unsigned index)
::mlir::TypedValue<::llzk::pod::PodTypegetPodRef ()
::mlir::TypedValue<::mlir::Type > getValue ()
::mlir::OpOperand & getPodRefMutable ()
::mlir::OpOperand & getValueMutable ()
std::pair< unsigned, unsigned > getODSResultIndexAndLength (unsigned index)
::mlir::Operation::result_range getODSResults (unsigned index)
void writeProperties (::mlir::DialectBytecodeWriter &writer)
::mlir::FlatSymbolRefAttr getRecordNameAttr ()
::llvm::StringRef getRecordName ()
void setRecordNameAttr (::mlir::FlatSymbolRefAttr attr)
void setRecordName (::llvm::StringRef attrValue)
::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 isRead ()
 Return true if the op is a read, false if it's a write.
void print (::mlir::OpAsmPrinter &_odsPrinter)
inline ::llzk::pod::PodType getPodRefType ()
 Gets the type of the referenced pod.

Static Public Member Functions

::mlir::StringAttr getRecordNameAttrName (::mlir::OperationName name)
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)
::llvm::LogicalResult readProperties (::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value pod_ref, ::mlir::FlatSymbolRefAttr record_name, ::mlir::Value value)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value pod_ref, ::mlir::FlatSymbolRefAttr record_name, ::mlir::Value value)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value pod_ref, ::llvm::StringRef record_name, ::mlir::Value value)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value pod_ref, ::llvm::StringRef record_name, ::mlir::Value value)
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 673 of file Ops.h.inc.

Member Typedef Documentation

◆ Adaptor

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

◆ FoldAdaptor

using llzk::pod::WritePodOp::FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>>

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

◆ GenericAdaptor

template<typename RangeT>
using llzk::pod::WritePodOp::GenericAdaptor = WritePodOpGenericAdaptor<RangeT>

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

◆ Properties

Member Function Documentation

◆ build() [1/5]

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

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

◆ build() [2/5]

void llzk::pod::WritePodOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::TypeRange resultTypes,
::mlir::Value pod_ref,
::llvm::StringRef record_name,
::mlir::Value value )
static

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

◆ build() [3/5]

void llzk::pod::WritePodOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::TypeRange resultTypes,
::mlir::Value pod_ref,
::mlir::FlatSymbolRefAttr record_name,
::mlir::Value value )
static

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

◆ build() [4/5]

void llzk::pod::WritePodOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::Value pod_ref,
::llvm::StringRef record_name,
::mlir::Value value )
static

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

◆ build() [5/5]

void llzk::pod::WritePodOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::Value pod_ref,
::mlir::FlatSymbolRefAttr record_name,
::mlir::Value value )
static

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

◆ canRewire()

bool llzk::pod::WritePodOp::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 1168 of file Ops.cpp.inc.

◆ canUsesBeRemoved()

bool llzk::pod::WritePodOp::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 1201 of file Ops.cpp.inc.

◆ computePropertiesHash()

llvm::hash_code llzk::pod::WritePodOp::computePropertiesHash ( const Properties & prop)
static

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

◆ getAttributeNames()

::llvm::ArrayRef<::llvm::StringRef > llzk::pod::WritePodOp::getAttributeNames ( )
inline

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

◆ getInherentAttr()

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

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

◆ getODSOperandIndexAndLength()

std::pair< unsigned, unsigned > llzk::pod::WritePodOp::getODSOperandIndexAndLength ( unsigned index)
inline

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

◆ getODSOperands()

::mlir::Operation::operand_range llzk::pod::WritePodOp::getODSOperands ( unsigned index)
inline

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

◆ getODSResultIndexAndLength()

std::pair< unsigned, unsigned > llzk::pod::WritePodOp::getODSResultIndexAndLength ( unsigned index)
inline

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

◆ getODSResults()

::mlir::Operation::result_range llzk::pod::WritePodOp::getODSResults ( unsigned index)
inline

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

◆ getOperationName()

constexpr ::llvm::StringLiteral llzk::pod::WritePodOp::getOperationName ( )
inlinestatic

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

◆ getPodRef()

::mlir::TypedValue<::llzk::pod::PodType > llzk::pod::WritePodOp::getPodRef ( )
inline

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

◆ getPodRefMutable()

::mlir::OpOperand & llzk::pod::WritePodOp::getPodRefMutable ( )
inline

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

◆ getPodRefType()

inline ::llzk::pod::PodType llzk::pod::WritePodOp::getPodRefType ( )
inline

Gets the type of the referenced pod.

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

◆ getPropertiesAsAttr()

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

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

◆ getRecordName()

llvm::StringRef llzk::pod::WritePodOp::getRecordName ( )

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

◆ getRecordNameAttr()

::mlir::FlatSymbolRefAttr llzk::pod::WritePodOp::getRecordNameAttr ( )
inline

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

◆ getRecordNameAttrName() [1/2]

::mlir::StringAttr llzk::pod::WritePodOp::getRecordNameAttrName ( )
inline

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

◆ getRecordNameAttrName() [2/2]

::mlir::StringAttr llzk::pod::WritePodOp::getRecordNameAttrName ( ::mlir::OperationName name)
inlinestatic

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

◆ getStored()

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

Required by PromotableAllocationOpInterface / mem2reg pass.

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

◆ getValue()

::mlir::TypedValue<::mlir::Type > llzk::pod::WritePodOp::getValue ( )
inline

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

◆ getValueMutable()

::mlir::OpOperand & llzk::pod::WritePodOp::getValueMutable ( )
inline

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

◆ isRead()

bool llzk::pod::WritePodOp::isRead ( )

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

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

◆ loadsFrom()

bool llzk::pod::WritePodOp::loadsFrom ( const ::mlir::MemorySlot & slot)

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ parse()

mlir::ParseResult llzk::pod::WritePodOp::parse ( ::mlir::OpAsmParser & parser,
::mlir::OperationState & result )
static

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

◆ populateInherentAttrs()

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

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

◆ print()

void llzk::pod::WritePodOp::print ( ::mlir::OpAsmPrinter & _odsPrinter)

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

◆ readProperties()

llvm::LogicalResult llzk::pod::WritePodOp::readProperties ( ::mlir::DialectBytecodeReader & reader,
::mlir::OperationState & state )
static

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

◆ removeBlockingUses()

mlir::DeletionKind llzk::pod::WritePodOp::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 1215 of file Ops.cpp.inc.

◆ rewire()

mlir::DeletionKind llzk::pod::WritePodOp::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 1177 of file Ops.cpp.inc.

◆ setInherentAttr()

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

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

◆ setPropertiesFromAttr()

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

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

◆ setRecordName()

void llzk::pod::WritePodOp::setRecordName ( ::llvm::StringRef attrValue)

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

◆ setRecordNameAttr()

void llzk::pod::WritePodOp::setRecordNameAttr ( ::mlir::FlatSymbolRefAttr attr)
inline

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

◆ storesTo()

bool llzk::pod::WritePodOp::storesTo ( const ::mlir::MemorySlot & slot)

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ verify()

LogicalResult llzk::pod::WritePodOp::verify ( )

Definition at line 525 of file Ops.cpp.

◆ verifyInherentAttrs()

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

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

◆ verifyInvariants()

llvm::LogicalResult llzk::pod::WritePodOp::verifyInvariants ( )

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

◆ verifyInvariantsImpl()

llvm::LogicalResult llzk::pod::WritePodOp::verifyInvariantsImpl ( )

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

◆ writeProperties()

void llzk::pod::WritePodOp::writeProperties ( ::mlir::DialectBytecodeWriter & writer)

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


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