This patch changes all the iterator code to use a prefix ++ instead of postfix since it is more efficient (no need for a temporary). It is likely that the compiler could optimize this away, but lets make it efficient from the start.
The NetEvent::find_similar_event method should limit its impact on the netlist (and Nexus objects) by reducing the candidate event list as it goes, instead of collecting data and testing later.
Remove the #ident and $Log$ strings from all the header files and almost all of the C/C++ source files. I think it is better to get this done all at once, then to wait for each of the files to be touched and edited in unrelated patches.
This patch splits any VVP net functor that needs to access both statically and automatically allocated state into two sub-classes, one for handling operations on statically allocated state, the other for handling operations on automatically allocated state. This undoes the increase in run-time memory use introduced when automatic task/function support was first introduced. This patch also fixes various issues with event handling in automatic scopes. Event expressions in automatic scopes may now reference either statically or automatically allocated variables or arrays, or part selects or word selects thereof. More complex expressions (e.g. containing arithmetic or logical operators, function calls, etc.) are not currently supported. This patch introduces some error checking for language constructs that may not reference automatically allocated variables. Further error checking will follow in a subsequent patch.
This is simply no need for the names on links, other then for debug messages, and there are better ways to handle that.
The NetBranch object is connected, but not like an object, so the NetPins object base class is factored out from NetObj to handle the connectivity, and the NetBranch class uses the NetPins to connect a branch. Also, account for the fact that nets with a discipline are by default real-valued.
scope names and system task/function names into this table. Also, permallocate event names from the beginning.
all event matching and replacement in one shot, saving time in the scans.
junk, and support gcc 3.0. (Stephan Boettcher)
.event statements in vvp way ahead of the thread that uses it.
Connect the NetEvent and related classes together better.
Get synthesis working with the NetEvWait class, and get started supporting multiple events in a wait in vvm.
objects in the pform, Handle named events within the mix of net events and edges. As a unified lot they get caught together. wait statements are broken into more complex statements that include a conditional. Do not generate NetPEvent or NetNEvent objects in elaboration. NetEvent, NetEvWait and NetEvProbe take over those functions in the netlist.