-
Notifications
You must be signed in to change notification settings - Fork 414
RRGraphView edge_sink_node()/edge_switch() Implementation #1930
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 20 commits
975e37d
1f27d87
2203367
6d73d49
f28874f
8a3abba
e76f49c
ddaf9b1
026c13c
272d531
5fda3ee
3d8c9e9
e3c30e0
b73359f
61e0a9b
ae49c2c
353a0c4
d2de2b0
c4beebe
bccca16
52a60bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1161,22 +1161,21 @@ bool directconnect_exists(int src_rr_node, int sink_rr_node) { | |
//which starts at src_rr_node and ends at sink_rr_node | ||
auto& device_ctx = g_vpr_ctx.device(); | ||
const auto& rr_graph = device_ctx.rr_graph; | ||
auto& rr_nodes = device_ctx.rr_nodes; | ||
|
||
VTR_ASSERT(rr_graph.node_type(RRNodeId(src_rr_node)) == SOURCE && rr_graph.node_type(RRNodeId(sink_rr_node)) == SINK); | ||
|
||
//TODO: This is a constant depth search, but still may be too slow | ||
for (t_edge_size i_src_edge = 0; i_src_edge < rr_graph.num_edges(RRNodeId(src_rr_node)); ++i_src_edge) { | ||
int opin_rr_node = rr_nodes[src_rr_node].edge_sink_node(i_src_edge); | ||
int opin_rr_node = size_t(rr_graph.edge_sink_node(RRNodeId(src_rr_node), i_src_edge)); | ||
|
||
if (rr_graph.node_type(RRNodeId(opin_rr_node)) != OPIN) continue; | ||
|
||
for (t_edge_size i_opin_edge = 0; i_opin_edge < rr_graph.num_edges(RRNodeId(opin_rr_node)); ++i_opin_edge) { | ||
int ipin_rr_node = rr_nodes[opin_rr_node].edge_sink_node(i_opin_edge); | ||
int ipin_rr_node = size_t(rr_graph.edge_sink_node(RRNodeId(opin_rr_node), i_opin_edge)); | ||
if (rr_graph.node_type(RRNodeId(ipin_rr_node)) != IPIN) continue; | ||
|
||
for (t_edge_size i_ipin_edge = 0; i_ipin_edge < rr_graph.num_edges(RRNodeId(ipin_rr_node)); ++i_ipin_edge) { | ||
if (sink_rr_node == rr_nodes[ipin_rr_node].edge_sink_node(i_ipin_edge)) { | ||
if (size_t(sink_rr_node) == size_t(rr_graph.edge_sink_node(RRNodeId(ipin_rr_node), i_ipin_edge))) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In the for loop (starting from LINE 1169), we can change the data type of
I see in LINE 1174, the |
||
return true; | ||
} | ||
} | ||
|
Uh oh!
There was an error while loading. Please reload this page.