|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Compatibility adapter over MLIR sparse forward data-flow analysis. More...
#include <SparseAnalysis.h>
Public Member Functions | |
| mlir::LogicalResult | initialize (mlir::Operation *top) override |
| Initialize the analysis while preserving the program-order visitation of the old LLZK sparse analysis port. | |
| mlir::LogicalResult | visit (mlir::ProgramPoint *point) override |
| Delegate block starts and result-producing operations to upstream MLIR. | |
Protected Member Functions | |
| AbstractSparseForwardDataFlowAnalysis (mlir::DataFlowSolver &s) | |
Protected Attributes | |
| mlir::SymbolTableCollection | tables |
| LLZK: Kept as a compatibility cache for analyses that derived from the old ported class and used this protected member. | |
Compatibility adapter over MLIR sparse forward data-flow analysis.
Upstream MLIR owns the ordinary sparse forward analysis behavior, including result-producing operation transfer, block-start handling, block argument propagation, call/result propagation, region successor propagation, and interaction with Executable / PredecessorState.
LLZK additionally needs transfer functions to run for live operations with no results because several important LLZK effects are modeled that way: constraints, assertions, member writes, and array writes. This adapter keeps the historical LLZK class name and restores only that zero-result operation path.
Definition at line 62 of file SparseAnalysis.h.
|
explicitprotected |
Definition at line 30 of file SparseAnalysis.cpp.
|
override |
Initialize the analysis while preserving the program-order visitation of the old LLZK sparse analysis port.
Result-producing operations and block starts are still visited through upstream MLIR. LLZK only handles the extra zero-result operation path.
Definition at line 33 of file SparseAnalysis.cpp.
|
override |
Delegate block starts and result-producing operations to upstream MLIR.
Only zero-result operations need LLZK-specific handling.
Definition at line 47 of file SparseAnalysis.cpp.
|
protected |
LLZK: Kept as a compatibility cache for analyses that derived from the old ported class and used this protected member.
Definition at line 83 of file SparseAnalysis.h.