From 25ea7a3795f44fac4202edb501e27e8c590b5ee9 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 28 Jan 2026 12:06:40 -0700 Subject: [PATCH] network edits invalidate power resolves #371 Signed-off-by: James Cherry --- power/Power.cc | 10 +--------- power/Power.hh | 3 +-- search/Sta.cc | 13 +++++++++---- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/power/Power.cc b/power/Power.cc index 3265fe96..c5297b33 100644 --- a/power/Power.cc +++ b/power/Power.cc @@ -1595,15 +1595,7 @@ Power::clockMinPeriod() } void -Power::deleteInstanceBefore(const Instance *) -{ - activities_valid_ = false; - instance_powers_.clear(); - corner_ = nullptr; -} - -void -Power::deletePinBefore(const Pin *) +Power::powerInvalid() { activities_valid_ = false; instance_powers_.clear(); diff --git a/power/Power.hh b/power/Power.hh index abed2f40..82ad01f2 100644 --- a/power/Power.hh +++ b/power/Power.hh @@ -108,8 +108,7 @@ public: float clockMinPeriod(); InstanceSeq highestPowerInstances(size_t count, const Corner *corner); - void deleteInstanceBefore(const Instance *inst); - void deletePinBefore(const Pin *pin); + void powerInvalid(); protected: PwrActivity &activity(const Pin *pin); diff --git a/search/Sta.cc b/search/Sta.cc index eb389646..7b9a3123 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -4245,6 +4245,7 @@ Sta::makeInstanceAfter(const Instance *inst) } } graph_->makeInstanceEdges(inst); + power_->powerInvalid(); } } } @@ -4311,6 +4312,8 @@ Sta::replaceEquivCellAfter(const Instance *inst) parasitics_->loadPinCapacitanceChanged(pin); } delete pin_iter; + clk_skews_->clear(); + power_->powerInvalid(); } } @@ -4381,7 +4384,6 @@ Sta::replaceCellBefore(const Instance *inst, } } delete pin_iter; - clk_skews_->clear(); } } @@ -4447,6 +4449,7 @@ Sta::connectPinAfter(const Pin *pin) sdc_->connectPinAfter(pin); sim_->connectPinAfter(pin); clk_skews_->clear(); + power_->powerInvalid(); } void @@ -4538,6 +4541,7 @@ Sta::disconnectPinBefore(const Pin *pin) } } clk_skews_->clear(); + power_->powerInvalid(); } } @@ -4582,6 +4586,8 @@ Sta::deleteNetBefore(const Net *net) delete pin_iter; } sdc_->deleteNetBefore(net); + clk_skews_->clear(); + power_->powerInvalid(); } void @@ -4609,7 +4615,8 @@ Sta::deleteLeafInstanceBefore(const Instance *inst) { sim_->deleteInstanceBefore(inst); sdc_->deleteInstanceBefore(inst); - power_->deleteInstanceBefore(inst); + clk_skews_->clear(); + power_->powerInvalid(); } void @@ -4687,8 +4694,6 @@ Sta::deletePinBefore(const Pin *pin) sdc_->deletePinBefore(pin); sim_->deletePinBefore(pin); clk_network_->deletePinBefore(pin); - power_->deletePinBefore(pin); - clk_skews_->clear(); } void