Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/rsz/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ cc_library(
"src/DelayEstimator.hh",
"src/DelayEstimatorReporter.cc",
"src/DelayEstimatorReporter.hh",
"src/LRSubproblem.cc",
"src/LRSubproblem.hh",
"src/MoveCommitter.cc",
"src/MoveCommitter.hh",
"src/MoveTracker.cc",
Expand Down Expand Up @@ -104,6 +106,8 @@ cc_library(
"src/move/VtSwapMtCandidate.hh",
"src/move/VtSwapMtGenerator.cc",
"src/move/VtSwapMtGenerator.hh",
"src/policy/GlobalSizingPolicy.cc",
"src/policy/GlobalSizingPolicy.hh",
"src/policy/MeasuredVtSwapPolicy.cc",
"src/policy/MeasuredVtSwapPolicy.hh",
"src/policy/OptimizationPolicy.cc",
Expand Down
17 changes: 17 additions & 0 deletions src/rsz/include/rsz/Resizer.hh
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,16 @@ class Resizer : public sta::dbStaState, public sta::dbNetworkObserver
// Return values.
sta::ArcDelay delays[sta::RiseFall::index_count],
sta::Slew slews[sta::RiseFall::index_count]);
// Worker-safe overload: uses the caller-provided ArcDelayCalc instead of the
// shared member, so the table-model lookup can run concurrently.
void gateDelays(const sta::LibertyPort* drvr_port,
float load_cap,
const sta::Scene* scene,
const sta::MinMax* min_max,
sta::ArcDelayCalc* arc_delay_calc,
// Return values.
sta::ArcDelay delays[sta::RiseFall::index_count],
sta::Slew slews[sta::RiseFall::index_count]);
void gateDelays(const sta::LibertyPort* drvr_port,
float load_cap,
const sta::Slew in_slews[sta::RiseFall::index_count],
Expand All @@ -702,6 +712,12 @@ class Resizer : public sta::dbStaState, public sta::dbNetworkObserver
float load_cap,
const sta::Scene* scene,
const sta::MinMax* min_max);
// Worker-safe overload (see gateDelays above).
sta::ArcDelay gateDelay(const sta::LibertyPort* drvr_port,
float load_cap,
const sta::Scene* scene,
const sta::MinMax* min_max,
sta::ArcDelayCalc* arc_delay_calc);
sta::ArcDelay gateDelay(const sta::LibertyPort* drvr_port,
const sta::RiseFall* rf,
float load_cap,
Expand Down Expand Up @@ -1028,6 +1044,7 @@ class Resizer : public sta::dbStaState, public sta::dbNetworkObserver
friend class OdbCallBack;
friend class SetupLegacyBase;
friend class RepairTargetCollector;
friend class LRSubproblem;
friend class DelayEstimatorReporter;
};

Expand Down
2 changes: 2 additions & 0 deletions src/rsz/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ add_library(rsz_lib
policy/MeasuredVtSwapPolicy.cc
DelayEstimator.cc
DelayEstimatorReporter.cc
LRSubproblem.cc
policy/SetupCritVtSwapPolicy.cc
policy/SetupDirectionalPolicy.cc
policy/SetupLastGaspPolicy.cc
Expand All @@ -36,6 +37,7 @@ add_library(rsz_lib
policy/SetupWnsPolicy.cc
policy/SetupMt1Policy.cc
policy/SetupReroutePolicy.cc
policy/GlobalSizingPolicy.cc
Resizer.cc
OdbCallBack.cc
ConcreteSwapArithModules.cc
Expand Down
Loading
Loading