@@ -118,6 +118,7 @@ class SizeDownMove;
118118class SizeUpMove ;
119119class SwapPinsMove ;
120120class UnbufferMove ;
121+ class RegisterOdbCallbackGuard ;
121122
122123class NetHash
123124{
@@ -409,7 +410,7 @@ class Resizer : public dbStaState, public dbNetworkObserver
409410
410411 dbNetwork* getDbNetwork () { return db_network_; }
411412 ParasiticsSrc getParasiticsSrc () { return parasitics_src_; }
412- void setParasiticsSrc (ParasiticsSrc src) { parasitics_src_ = src; }
413+ void setParasiticsSrc (ParasiticsSrc src);
413414 dbBlock* getDbBlock () { return block_; };
414415 double dbuToMeters (int dist) const ;
415416 int metersToDbu (double dist) const ;
@@ -421,7 +422,6 @@ class Resizer : public dbStaState, public dbNetworkObserver
421422 void journalBeginTest ();
422423 void journalRestoreTest ();
423424 Logger* logger () const { return logger_; }
424- void invalidateParasitics (const Pin* pin, const Net* net);
425425 void eraseParasitics (const Net* net);
426426 void eliminateDeadLogic (bool clean_nets);
427427 std::optional<float > cellLeakage (LibertyCell* cell);
@@ -728,6 +728,7 @@ class Resizer : public dbStaState, public dbNetworkObserver
728728
729729 ParasiticsSrc parasitics_src_ = ParasiticsSrc::none;
730730 UnorderedSet<const Net*, NetHash> parasitics_invalid_;
731+ bool incremental_parasitics_enabled_ = false ;
731732
732733 double design_area_ = 0.0 ;
733734 const MinMax* min_ = MinMax::min();
@@ -783,9 +784,6 @@ class Resizer : public dbStaState, public dbNetworkObserver
783784 sta::UnorderedMap<LibertyPort*, InputSlews> input_slew_map_;
784785
785786 std::unique_ptr<OdbCallBack> db_cbk_;
786- bool is_callback_registered_ = false ;
787- bool isCallBackRegistered () { return is_callback_registered_; }
788- void setCallBackRegistered (bool val) { is_callback_registered_ = val; }
789787
790788 // Restrict default sizing such that one sizing move cannot increase area or
791789 // leakage by more than 4X. Subsequent sizing moves can exceed the 4X limit.
@@ -837,6 +835,18 @@ class Resizer : public dbStaState, public dbNetworkObserver
837835 friend class CloneMove ;
838836 friend class SwapPinsMove ;
839837 friend class UnbufferMove ;
838+ friend class IncrementalParasiticsGuard ;
839+ };
840+
841+ class IncrementalParasiticsGuard
842+ {
843+ public:
844+ IncrementalParasiticsGuard (Resizer* resizer);
845+ ~IncrementalParasiticsGuard ();
846+
847+ private:
848+ Resizer* resizer_;
849+ bool need_unregister_;
840850};
841851
842852} // namespace rsz
0 commit comments