DriverTracker class
#include <slang/analysis/DriverTracker.h>
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.