This pass facilitates externally prototyping a custom buffer placement analysis, e.g., in Python. This also makes the results of some research artifacts (e.g., Mapbuf) developed in Python easily reproducible in the current Dynamatic framework.
A typical workflow would be:
Export the handshake_transformed.mlir to DOT, apply some external analysis using Python to determine where to place buffers.
Using this pass: add all the buffers, and generate handshake_buffered.mlir.
Continue with the rest of the HLS flow.
For example, we can add a buffer by specifying the following (this is for the benchmark fir):
This pass facilitates externally prototyping a custom buffer placement analysis, e.g., in Python. This also makes the results of some research artifacts (e.g., Mapbuf) developed in Python easily reproducible in the current Dynamatic framework.
A typical workflow would be:
handshake_transformed.mlir
to DOT, apply some external analysis using Python to determine where to place buffers.handshake_buffered.mlir
.For example, we can add a buffer by specifying the following (this is for the benchmark
fir
):Any suggestions?