LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
llzk::pod Namespace Reference

Namespaces

namespace  detail
 Common interface for operations that reference a plain-old-data struct value.
namespace  impl

Classes

class  NewPodOp
class  NewPodOpAdaptor
class  NewPodOpGenericAdaptor
class  PodAccessOpInterface
class  PODDialect
 Dialect for working with plain-old-data structs. More...
class  PodRefOpInterface
class  PodType
class  ReadPodOp
class  ReadPodOpAdaptor
class  ReadPodOpGenericAdaptor
struct  RecordValue
class  WritePodOp
class  WritePodOpAdaptor
class  WritePodOpGenericAdaptor

Typedefs

using UnresolvedOp = OpAsmParser::UnresolvedOperand
using InitializedRecords = mlir::ArrayRef<RecordValue>

Functions

ParseResult parseRecord (AsmParser &parser, StringAttr &name, Type &type)
void printRecord (AsmPrinter &printer, StringAttr name, Type type)
void collectPodMapAttrs (Type type, SmallVector< AffineMapAttr > &mapAttrs)
ParseResult parseRecordInitialization (OpAsmParser &parser, StringAttr &name, UnresolvedOp &operand)
SmallVector< RecordValue > getInitializedRecordValues (ValueRange initialValues, ArrayAttr initializedRecords)
ParseResult parseRecordName (AsmParser &parser, StringAttr &name)
void printRecordName (AsmPrinter &printer, Operation *, StringAttr name)
ParseResult parsePodType (AsmParser &parser, SmallVector< RecordAttr > &records)
void printPodType (AsmPrinter &printer, ArrayRef< RecordAttr > records)
std::unique_ptr<::mlir::Pass > createPodToScalarPass ()
mlir::ParseResult parseRecord (mlir::AsmParser &parser, mlir::StringAttr &name, mlir::Type &type)
void printRecord (mlir::AsmPrinter &printer, mlir::StringAttr name, mlir::Type type)
mlir::SmallVector< RecordValue > getInitializedRecordValues (mlir::ValueRange initialValues, mlir::ArrayAttr initializedRecords)
mlir::ParseResult parseRecordName (mlir::AsmParser &parser, mlir::StringAttr &name)
void printRecordName (mlir::AsmPrinter &printer, mlir::Operation *, mlir::StringAttr name)
mlir::ParseResult parsePodType (mlir::AsmParser &parser, mlir::SmallVector< RecordAttr > &)
void printPodType (mlir::AsmPrinter &printer, mlir::ArrayRef< RecordAttr >)
void collectPodMapAttrs (mlir::Type type, mlir::SmallVector< mlir::AffineMapAttr > &mapAttrs)
 Collect affine maps requiring operand groups when allocating this POD or one of its records.
void registerPodToScalarPass ()
void registerPodToScalarPassPass ()
void registerTransformationPasses ()

Typedef Documentation

◆ InitializedRecords

using llzk::pod::InitializedRecords = mlir::ArrayRef<RecordValue>

Definition at line 25 of file Types.h.

◆ UnresolvedOp

using llzk::pod::UnresolvedOp = OpAsmParser::UnresolvedOperand

Definition at line 391 of file Ops.cpp.

Function Documentation

◆ collectPodMapAttrs() [1/2]

void llzk::pod::collectPodMapAttrs ( mlir::Type type,
mlir::SmallVector< mlir::AffineMapAttr > & mapAttrs )

Collect affine maps requiring operand groups when allocating this POD or one of its records.

Recurse through POD records, but only inspect the shape of array records.

◆ collectPodMapAttrs() [2/2]

void llzk::pod::collectPodMapAttrs ( Type type,
SmallVector< AffineMapAttr > & mapAttrs )

Definition at line 279 of file Ops.cpp.

◆ createPodToScalarPass()

std::unique_ptr<::mlir::Pass > llzk::pod::createPodToScalarPass ( )

Definition at line 91 of file PodToScalarPass.cpp.

◆ getInitializedRecordValues() [1/2]

mlir::SmallVector< RecordValue > llzk::pod::getInitializedRecordValues ( mlir::ValueRange initialValues,
mlir::ArrayAttr initializedRecords )

◆ getInitializedRecordValues() [2/2]

SmallVector< RecordValue > llzk::pod::getInitializedRecordValues ( ValueRange initialValues,
ArrayAttr initializedRecords )

Definition at line 533 of file Ops.cpp.

◆ parsePodType() [1/2]

ParseResult llzk::pod::parsePodType ( AsmParser & parser,
SmallVector< RecordAttr > & records )

Definition at line 91 of file Types.cpp.

◆ parsePodType() [2/2]

mlir::ParseResult llzk::pod::parsePodType ( mlir::AsmParser & parser,
mlir::SmallVector< RecordAttr > &  )

◆ parseRecord() [1/2]

ParseResult llzk::pod::parseRecord ( AsmParser & parser,
StringAttr & name,
Type & type )

Definition at line 27 of file Attrs.cpp.

◆ parseRecord() [2/2]

mlir::ParseResult llzk::pod::parseRecord ( mlir::AsmParser & parser,
mlir::StringAttr & name,
mlir::Type & type )

◆ parseRecordInitialization()

ParseResult llzk::pod::parseRecordInitialization ( OpAsmParser & parser,
StringAttr & name,
UnresolvedOp & operand )

Definition at line 394 of file Ops.cpp.

◆ parseRecordName() [1/2]

ParseResult llzk::pod::parseRecordName ( AsmParser & parser,
StringAttr & name )

Definition at line 678 of file Ops.cpp.

◆ parseRecordName() [2/2]

mlir::ParseResult llzk::pod::parseRecordName ( mlir::AsmParser & parser,
mlir::StringAttr & name )

◆ printPodType() [1/2]

void llzk::pod::printPodType ( AsmPrinter & printer,
ArrayRef< RecordAttr > records )

Definition at line 103 of file Types.cpp.

◆ printPodType() [2/2]

void llzk::pod::printPodType ( mlir::AsmPrinter & printer,
mlir::ArrayRef< RecordAttr >  )

◆ printRecord() [1/2]

void llzk::pod::printRecord ( AsmPrinter & printer,
StringAttr name,
Type type )

Definition at line 35 of file Attrs.cpp.

◆ printRecord() [2/2]

void llzk::pod::printRecord ( mlir::AsmPrinter & printer,
mlir::StringAttr name,
mlir::Type type )

◆ printRecordName() [1/2]

void llzk::pod::printRecordName ( AsmPrinter & printer,
Operation * ,
StringAttr name )

Definition at line 687 of file Ops.cpp.

◆ printRecordName() [2/2]

void llzk::pod::printRecordName ( mlir::AsmPrinter & printer,
mlir::Operation * ,
mlir::StringAttr name )

◆ registerPodToScalarPass()

void llzk::pod::registerPodToScalarPass ( )
inline

Definition at line 106 of file TransformationPasses.h.

◆ registerPodToScalarPassPass()

void llzk::pod::registerPodToScalarPassPass ( )
inline

Definition at line 113 of file TransformationPasses.h.

◆ registerTransformationPasses()

void llzk::pod::registerTransformationPasses ( )
inline

Definition at line 127 of file TransformationPasses.h.