From 4781e5b6926b2a6b0e231bf1cfda128114bbf70a Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 7 Apr 2025 16:25:02 -0700 Subject: [PATCH] path enum small speedups Signed-off-by: James Cherry --- search/PathEnum.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/search/PathEnum.cc b/search/PathEnum.cc index 48601683..a6cd97da 100644 --- a/search/PathEnum.cc +++ b/search/PathEnum.cc @@ -555,13 +555,13 @@ PathEnum::makeDivertedPath(Path *path, prev_copy->setPrevPath(copy); copies.push_back(copy); - if (Path::equal(p, after_div, this)) + if (p == after_div) after_div_copy = copy; if (first) div_path = copy; else if (network_->isLatchData(p->pin(this))) break; - if (Path::equal(p, before_div, this)) { + if (p == before_div) { // Replaced on next pass. copy->setPrevPath(after_div); copy->setPrevEdgeArc(div_edge, div_arc, this); @@ -603,12 +603,14 @@ PathEnum::updatePathHeadDelays(PathSeq &paths, delayAsString(arrival, this)); path->setArrival(arrival); prev_arrival = arrival; + const Tag *tag = path->tag(this); + const ClkInfo *clk_info = tag->clkInfo(); if (sdc_->crprActive() + && clk_info != prev_clk_info // D->Q paths use the EN->Q clk info so no need to update. && arc->role() != TimingRole::latchDtoQ()) { // When crpr is enabled the diverion may be from another crpr clk pin, // so update the tags to use the corresponding ClkInfo. - Tag *tag = path->tag(this); Tag *updated_tag = search_->findTag(path->transition(this), path_ap, prev_clk_info,