From eaf41c446e6ac74f1d68ce01482a5651ba8ed2ce Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 11 Jun 2022 16:28:13 -0700 Subject: [PATCH] minor Signed-off-by: James Cherry --- dcalc/GraphDelayCalc1.cc | 35 +++++++++++++++-------------------- include/sta/TableModel.hh | 1 + sdc/RiseFallMinMax.cc | 28 ++++++++++++++-------------- 3 files changed, 30 insertions(+), 34 deletions(-) diff --git a/dcalc/GraphDelayCalc1.cc b/dcalc/GraphDelayCalc1.cc index d6f911c5..297bdf54 100644 --- a/dcalc/GraphDelayCalc1.cc +++ b/dcalc/GraphDelayCalc1.cc @@ -710,17 +710,15 @@ GraphDelayCalc1::driveCellDefaultFromPort(LibertyCell *cell, { LibertyPort *from_port = 0; int from_port_index = 0; - LibertyCellTimingArcSetIterator set_iter(cell); + LibertyCellTimingArcSetIterator set_iter(cell, nullptr, to_port); while (set_iter.hasNext()) { TimingArcSet *arc_set = set_iter.next(); - if (arc_set->to() == to_port) { - LibertyPort *set_from_port = arc_set->from(); - int set_from_port_index = findPortIndex(cell, set_from_port); - if (from_port == nullptr - || set_from_port_index < from_port_index) { - from_port = set_from_port; - from_port_index = set_from_port_index; - } + LibertyPort *set_from_port = arc_set->from(); + int set_from_port_index = findPortIndex(cell, set_from_port); + if (from_port == nullptr + || set_from_port_index < from_port_index) { + from_port = set_from_port; + from_port_index = set_from_port_index; } } return from_port; @@ -756,19 +754,16 @@ GraphDelayCalc1::findInputDriverDelay(LibertyCell *drvr_cell, debugPrint(debug_, "delay_calc", 2, " driver cell %s %s", drvr_cell->name(), rf->asString()); - LibertyCellTimingArcSetIterator set_iter(drvr_cell); + LibertyCellTimingArcSetIterator set_iter(drvr_cell, from_port, to_port); while (set_iter.hasNext()) { TimingArcSet *arc_set = set_iter.next(); - if (arc_set->from() == from_port - && arc_set->to() == to_port) { - TimingArcSetArcIterator arc_iter(arc_set); - while (arc_iter.hasNext()) { - TimingArc *arc = arc_iter.next(); - if (arc->toEdge()->asRiseFall() == rf) { - float from_slew = from_slews[arc->fromEdge()->index()]; - findInputArcDelay(drvr_cell, drvr_pin, drvr_vertex, - arc, from_slew, dcalc_ap); - } + TimingArcSetArcIterator arc_iter(arc_set); + while (arc_iter.hasNext()) { + TimingArc *arc = arc_iter.next(); + if (arc->toEdge()->asRiseFall() == rf) { + float from_slew = from_slews[arc->fromEdge()->index()]; + findInputArcDelay(drvr_cell, drvr_pin, drvr_vertex, + arc, from_slew, dcalc_ap); } } } diff --git a/include/sta/TableModel.hh b/include/sta/TableModel.hh index 0b79b405..9d1b2c30 100644 --- a/include/sta/TableModel.hh +++ b/include/sta/TableModel.hh @@ -428,6 +428,7 @@ public: float axisValue(size_t index) const { return (*values_)[index]; } // Find the index for value such that axis[index] <= value < axis[index+1]. size_t findAxisIndex(float value) const; + FloatSeq *values() const { return values_; } private: TableAxisVariable variable_; diff --git a/sdc/RiseFallMinMax.cc b/sdc/RiseFallMinMax.cc index cdc11be9..6d4462bf 100644 --- a/sdc/RiseFallMinMax.cc +++ b/sdc/RiseFallMinMax.cc @@ -26,29 +26,29 @@ RiseFallMinMax::RiseFallMinMax() void RiseFallMinMax::clear() { - for (int tr_index=0; tr_indexvalues_[tr_index][mm_index]; - exists_[tr_index][mm_index] = rfmm->exists_[tr_index][mm_index]; + values_[rf_index][mm_index] = rfmm->values_[rf_index][mm_index]; + exists_[rf_index][mm_index] = rfmm->exists_[rf_index][mm_index]; } } } @@ -132,7 +132,7 @@ RiseFallMinMax::setValue(const RiseFall *rf, void RiseFallMinMax::setValues(RiseFallMinMax *values) { - for (int rf_index=0;rf_indexvalues_[rf_index][mm_index]; exists_[rf_index][mm_index] = values->exists_[rf_index][mm_index]; @@ -182,7 +182,7 @@ RiseFallMinMax::maxValue(// Return values { max_value = MinMax::max()->initValue(); exists = false; - for (int rf_index=0;rf_indexexists_[rf_index][mm_index]; @@ -260,7 +260,7 @@ RiseFallMinMax::isOneValue(float &value) const { if (exists_[0][0]) { value = values_[0][0]; - for (int rf_index=0;rf_indexindex(); if (exists_[0][mm_index]) { value = values_[0][mm_index]; - for (int rf_index=0;rf_index