From 0df6a7671563e34934e89299542b36f791c5929e Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 21 Jan 2021 16:58:16 -0700 Subject: [PATCH] Sta::findGroupPathPins check arrivals valid --- include/sta/Search.hh | 1 + search/Search.cc | 7 +++++++ search/Sta.cc | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/sta/Search.hh b/include/sta/Search.hh index f1d8ca7e..3f4331ec 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -103,6 +103,7 @@ public: bool removal, bool clk_gating_setup, bool clk_gating_hold); + bool arrivalsValid(); // Invalidate all arrival and required times. void arrivalsInvalid(); // Invalidate vertex arrival time. diff --git a/search/Search.cc b/search/Search.cc index 04d518d3..f4b0df0e 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -651,6 +651,13 @@ Search::deleteVertexBefore(Vertex *vertex) invalid_endpoints_->erase(vertex); } +bool +Search::arrivalsValid() +{ + return arrivals_exist_ + && invalid_requireds_.empty(); +} + void Search::arrivalsInvalid() { diff --git a/search/Sta.cc b/search/Sta.cc index a50efe9c..2a2b4f38 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -2621,7 +2621,8 @@ Sta::visitEndpoints(VertexVisitor *visitor) PinSet * Sta::findGroupPathPins(const char *group_path_name) { - if (!search_->havePathGroups()) { + if (!(search_->havePathGroups() + && search_->arrivalsValid())) { PathEndSeq *path_ends = findPathEnds(// from, thrus, to, unconstrained nullptr, nullptr, nullptr, false, // corner, min_max,