-
Notifications
You must be signed in to change notification settings - Fork 182
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix DSLX interpreter misbehavior with multiply instantiated procs.
Previously, the channel object was associated with the type information. This posed two potential problems: multiply instantiated procs may not be handled properly because there could be one channel object shared by multiple instantiations, and, channels may not be cleared between intepreter invocations. This change address that issue by changing InterpValue to hold immutable channel references instead of the channel object itself. The channel references include an optional channel instance id uniquely identifying the channel in the hieararchy. Also, use this opportunity to clean up the proc interpreter code quite a bit. Previously, the interface was quite messy and unclear. Now a single object `ProcHiearchyInterpreter` contains all necessary objects and provide simple Tick and TickUntilOutput methods similar to the IR interpreter. Further collateral cleanup damage is making the trace_channels output and deadlock output clearer with respect to where the channels are in the hierarchy. Fixes #1789 PiperOrigin-RevId: 709088443
- Loading branch information
1 parent
1554191
commit 5f9cd3b
Showing
28 changed files
with
1,971 additions
and
1,289 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.