This is a tracking issue for adding LSQ placement and optimization into the framework.
[x] Create memory analysis pass to derive dependencies between all memory accesses.
[x] Create a Handshake operation to represent LSQs (added in 475aa51).
[x] Define an IR attribute to drive the memory interface placement logic down-the-line (#50).
[x] Add LSQ placement logic in the StandardToHandshakeFPGA18 conversion pass. It should derive memory interface placement decisions from the presence/absence of the new IR attribute on memory accesses (e5d1e62).
[x] Connect polyhedral analysis to LSQ placement to only place LSQs when there are memory dependencies in a region. (5e9e3b1)
[x] Verify LSQ placement/optimization correctness using legacy Dynamatic's backend (unless we have our own backend by then).
[x] Add LSQ support in the DOT printer (f70c73c).
[x] Make the legacy LSQ generator work (f70c73c).
[x] Implement flow analysis as part of the LSQ placement logic to minimize the number of LSQs in circuits (from this paper, issue #56)
This is a tracking issue for adding LSQ placement and optimization into the framework.
StandardToHandshakeFPGA18
conversion pass. It should derive memory interface placement decisions from the presence/absence of the new IR attribute on memory accesses (e5d1e62).