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

Public Types

using Adaptor = ReadPodOpAdaptor
template<typename RangeT>
using GenericAdaptor = ReadPodOpGenericAdaptor<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::OpOperand & getPodRefMutable ()
std::pair< unsigned, unsigned > getODSResultIndexAndLength (unsigned index)
::mlir::Operation::result_range getODSResults (unsigned index)
::mlir::TypedValue<::mlir::Type > getResult ()
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::Type result, ::mlir::Value pod_ref, ::mlir::FlatSymbolRefAttr record_name)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value pod_ref, ::mlir::FlatSymbolRefAttr record_name)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value pod_ref, ::llvm::StringRef record_name)
static void build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value pod_ref, ::llvm::StringRef record_name)
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 444 of file Ops.h.inc.

Member Typedef Documentation

◆ Adaptor

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

◆ FoldAdaptor

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

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

◆ GenericAdaptor

template<typename RangeT>
using llzk::pod::ReadPodOp::GenericAdaptor = ReadPodOpGenericAdaptor<RangeT>

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

◆ Properties

Member Function Documentation

◆ build() [1/5]

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

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

◆ build() [2/5]

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

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

◆ build() [3/5]

void llzk::pod::ReadPodOp::build ( ::mlir::OpBuilder & odsBuilder,
::mlir::OperationState & odsState,
::mlir::Type result,
::mlir::Value pod_ref,
::mlir::FlatSymbolRefAttr record_name )
static

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

◆ build() [4/5]

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

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

◆ build() [5/5]

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

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

◆ canRewire()

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

◆ canUsesBeRemoved()

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

◆ computePropertiesHash()

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

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

◆ getAttributeNames()

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

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

◆ getInherentAttr()

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

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

◆ getODSOperandIndexAndLength()

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

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

◆ getODSOperands()

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

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

◆ getODSResultIndexAndLength()

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

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

◆ getODSResults()

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

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

◆ getOperationName()

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

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

◆ getPodRef()

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

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

◆ getPodRefMutable()

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

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

◆ getPodRefType()

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

Gets the type of the referenced pod.

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

◆ getPropertiesAsAttr()

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

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

◆ getRecordName()

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

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

◆ getRecordNameAttr()

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

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

◆ getRecordNameAttrName() [1/2]

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

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

◆ getRecordNameAttrName() [2/2]

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

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

◆ getResult()

::mlir::TypedValue<::mlir::Type > llzk::pod::ReadPodOp::getResult ( )
inline

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

◆ getStored()

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

Required by PromotableAllocationOpInterface / mem2reg pass.

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

◆ isRead()

bool llzk::pod::ReadPodOp::isRead ( )

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

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

◆ loadsFrom()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ parse()

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

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

◆ populateInherentAttrs()

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

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

◆ print()

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

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

◆ readProperties()

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

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

◆ removeBlockingUses()

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

◆ rewire()

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

◆ setInherentAttr()

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

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

◆ setPropertiesFromAttr()

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

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

◆ setRecordName()

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

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

◆ setRecordNameAttr()

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

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

◆ storesTo()

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

Required by PromotableMemOpInterface / mem2reg pass.

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

◆ verify()

LogicalResult llzk::pod::ReadPodOp::verify ( )

Definition at line 501 of file Ops.cpp.

◆ verifyInherentAttrs()

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

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

◆ verifyInvariants()

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

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

◆ verifyInvariantsImpl()

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

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

◆ writeProperties()

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

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


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