findRequired(vertex) rm crpr disable
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
7539c7372d
commit
6e29fcb3f0
|
|
@ -594,7 +594,6 @@ Graph::deletePaths(Vertex *vertex)
|
|||
{
|
||||
vertex->setPaths(nullptr);
|
||||
vertex->tag_group_index_ = tag_group_index_max;
|
||||
vertex->crpr_path_pruning_disabled_ = false;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
|
@ -998,7 +997,6 @@ Vertex::init(Pin *pin,
|
|||
visited1_ = false;
|
||||
visited2_ = false;
|
||||
bfs_in_queue_ = 0;
|
||||
crpr_path_pruning_disabled_ = false;
|
||||
}
|
||||
|
||||
Vertex::~Vertex()
|
||||
|
|
@ -1120,12 +1118,6 @@ Vertex::removeSlewAnnotated()
|
|||
slew_annotated_ = 0;
|
||||
}
|
||||
|
||||
void
|
||||
Vertex::setCrprPathPruningDisabled(bool disabled)
|
||||
{
|
||||
crpr_path_pruning_disabled_ = disabled;
|
||||
}
|
||||
|
||||
TagGroupIndex
|
||||
Vertex::tagGroupIndex() const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -304,8 +304,6 @@ public:
|
|||
bool bfsInQueue(BfsIndex index) const;
|
||||
void setBfsInQueue(BfsIndex index, bool value);
|
||||
bool isRegClk() const { return is_reg_clk_; }
|
||||
bool crprPathPruningDisabled() const { return crpr_path_pruning_disabled_;}
|
||||
void setCrprPathPruningDisabled(bool disabled);
|
||||
|
||||
// ObjectTable interface.
|
||||
ObjectIdx objectIdx() const { return object_idx_; }
|
||||
|
|
@ -353,7 +351,6 @@ protected:
|
|||
bool is_check_clk_:1;
|
||||
bool is_constrained_:1;
|
||||
bool has_downstream_clk_pin_:1;
|
||||
bool crpr_path_pruning_disabled_:1;
|
||||
bool visited1_:1;
|
||||
bool visited2_:1;
|
||||
|
||||
|
|
|
|||
|
|
@ -1437,8 +1437,6 @@ protected:
|
|||
Corner *corner,
|
||||
const MinMax *min_max);
|
||||
void powerPreamble();
|
||||
void disableFanoutCrprPruning(Vertex *vertex,
|
||||
int &fanou);
|
||||
virtual void replaceCell(Instance *inst,
|
||||
Cell *to_cell,
|
||||
LibertyCell *to_lib_cell);
|
||||
|
|
|
|||
|
|
@ -1182,7 +1182,6 @@ ArrivalVisitor::visit(Vertex *vertex)
|
|||
visitFaninPaths(vertex);
|
||||
if (crpr_active_
|
||||
&& search_->crprPathPruningEnabled()
|
||||
&& !vertex->crprPathPruningDisabled()
|
||||
// No crpr for ideal clocks.
|
||||
&& tag_bldr_->hasPropagatedClk()
|
||||
&& !has_fanin_one_)
|
||||
|
|
|
|||
|
|
@ -3200,48 +3200,8 @@ Sta::findRequired(Vertex *vertex)
|
|||
// Need to include downstream required times if there is fanout.
|
||||
&& !hasFanout(vertex, search_->searchAdj(), graph_))
|
||||
search_->seedRequired(vertex);
|
||||
else {
|
||||
else
|
||||
search_->findRequireds(vertex->level());
|
||||
if (variables_->crprEnabled()
|
||||
&& search_->crprPathPruningEnabled()
|
||||
&& !search_->crprApproxMissingRequireds()
|
||||
// Clocks invariably have requireds that are pruned but it isn't
|
||||
// worth finding arrivals and requireds all over again for
|
||||
// the entire fanout of the clock.
|
||||
&& !search_->isClock(vertex)) {
|
||||
// Invalidate arrivals and requireds and disable
|
||||
// path pruning on fanout vertices with DFS.
|
||||
int fanout = 0;
|
||||
disableFanoutCrprPruning(vertex, fanout);
|
||||
debugPrint(debug_, "search", 1, "resurrect pruned required %s fanout %d",
|
||||
vertex->to_string(this).c_str(),
|
||||
fanout);
|
||||
// Find fanout arrivals and requireds with pruning disabled.
|
||||
search_->findArrivals();
|
||||
search_->findRequireds(vertex->level());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Sta::disableFanoutCrprPruning(Vertex *vertex,
|
||||
int &fanout)
|
||||
{
|
||||
if (!vertex->crprPathPruningDisabled()) {
|
||||
search_->arrivalInvalid(vertex);
|
||||
search_->requiredInvalid(vertex);
|
||||
vertex->setCrprPathPruningDisabled(true);
|
||||
fanout++;
|
||||
SearchPred *pred = search_->searchAdj();
|
||||
VertexOutEdgeIterator edge_iter(vertex, graph_);
|
||||
while (edge_iter.hasNext()) {
|
||||
Edge *edge = edge_iter.next();
|
||||
Vertex *to_vertex = edge->to(graph_);
|
||||
if (pred->searchThru(edge)
|
||||
&& pred->searchTo(to_vertex))
|
||||
disableFanoutCrprPruning(to_vertex, fanout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Slack
|
||||
|
|
|
|||
Loading…
Reference in New Issue