|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
A struct type that the caller must instantiate, paired with the source use that needs it. More...
#include <StructSpecializationDiscovery.h>
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 |
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.
|
strong |
| Enumerator | |
|---|---|
| Plain | |
| ArrayElement | |
| RolledCallResult | |
Definition at line 37 of file StructSpecializationDiscovery.h.
| llvm::SmallVector<int64_t> llzk::polymorphic::detail::StructSpecializationRequest::arrayIndices |
Definition at line 41 of file StructSpecializationDiscovery.h.
| component::StructType llzk::polymorphic::detail::StructSpecializationRequest::familyType |
Definition at line 42 of file StructSpecializationDiscovery.h.
| Kind llzk::polymorphic::detail::StructSpecializationRequest::kind |
Definition at line 43 of file StructSpecializationDiscovery.h.
| mlir::Operation* llzk::polymorphic::detail::StructSpecializationRequest::site |
Definition at line 39 of file StructSpecializationDiscovery.h.
| component::StructType llzk::polymorphic::detail::StructSpecializationRequest::type |
Definition at line 40 of file StructSpecializationDiscovery.h.