|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Private parameter substitution helpers shared by polymorphic transformations. More...
#include "TemplateInstantiation.h"#include "SharedImpl.h"#include "llzk/Dialect/Array/IR/Ops.h"#include "llzk/Dialect/Array/Util/ArrayTypeHelper.h"#include "llzk/Dialect/Constrain/IR/Ops.h"#include "llzk/Dialect/Felt/IR/Ops.h"#include "llzk/Dialect/LLZK/IR/AttributeHelper.h"#include "llzk/Dialect/POD/IR/Types.h"#include "llzk/Util/Debug.h"#include "llzk/Util/SymbolHelper.h"#include "llzk/Util/SymbolTableLLZK.h"#include <mlir/Dialect/Arith/IR/Arith.h>#include <mlir/IR/AttrTypeSubElements.h>#include <llvm/ADT/TypeSwitch.h>Go to the source code of this file.
Namespaces | |
| namespace | llzk |
| namespace | llzk::polymorphic |
| namespace | llzk::polymorphic::detail |
| Common interface for constant parameter-like symbol operations that can be defined within a TemplateOp. | |
Macros | |
| #define | DEBUG_TYPE "llzk-flatten" |
Functions | |
| void | llzk::polymorphic::detail::reportDelayedDiagnostics (Operation *site, SmallVector< Diagnostic > &&diagnostics) |
| FailureOr< ArrayAttr > | llzk::polymorphic::detail::rebaseTemplateParams (SymbolTableCollection &tables, ArrayAttr templateParams, Operation *lookupFrom, ModuleOp destinationRoot, Operation *requestSite) |
| void | llzk::polymorphic::detail::convertCalleesInPlace (Operation *op, const DenseMap< Attribute, Attribute > ¶mNameToValue) |
| void | llzk::polymorphic::detail::evaluateTemplateExprs (TemplateOp templateOp, DenseMap< Attribute, Attribute > ¶mNameToConcrete) |
| Evaluate all TemplateExprOps in templateOp that can be computed from the currently-known concrete param values in paramNameToConcrete, and add their results to the map. | |
| std::optional< Attribute > | llzk::polymorphic::detail::inferUnifiedParam (const UnificationMap &unifyResult, SymbolRefAttr paramName) |
| Return the callee-side unification-derived value for a template parameter, if any. | |
| LogicalResult | llzk::polymorphic::detail::substituteStructBody (StructDefOp newStruct, StructType typeAtDef, const DenseMap< Attribute, Attribute > ¶mNameToConcrete, SmallVector< Diagnostic > &diagnostics) |
| LogicalResult | llzk::polymorphic::detail::substituteFunctionBody (FuncDefOp newFunc, const DenseMap< Attribute, Attribute > ¶mNameToConcrete, SmallVector< Diagnostic > &delayedDiagnostics) |
Private parameter substitution helpers shared by polymorphic transformations.
Callers own cloning, symbol insertion, specialization identity and scheduling.
Definition in file TemplateInstantiation.cpp.
| #define DEBUG_TYPE "llzk-flatten" |
Definition at line 36 of file TemplateInstantiation.cpp.