PathEnumFaninVisitor::visitFromToPath rm unneeded if

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-05-06 17:10:32 -07:00
parent 9c76de81b5
commit f2f43fcedc
1 changed files with 6 additions and 17 deletions

View File

@ -384,8 +384,8 @@ PathEnumFaninVisitor::visitFromToPath(const Pin *,
Vertex *to_vertex, Vertex *to_vertex,
const RiseFall *to_rf, const RiseFall *to_rf,
Tag *to_tag, Tag *to_tag,
Arrival &to_arrival, Arrival & /* to_arrival */,
const MinMax *min_max, const MinMax * /* min_max */,
const PathAnalysisPt *path_ap) const PathAnalysisPt *path_ap)
{ {
// These paths fanin to before_div_ so we know to_vertex matches. // These paths fanin to before_div_ so we know to_vertex matches.
@ -406,19 +406,9 @@ PathEnumFaninVisitor::visitFromToPath(const Pin *,
// Make the diverted path end to check slack with from_path crpr. // Make the diverted path end to check slack with from_path crpr.
makeDivertedPathEnd(from_path, edge, arc, div_end, after_div_copy); makeDivertedPathEnd(from_path, edge, arc, div_end, after_div_copy);
if (div_end) { if (div_end) {
// Only enumerate paths with greater slack. reportDiversion(edge, arc, from_path);
// fuzz for difference in updatePathHeadDelays and accumulated arrivals. path_enum_->makeDiversion(div_end, after_div_copy);
float fuzz = .001; visited_fanins_.emplace(from_vertex, arc);
float slack_limit = path_end_slack_ > 0
? path_end_slack_ * (1.0 - fuzz)
: path_end_slack_ * (1.0 + fuzz);
if (delayGreaterEqual(div_end->slack(this), slack_limit, this)) {
reportDiversion(edge, arc, from_path);
path_enum_->makeDiversion(div_end, after_div_copy);
visited_fanins_.emplace(from_vertex, arc);
}
else
delete div_end;
} }
} }
else else
@ -426,8 +416,7 @@ PathEnumFaninVisitor::visitFromToPath(const Pin *,
edge->to_string(this).c_str(), edge->to_string(this).c_str(),
arc->to_string().c_str()); arc->to_string().c_str());
} }
// Only enumerate slower/faster paths. else {
else if (delayLessEqual(to_arrival, before_div_arrival_, min_max, this)) {
PathEnd *div_end; PathEnd *div_end;
Path *after_div_copy; Path *after_div_copy;
makeDivertedPathEnd(from_path, edge, arc, div_end, after_div_copy); makeDivertedPathEnd(from_path, edge, arc, div_end, after_div_copy);