LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches

#include <IntervalAnalysis.h>

Public Member Functions

mlir::LogicalResult computeIntervals (mlir::DataFlowSolver &solver, const IntervalAnalysisContext &ctx)
void print (mlir::raw_ostream &os, bool withConstraints=false, bool printCompute=false) const
const llvm::MapVector< SourceRef, Interval > & getConstrainIntervals () const
const llvm::SetVector< ExpressionValuegetConstrainSolverConstraints () const
const llvm::MapVector< SourceRef, Interval > & getComputeIntervals () const
const llvm::SetVector< ExpressionValuegetComputeSolverConstraints () const

Static Public Member Functions

static mlir::FailureOr< StructIntervalscompute (mlir::ModuleOp mod, component::StructDefOp s, mlir::DataFlowSolver &solver, const IntervalAnalysisContext &ctx)
 Compute the struct intervals.

Friends

mlir::raw_ostream & operator<< (mlir::raw_ostream &os, const StructIntervals &si)

Detailed Description

Definition at line 446 of file IntervalAnalysis.h.

Member Function Documentation

◆ compute()

mlir::FailureOr< StructIntervals > llzk::StructIntervals::compute ( mlir::ModuleOp mod,
component::StructDefOp s,
mlir::DataFlowSolver & solver,
const IntervalAnalysisContext & ctx )
inlinestatic

Compute the struct intervals.

Parameters
modThe LLZK-complaint module that is the parent of struct s.
sThe struct to compute value intervals for.
solverA pre-configured DataFlowSolver. The liveness of the struct must already be computed in this solver in order for the analysis to run.
amA module-level analysis manager. This analysis manager needs to originate from a module-level analysis (i.e., for the mod module) so that analyses for other constraints can be queried via the getChildAnalysis method.
Returns

Definition at line 457 of file IntervalAnalysis.h.

◆ computeIntervals()

LogicalResult llzk::StructIntervals::computeIntervals ( mlir::DataFlowSolver & solver,
const IntervalAnalysisContext & ctx )

Definition at line 1136 of file IntervalAnalysis.cpp.

◆ getComputeIntervals()

const llvm::MapVector< SourceRef, Interval > & llzk::StructIntervals::getComputeIntervals ( ) const
inline

Definition at line 481 of file IntervalAnalysis.h.

◆ getComputeSolverConstraints()

const llvm::SetVector< ExpressionValue > llzk::StructIntervals::getComputeSolverConstraints ( ) const
inline

Definition at line 485 of file IntervalAnalysis.h.

◆ getConstrainIntervals()

const llvm::MapVector< SourceRef, Interval > & llzk::StructIntervals::getConstrainIntervals ( ) const
inline

Definition at line 473 of file IntervalAnalysis.h.

◆ getConstrainSolverConstraints()

const llvm::SetVector< ExpressionValue > llzk::StructIntervals::getConstrainSolverConstraints ( ) const
inline

Definition at line 477 of file IntervalAnalysis.h.

◆ print()

void llzk::StructIntervals::print ( mlir::raw_ostream & os,
bool withConstraints = false,
bool printCompute = false ) const

Definition at line 1206 of file IntervalAnalysis.cpp.

◆ operator<<

mlir::raw_ostream & operator<< ( mlir::raw_ostream & os,
const StructIntervals & si )
friend

Definition at line 489 of file IntervalAnalysis.h.


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