|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Namespaces | |
| namespace | detail |
| Common interface for constant parameter-like symbol operations that can be defined within a TemplateOp. | |
| namespace | impl |
Classes | |
| class | ApplyMapOp |
| class | ApplyMapOpAdaptor |
| class | ApplyMapOpGenericAdaptor |
| class | ConstReadOp |
| class | ConstReadOpAdaptor |
| class | ConstReadOpGenericAdaptor |
| struct | FlatteningPassOptions |
| class | PolymorphicDialect |
| LLZK types and operations to support templated/parameterized structs. More... | |
| class | StructSpecializationResolver |
| Resolve concrete struct specializations referenced by poly.family metadata. More... | |
| class | TemplateExprOp |
| class | TemplateExprOpAdaptor |
| class | TemplateExprOpGenericAdaptor |
| struct | TemplateMonomorphizationPassOptions |
| class | TemplateOp |
| class | TemplateOpAdaptor |
| class | TemplateOpGenericAdaptor |
| class | TemplateParamOp |
| class | TemplateParamOpAdaptor |
| class | TemplateParamOpGenericAdaptor |
| class | TemplateSymbolBindingOpInterface |
| class | TypeVarType |
| class | UnifiableCastOp |
| class | UnifiableCastOpAdaptor |
| class | UnifiableCastOpGenericAdaptor |
| struct | WildcardArraySpecializationPassOptions |
| class | YieldOp |
| class | YieldOpAdaptor |
| class | YieldOpGenericAdaptor |
Concepts | |
| concept | TemplateSymbolBindingOp |
Enumerations | |
| enum class | FlatteningCleanupMode : uint32_t { Unspecified = 0 , Disabled = 1 , Preimage = 2 , ConcreteAsRoot = 3 , MainAsRoot = 4 } |
Variables | |
| constexpr llvm::StringLiteral | TEMPLATE_NAME_PATTERN_ATTR = "poly.name_pattern" |
| Metadata carried across transformation passes preserving the literal chunks of a partially-instantiated template's logical name. | |
| constexpr llvm::StringLiteral | SPECIALIZATION_ID_ATTR = "poly.specialization_id" |
| Metadata on concrete struct clones and rolled affine family uses. | |
| constexpr llvm::StringLiteral | SPECIALIZATION_ORIGIN_ATTR = "poly.origin" |
| constexpr llvm::StringLiteral | SPECIALIZATION_ARGUMENTS_ATTR = "poly.arguments" |
| constexpr llvm::StringLiteral | FAMILY_ATTR = "poly.family" |
| constexpr llvm::StringLiteral | FAMILY_SPECIALIZATIONS_ATTR = "poly.family_specializations" |
| constexpr llvm::StringLiteral | FAMILY_INDICES_KEY = "indices" |
| constexpr llvm::StringLiteral | FAMILY_SPECIALIZATION_KEY = "specialization" |
| constexpr llvm::StringLiteral | FAMILY_TYPE_KEY = "type" |
| The original affine-parameterized struct family, paired with element indices and a concrete specialization ID in each poly.family record. | |
|
strong |
| Enumerator | |
|---|---|
| Unspecified | |
| Disabled | |
| Preimage | |
| ConcreteAsRoot | |
| MainAsRoot | |
Definition at line 13 of file TransformationPassEnums.h.inc.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createConstraintFlatteningPass | ( | ) |
Definition at line 96 of file ConstraintFlatteningPass.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createEmptyTemplateRemovalPass | ( | ) |
Definition at line 183 of file EmptyTemplateRemovalPass.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createFlatteningPass | ( | ) |
Definition at line 305 of file FlatteningPass.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createFlatteningPass | ( | FlatteningPassOptions | options | ) |
Definition at line 309 of file FlatteningPass.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createTemplateMonomorphizationPass | ( | ) |
Definition at line 412 of file TemplateMonomorphization.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createTemplateMonomorphizationPass | ( | TemplateMonomorphizationPassOptions | options | ) |
Definition at line 416 of file TemplateMonomorphization.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createTypeVarInferencePass | ( | ) |
Definition at line 503 of file TypeVarInferencePass.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createWildcardArraySpecializationPass | ( | ) |
Definition at line 606 of file WildcardArraySpecializationPass.cpp.
| std::unique_ptr<::mlir::Pass > llzk::polymorphic::createWildcardArraySpecializationPass | ( | WildcardArraySpecializationPassOptions | options | ) |
Definition at line 610 of file WildcardArraySpecializationPass.cpp.
|
inlineconstexpr |
Definition at line 24 of file TransformationPassEnums.h.inc.
|
inline |
Whether another signed iteration exists after current, for current < upper and a positive step.
Unsigned subtraction represents the full mathematical distance even when the signed difference would overflow. If another iteration exists, current + step is strictly below upper and cannot overflow.
Definition at line 19 of file StaticLoop.h.
| bool llzk::polymorphic::isInTemplate | ( | mlir::Operation * | op | ) |
Return true iff the given Operation is nested somewhere within a TemplateOp.
|
inline |
Definition at line 630 of file TransformationPasses.h.
|
inline |
Definition at line 637 of file TransformationPasses.h.
|
inline |
Definition at line 651 of file TransformationPasses.h.
|
inline |
Definition at line 658 of file TransformationPasses.h.
|
inline |
Definition at line 672 of file TransformationPasses.h.
|
inline |
Definition at line 679 of file TransformationPasses.h.
|
inline |
Definition at line 693 of file TransformationPasses.h.
|
inline |
Definition at line 700 of file TransformationPasses.h.
|
inline |
Definition at line 756 of file TransformationPasses.h.
|
inline |
Definition at line 714 of file TransformationPasses.h.
|
inline |
Definition at line 721 of file TransformationPasses.h.
|
inline |
Definition at line 735 of file TransformationPasses.h.
|
inline |
Definition at line 742 of file TransformationPasses.h.
| inline ::llvm::StringRef llzk::polymorphic::stringifyEnum | ( | FlatteningCleanupMode | enumValue | ) |
Definition at line 29 of file TransformationPassEnums.h.inc.
| llvm::StringRef llzk::polymorphic::stringifyFlatteningCleanupMode | ( | FlatteningCleanupMode | val | ) |
Definition at line 12 of file TransformationPassEnums.cpp.inc.
| ::std::optional< EnumType > llzk::polymorphic::symbolizeEnum | ( | ::llvm::StringRef | ) |
| inline ::std::optional< FlatteningCleanupMode > llzk::polymorphic::symbolizeEnum< FlatteningCleanupMode > | ( | ::llvm::StringRef | str | ) |
Definition at line 34 of file TransformationPassEnums.h.inc.
| std::optional< FlatteningCleanupMode > llzk::polymorphic::symbolizeFlatteningCleanupMode | ( | ::llvm::StringRef | str | ) |
Definition at line 23 of file TransformationPassEnums.cpp.inc.
| std::optional< FlatteningCleanupMode > llzk::polymorphic::symbolizeFlatteningCleanupMode | ( | uint32_t | value | ) |
Definition at line 32 of file TransformationPassEnums.cpp.inc.
| mlir::FailureOr< TemplateOp > llzk::polymorphic::verifyInTemplate | ( | mlir::Operation * | op | ) |
If the given Operation is nested somewhere within a TemplateOp, return a success result containing that TemplateOp.
Otherwise emit an error and return a failure result.
| FailureOr< TemplateOp > llzk::polymorphic::verifyInTemplate | ( | Operation * | op | ) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Metadata carried across transformation passes preserving the literal chunks of a partially-instantiated template's logical name.
When present, the attribute has P+1 StringAttr chunks around the P current template parameters. The gap between chunks i and i+1 represents current parameter i. The chunks are literal data; later transforms never recover semantic positions from the physical symbol name.