LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
ValueCopy.h File Reference
#include <mlir/IR/Builders.h>
#include <mlir/IR/DialectInterface.h>
#include <mlir/Support/LLVM.h>
#include <string>
Include dependency graph for ValueCopy.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llzk::ValueCopyDialectInterface
 Dialect hook for materializing independent storage for mutable value types. More...

Namespaces

namespace  llzk

Functions

bool llzk::requiresValueCopy (mlir::Type type)
 Return whether copying type requires the checked materialization path.
bool llzk::canMaterializeValueCopy (mlir::Type type)
 Return whether type has supported value-copy semantics.
bool llzk::requiresUnsupportedValueCopy (mlir::Type type)
 Return whether type requires a value copy that cannot currently be materialized.
std::string llzk::getValueCopyFailureReason (mlir::Type type)
 Explain the unsupported type or recursive copy requirement.
mlir::FailureOr< mlir::Value > llzk::materializeValueCopy (mlir::OpBuilder &builder, mlir::Location loc, mlir::Value source)
 Return source for immutable scalar values, identity-bearing handles, and aggregates without mutable payload, or materialize recursively independent storage for a supported mutable aggregate.