slang::analysis::DriverTracker class

A helper class that tracks drivers for all symbols in a thread-safe manner.

Public functions

void add(AnalysisContext& context, DriverAlloc& driverAlloc, const AnalyzedProcedure& procedure)
Adds drivers for the given procedure to the tracker.
void add(AnalysisContext& context, DriverAlloc& driverAlloc, std::span<const SymbolDriverListPair> drivers)
Adds the given drivers to the tracker.
void noteNonCanonicalInstance(AnalysisContext& context, DriverAlloc& driverAlloc, const ast::InstanceSymbol& instance)
Records the existence of a non-canonical instance, which may imply that additional drivers should be applied based on the canonical instance.
void propagateIndirectDrivers(AnalysisContext& context, DriverAlloc& driverAlloc)
Propagates drivers of modport ports and ref ports down to the targets of their actual port connections.
DriverList getDrivers(const ast::ValueSymbol& symbol) const
Returns all of the tracked drivers for the given symbol.
std::optional<InstanceDriverState> getInstanceState(const ast::InstanceBodySymbol& symbol) const
Return the state tracked per canonical instance.