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

Classes

class  NewPodOpGenericAdaptorBase
struct  PodAccessOpInterfaceInterfaceTraits
struct  PodAccessOpInterfaceTrait
struct  PodRefOpInterfaceInterfaceTraits
struct  PodRefOpInterfaceTrait
struct  PodTypeStorage
class  ReadPodOpGenericAdaptorBase
class  WritePodOpGenericAdaptorBase

Functions

mlir::Operation * findNearestLoopCarriedPodAccess (ReadPodOp readOp)
 Return the nearest enclosing SCF loop that carries writes to the same external POD record.
bool appendValuesWithExactTypes (mlir::ValueRange values, mlir::TypeRange expectedTypes, llvm::SmallVectorImpl< mlir::Value > &output)
 Append values only when every entry exactly matches the corresponding expected type.

Function Documentation

◆ appendValuesWithExactTypes()

bool llzk::pod::detail::appendValuesWithExactTypes ( mlir::ValueRange values,
mlir::TypeRange expectedTypes,
llvm::SmallVectorImpl< mlir::Value > & output )
inline

Append values only when every entry exactly matches the corresponding expected type.

On failure, output is left unchanged. POD-to-scalar uses this to avoid leaking partially collected split-array state into later fallback paths.

Definition at line 63 of file TransformationPasses.h.

◆ findNearestLoopCarriedPodAccess()

mlir::Operation * llzk::pod::detail::findNearestLoopCarriedPodAccess ( ReadPodOp readOp)
inline

Return the nearest enclosing SCF loop that carries writes to the same external POD record.

This is used by POD-to-scalar lowering to decide when synthetic split-array backing for a fresh array-of-POD field read must be hoisted out of the loop body so writes remain visible to later iterations.

Definition at line 32 of file TransformationPasses.h.