Skip to content

Commit 9fbc440

Browse files
committed
Squashed 'libs/EXTERNAL/libtatum/' changes from 7c94fa018..072337571
072337571 Revert "Fix robustness of timing graph levelization with disabled edges" git-subtree-dir: libs/EXTERNAL/libtatum git-subtree-split: 072337571855b68de346b828400de73934f8dae0
1 parent 59dcb48 commit 9fbc440

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

libtatum/tatum/TimingGraph.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -331,15 +331,13 @@ void TimingGraph::force_levelize() {
331331
//placed in a previous level (indicating that the node goes in the current level)
332332
//
333333
//Also initialize the first level (nodes with no fanin)
334-
//
335-
//Note: We consider *all* edges, even those marked as disabled by timing constraints.
336-
//This produces a valid levelization which is independent of the timing constraints,
337-
//and which avoids some potential issues. For instance, treating an internal node with
338-
//all disabled input edges from being treated as a primary input.
339334
std::vector<int> node_fanin_remaining(nodes().size());
340335
for(NodeId node_id : nodes()) {
341-
size_t node_fanin = node_in_edges(node_id).size();
342-
336+
size_t node_fanin = 0;
337+
for(EdgeId edge : node_in_edges(node_id)) {
338+
if(edge_disabled(edge)) continue;
339+
++node_fanin;
340+
}
343341
node_fanin_remaining[size_t(node_id)] = node_fanin;
344342

345343
//Initialize the first level
@@ -371,6 +369,8 @@ void TimingGraph::force_levelize() {
371369
for(const NodeId node_id : level_nodes_[LevelId(level_idx)]) {
372370
//Inspect the fanout
373371
for(EdgeId edge_id : node_out_edges(node_id)) {
372+
if(edge_disabled(edge_id)) continue;
373+
374374
NodeId sink_node = edge_sink_node(edge_id);
375375

376376
//Decrement the fanin count

0 commit comments

Comments
 (0)