slang::netlist::VariableTracker struct

Track netlist nodes that represent ranges of variables.

Inserts happen during Phase 1 (sequential). Lookups may happen concurrently during Phase 2 and are lock-free reads into the concurrent map.

Public types

using VariableMap = IntervalMap<int32_t, NetlistNode*>

Constructors, destructors, conversion operators

VariableTracker()

Public functions

auto insert(ast::Symbol const& symbol, DriverBitRange bounds, NetlistNode& node) -> auto
auto lookup(ast::Symbol const& symbol, DriverBitRange bounds) const -> NetlistNode*
Lookup a symbol and return the node for the matching range.
auto lookup(ast::Symbol const& symbol) const -> std::vector<NetlistNode*>
Lookup a symbol and return the nodes for all mapped ranges.

Function documentation

auto slang::netlist::VariableTracker::insert(ast::Symbol const& symbol, DriverBitRange bounds, NetlistNode& node)

Insert a new symbol with a node that maps to the specified bounds. Must only be called during the sequential phase.