Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This folding method is represented in the image below and is the most compact representation explored thus far. This branch is still very much a work in progress, but I am looking for advice on how to optimize my implementation. As a reminder, this implementation only works if the RRGraph is read from a file.
Relevant Code Snippets
The following code snippets are places in the implementation that have great impact on its performance. If there are any ways to optimize these snippets, performance would benefit greatly.
Data structures used to implement RRGraph
https://github.com/ethanroj23/vtr-verilog-to-routing/blob/cd0d1716305b40a76253630f99f3294f69512abe/vpr/src/route/rr_graph_storage.h#L924-L943
This function fills a vector with a node's edges. Perhaps this could be replaced with iterators?
https://github.com/ethanroj23/vtr-verilog-to-routing/blob/cd0d1716305b40a76253630f99f3294f69512abe/vpr/src/route/rr_graph_storage.h#L402-L423
Primary access of edges in the router
https://github.com/ethanroj23/vtr-verilog-to-routing/blob/cd0d1716305b40a76253630f99f3294f69512abe/vpr/src/route/connection_router.cpp#L424-L467
Primary access of edges in lookahead
https://github.com/ethanroj23/vtr-verilog-to-routing/blob/cd0d1716305b40a76253630f99f3294f69512abe/vpr/src/route/router_lookahead_map.cpp#L650-L718