LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
llzk::polymorphic::detail::StructSpecializationRequest Struct Reference

A struct type that the caller must instantiate, paired with the source use that needs it. More...

#include <StructSpecializationDiscovery.h>

Collaboration diagram for llzk::polymorphic::detail::StructSpecializationRequest:
[legend]

Public Types

enum class  Kind : std::uint8_t { Plain , ArrayElement , RolledCallResult }

Public Attributes

mlir::Operation * site
component::StructType type
llvm::SmallVector< int64_t > arrayIndices
component::StructType familyType
Kind kind

Detailed Description

A struct type that the caller must instantiate, paired with the source use that needs it.

A call inside a loop can require Child<0>, Child<1>, etc. at the same site, so the source operation alone does not identify a request. The kind distinguishes a rolled call result from nested type arguments at that call. For an array element, familyType is the rolled struct type and arrayIndices identifies the element requiring this specialization.

Definition at line 36 of file StructSpecializationDiscovery.h.

Member Enumeration Documentation

◆ Kind

Enumerator
Plain 
ArrayElement 
RolledCallResult 

Definition at line 37 of file StructSpecializationDiscovery.h.

Member Data Documentation

◆ arrayIndices

llvm::SmallVector<int64_t> llzk::polymorphic::detail::StructSpecializationRequest::arrayIndices

Definition at line 41 of file StructSpecializationDiscovery.h.

◆ familyType

component::StructType llzk::polymorphic::detail::StructSpecializationRequest::familyType

Definition at line 42 of file StructSpecializationDiscovery.h.

◆ kind

Kind llzk::polymorphic::detail::StructSpecializationRequest::kind

Definition at line 43 of file StructSpecializationDiscovery.h.

◆ site

mlir::Operation* llzk::polymorphic::detail::StructSpecializationRequest::site

Definition at line 39 of file StructSpecializationDiscovery.h.

◆ type

component::StructType llzk::polymorphic::detail::StructSpecializationRequest::type

Definition at line 40 of file StructSpecializationDiscovery.h.


The documentation for this struct was generated from the following file: