@@ -3196,24 +3196,30 @@ Sta::findRequired(Vertex *vertex)
31963196{
31973197 searchPreamble ();
31983198 search_->findAllArrivals ();
3199- search_->findRequireds (vertex->level ());
3200- if (variables_->crprEnabled ()
3201- && search_->crprPathPruningEnabled ()
3202- && !search_->crprApproxMissingRequireds ()
3203- // Clocks invariably have requireds that are pruned but it isn't
3204- // worth finding arrivals and requireds all over again for
3205- // the entire fanout of the clock.
3206- && !search_->isClock (vertex)) {
3207- // Invalidate arrivals and requireds and disable
3208- // path pruning on fanout vertices with DFS.
3209- int fanout = 0 ;
3210- disableFanoutCrprPruning (vertex, fanout);
3211- debugPrint (debug_, " search" , 1 , " resurrect pruned required %s fanout %d" ,
3212- vertex->to_string (this ).c_str (),
3213- fanout);
3214- // Find fanout arrivals and requireds with pruning disabled.
3215- search_->findArrivals ();
3199+ if (search_->isEndpoint (vertex)
3200+ // Need to include downstream required times if there is fanout.
3201+ && !hasFanout (vertex, search_->searchAdj (), graph_))
3202+ search_->seedRequired (vertex);
3203+ else {
32163204 search_->findRequireds (vertex->level ());
3205+ if (variables_->crprEnabled ()
3206+ && search_->crprPathPruningEnabled ()
3207+ && !search_->crprApproxMissingRequireds ()
3208+ // Clocks invariably have requireds that are pruned but it isn't
3209+ // worth finding arrivals and requireds all over again for
3210+ // the entire fanout of the clock.
3211+ && !search_->isClock (vertex)) {
3212+ // Invalidate arrivals and requireds and disable
3213+ // path pruning on fanout vertices with DFS.
3214+ int fanout = 0 ;
3215+ disableFanoutCrprPruning (vertex, fanout);
3216+ debugPrint (debug_, " search" , 1 , " resurrect pruned required %s fanout %d" ,
3217+ vertex->to_string (this ).c_str (),
3218+ fanout);
3219+ // Find fanout arrivals and requireds with pruning disabled.
3220+ search_->findArrivals ();
3221+ search_->findRequireds (vertex->level ());
3222+ }
32173223 }
32183224}
32193225
0 commit comments