EPFL-LAP / dynamatic

DHLS (Dynamic High-Level Synthesis) compiler based on MLIR
Other
65 stars 19 forks source link

[Experimental][Analysis] GSA Analysis #187

Closed pcineverdies closed 1 week ago

pcineverdies commented 2 weeks ago

This PR is a further step into #177, implementing the GSA analysis pass, that is in charge of extracting GSA information out of each block argument in the cf blocks. The pass relies on the GSA definitions from paper [1] and a custom algorithm to make it coherent with the implicit SSA representation provided by MLIR. Furthermore, the experimental FtdSupport library is included, which implements a set of operations which are in common for multiple situations around Fast Token Delivery.

[1] P. Tu and D. Padua, “Efficient Building and Placing of Gating Functions,” ACM SIGPLAN Notices, vol. 30, no. 6, pp. 47–55, Jan. 1995, doi: 10.1145/223428.207115.

pcineverdies commented 2 weeks ago

Thanks a lot for your review! I just left a couple of comments regarding some possible implementation choices! Apart some coding style corrections you pointed out, the main modification consists in not relying anymore on the MLIR block numbering (thus the horrible getBlockIndex), implementing an hand-made numbering system which always accomplishes the requirements of the algorithm.