slang::analysis::FlowAnalysisBase class

A base class for flow analysis passes that contains non-specialized helper functions.

Derived classes

template<typename TDerived, typename TState>
class AbstractFlowAnalysis
An abstract class for flow analysis passes over SystemVerilog code.
template<typename TDerived, typename TState>
class AbstractFlowAnalysis
An abstract class for flow analysis passes over SystemVerilog code.

Constructors, destructors, conversion operators

FlowAnalysisBase(const Symbol& symbol, AnalysisOptions options, Diagnostics* diagnostics = nullptr) protected
Constructs a new flow analysis pass.

Public functions

auto getEvalContext() const -> EvalContext&
Gets an evaluation context for use during analysis.

Public variables

const Symbol& rootSymbol
The symbol being analyzed (procedure, function, etc).
AnalysisOptions options
Various options controlling the behavior of the analysis.
bool bad
Set to true if the analysis detected an error.

Protected variables

uint32_t forLoopSteps
Tracking for how many steps we've taken while analyzing the body of a loop.
Diagnostics* diagnostics
An optional diagnostics collection.
EvalContext evalContext
An EvalContext that can be used for constant evaluation during analysis.

Variable documentation

Diagnostics* slang::analysis::FlowAnalysisBase::diagnostics protected

An optional diagnostics collection.

If provided, warnings encountered during analysis will be added to it.