diff --git a/vpr/src/place/timing_place.cpp b/vpr/src/place/timing_place.cpp index b32623b3c5d..e62eab6c894 100644 --- a/vpr/src/place/timing_place.cpp +++ b/vpr/src/place/timing_place.cpp @@ -37,9 +37,12 @@ void PlacerCriticalities::update_criticalities(const SetupTimingInfo* timing_inf if (INCR_UPDATE_CRITICALITIES) { cluster_pins_with_modified_criticality_.clear(); if (crit_exponent != last_crit_exponent_) { - //Criticality exponent changed, must re-calculate *all* criticalties - auto pins = clb_nlist_.pins(); - cluster_pins_with_modified_criticality_.insert(pins.begin(), pins.end()); + //Criticality exponent changed, must re-calculate criticalities for *all* sink pins + for (ClusterNetId net_id : clb_nlist_.nets()) { + for (ClusterPinId pin_id : clb_nlist_.net_sinks(net_id)) { + cluster_pins_with_modified_criticality_.insert(pin_id); + } + } //Record new criticality exponent last_crit_exponent_ = crit_exponent; @@ -68,8 +71,11 @@ void PlacerCriticalities::update_criticalities(const SetupTimingInfo* timing_inf } } else { //Non-incremental: all pins and nets need updating - auto pins = clb_nlist_.pins(); - cluster_pins_with_modified_criticality_.insert(pins.begin(), pins.end()); + for (ClusterNetId net_id : clb_nlist_.nets()) { + for (ClusterPinId pin_id : clb_nlist_.net_sinks(net_id)) { + cluster_pins_with_modified_criticality_.insert(pin_id); + } + } } //Update the effected pins