|
LLZK 0.1.0
Veridise's ZK Language IR
|
#include <IntervalAnalysis.h>
Public Member Functions | |
| IntervalDataFlowAnalysis (mlir::DataFlowSolver &dataflowSolver, llvm::SMTSolverRef smt, const Field &f, bool propInputConstraints) | |
| mlir::LogicalResult | visitOperation (mlir::Operation *op, mlir::ArrayRef< const Lattice * > operands, mlir::ArrayRef< Lattice * > results) override |
| Visit an operation with the lattices of its operands. | |
| llvm::SMTExprRef | getOrCreateSymbol (const SourceRef &r) |
| Either return the existing SMT expression that corresponds to the SourceRef, or create one. | |
| const llvm::DenseMap< SourceRef, llvm::DenseSet< Lattice * > > & | getFieldReadResults () const |
| const llvm::DenseMap< SourceRef, ExpressionValue > & | getFieldWriteResults () const |
| Public Member Functions inherited from llzk::dataflow::SparseForwardDataFlowAnalysis< IntervalAnalysisLattice > | |
| SparseForwardDataFlowAnalysis (mlir::DataFlowSolver &s) | |
| virtual void | visitExternalCall (mlir::CallOpInterface call, mlir::ArrayRef< const IntervalAnalysisLattice * > argumentLattices, mlir::ArrayRef< IntervalAnalysisLattice * > resultLattices) |
| Visit a call operation to an externally defined function given the lattices of its arguments. | |
| virtual void | visitNonControlFlowArguments (mlir::Operation *op, const mlir::RegionSuccessor &successor, mlir::ArrayRef< IntervalAnalysisLattice * > argLattices, unsigned firstIndex) |
| Given an operation with possible region control-flow, the lattices of the operands, and a region successor, compute the lattice values for block arguments that are not accounted for by the branching control flow (ex. | |
| Public Member Functions inherited from llzk::dataflow::AbstractSparseForwardDataFlowAnalysis | |
| mlir::LogicalResult | initialize (mlir::Operation *top) override |
| Initialize the analysis by visiting every owner of an SSA value: all operations and blocks. | |
| mlir::LogicalResult | visit (mlir::ProgramPoint *point) override |
| Visit a program point. | |
Additional Inherited Members | |
| Protected Member Functions inherited from llzk::dataflow::SparseForwardDataFlowAnalysis< IntervalAnalysisLattice > | |
| IntervalAnalysisLattice * | getLatticeElement (mlir::Value value) override |
| Get the lattice element for a value. | |
| const IntervalAnalysisLattice * | getLatticeElementFor (mlir::ProgramPoint *point, mlir::Value value) |
| Get the lattice element for a value and create a dependency on the provided program point. | |
| void | setAllToEntryStates (mlir::ArrayRef< IntervalAnalysisLattice * > lattices) |
| Protected Member Functions inherited from llzk::dataflow::AbstractSparseForwardDataFlowAnalysis | |
| AbstractSparseForwardDataFlowAnalysis (mlir::DataFlowSolver &solver) | |
| const AbstractSparseLattice * | getLatticeElementFor (mlir::ProgramPoint *point, mlir::Value value) |
| Get a read-only lattice element for a value and add it as a dependency to a program point. | |
| void | setAllToEntryStates (mlir::ArrayRef< AbstractSparseLattice * > lattices) |
| void | join (AbstractSparseLattice *lhs, const AbstractSparseLattice &rhs) |
| Join the lattice element and propagate and update if it changed. | |
| Protected Attributes inherited from llzk::dataflow::AbstractSparseForwardDataFlowAnalysis | |
| mlir::SymbolTableCollection | tables |
| LLZK: Added for use of symbol helper caching. | |
Definition at line 250 of file IntervalAnalysis.h.
|
inlineexplicit |
Definition at line 260 of file IntervalAnalysis.h.
|
inline |
Definition at line 278 of file IntervalAnalysis.h.
|
inline |
Definition at line 282 of file IntervalAnalysis.h.
| llvm::SMTExprRef llzk::IntervalDataFlowAnalysis::getOrCreateSymbol | ( | const SourceRef & | r | ) |
Either return the existing SMT expression that corresponds to the SourceRef, or create one.
| r |
Definition at line 597 of file IntervalAnalysis.cpp.
|
overridevirtual |
Visit an operation with the lattices of its operands.
This function is expected to set the lattices of the operation's results.
Implements llzk::dataflow::SparseForwardDataFlowAnalysis< IntervalAnalysisLattice >.
Definition at line 380 of file IntervalAnalysis.cpp.