LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Inheritance diagram for llzk::PredecessorAnalysis:
[legend]
Collaboration diagram for llzk::PredecessorAnalysis:
[legend]

Public Types

using Base = DenseForwardDataFlowAnalysis<PredecessorLattice>

Public Member Functions

 PredecessorAnalysis (DataFlowSolver &s, raw_ostream &ro)
LogicalResult visitOperation (Operation *op, const PredecessorLattice &before, PredecessorLattice *after) override
void visitCallControlFlowTransfer (CallOpInterface call, mlir::dataflow::CallControlFlowAction action, const PredecessorLattice &before, PredecessorLattice *after) override
void visitRegionBranchControlFlowTransfer (RegionBranchOpInterface branch, std::optional< unsigned >, std::optional< unsigned >, const PredecessorLattice &before, PredecessorLattice *after) override

Protected Member Functions

void setToEntryState (PredecessorLattice *lattice) override

Detailed Description

Definition at line 105 of file PredecessorAnalysisPass.cpp.

Member Typedef Documentation

◆ Base

using llzk::PredecessorAnalysis::Base = DenseForwardDataFlowAnalysis<PredecessorLattice>

Definition at line 134 of file PredecessorAnalysisPass.cpp.

Constructor & Destructor Documentation

◆ PredecessorAnalysis()

llzk::PredecessorAnalysis::PredecessorAnalysis ( DataFlowSolver & s,
raw_ostream & ro )
inline

Definition at line 136 of file PredecessorAnalysisPass.cpp.

Member Function Documentation

◆ setToEntryState()

void llzk::PredecessorAnalysis::setToEntryState ( PredecessorLattice * lattice)
inlineoverrideprotected

Definition at line 197 of file PredecessorAnalysisPass.cpp.

◆ visitCallControlFlowTransfer()

void llzk::PredecessorAnalysis::visitCallControlFlowTransfer ( CallOpInterface call,
mlir::dataflow::CallControlFlowAction action,
const PredecessorLattice & before,
PredecessorLattice * after )
inlineoverride

action == CallControlFlowAction::Enter indicates that:

  • before is the state before the call operation;
  • after is the state at the beginning of the callee entry block;

action == CallControlFlowAction::Exit indicates that:

  • before is the state at the end of a callee exit block;
  • after is the state after the call operation.

action == CallControlFlowAction::External indicates that:

  • before is the state before the call operation.
  • after is the state after the call operation, since there is no callee body to enter into.

Definition at line 146 of file PredecessorAnalysisPass.cpp.

◆ visitOperation()

LogicalResult llzk::PredecessorAnalysis::visitOperation ( Operation * op,
const PredecessorLattice & before,
PredecessorLattice * after )
inlineoverride

Definition at line 138 of file PredecessorAnalysisPass.cpp.

◆ visitRegionBranchControlFlowTransfer()

void llzk::PredecessorAnalysis::visitRegionBranchControlFlowTransfer ( RegionBranchOpInterface branch,
std::optional< unsigned > ,
std::optional< unsigned > ,
const PredecessorLattice & before,
PredecessorLattice * after )
inlineoverride

Definition at line 186 of file PredecessorAnalysisPass.cpp.


The documentation for this class was generated from the following file: