Refactor V3Delay for extensibility (#5516)

* Refactor V3Delay for extensibility

Introduce the concept of an "NBA Scheme", which is the lowering pattern
we can use for various variables that are the targets of NBAs.
E.g.:
 - ShadowVariable (old default scheme)
 - FlagShared (old array set flag scheme)
 - ValueQueueWhole (recent dynamic commit queue)

We now analyse all AstAssignDly before making any decisions on which
scheme to apply. We then choose a specific scheme for each variable that
is the target of an NBA, and then all NBAs targeting that variable use
the same scheme. This enables easy mix and match of schemes as needed,
while remaining consistent by design after extensions.

Output is perturbed due to node insertion order, but no functional
or performance change is intended.
This commit is contained in:
Geza Lore
2024-10-09 10:39:40 +01:00
committed by GitHub
parent 920c8012de
commit 5acced1e33
13 changed files with 935 additions and 745 deletions
+795 -655
View File
File diff suppressed because it is too large Load Diff