Skip to content

rsz: Remove MT1, MEASURED_VT_SWAP, LEGACY_MT and the RSZ_* knobs - #11795

Merged
maliberty merged 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-rsz-remove-mt1
Oct 17, 2026
Merged

maliberty merged 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-rsz-remove-mt1

Conversation

@jhkim-pii

@jhkim-pii jhkim-pii commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Part 2 of 12 of the PARALLEL_EVAL setup repair stack. It builds on #11794 and also shows that commit; its own change is the last commit.

Summary

  • Remove the experimental MT1, MEASURED_VT_SWAP and LEGACY_MT policies, and move the RSZ_* environment knobs into OptimizationPolicyConfig.

Changes

  • Remove SetupMt1Policy, MeasuredVtSwapPolicy, SetupLegacyMtPolicy and the MeasuredVtSwap move with their phase tokens, tests and architecture notes. PARALLEL_EVAL replaces the MT policies later in this stack, and the delay estimator accuracy report replaces the measured VT swap.
  • The legacy flow loses the target prewarm hook that only LEGACY_MT used.
  • Until PARALLEL_EVAL arrives in rsz: Add the experimental PARALLEL_EVAL setup repair policy #11799, no policy runs the Mt moves; only unit tests cover them.
  • RSZ_VTSWAP_CANDIDATES, RSZ_VTSWAP_MAX_MOVES, RSZ_MT_DELAY_LEVELS and RSZ_MT_SLEW_BIAS become fields of the new OptimizationPolicyConfig, so a run no longer depends on the shell that started it.
  • report_delay_estimator_accuracy -estimator takes legacy (the estimate of the LEGACY moves) or stage_window (Liberty tables over a window of stages around the target, as the Mt moves estimate). The names delay_estimator, legacy_mt and mt go.
flowchart LR
  subgraph Before
    E["RSZ_* environment variables"] --> P1["LEGACY_MT, MT1,<br/>MEASURED_VT_SWAP"]
  end
  subgraph After
    C["OptimizationPolicyConfig"] --> P2["Mt moves,<br/>delay estimator"]
  end
Loading

Behavior

  • -phases LEGACY_MT, -phases MT1 and -phases MEASURED_VT_SWAP fail as unknown phases, -estimator delay_estimator, legacy_mt and mt fail with RSZ-3205, and RSZ_* variables are ignored. LEGACY results stay the same, and so do all results when none of the variables is set.

Stack

  1. test: Add LEGACY repair setup path regressions #11794 test: Add LEGACY repair setup path regressions
  2. rsz: Remove MT1, MEASURED_VT_SWAP, LEGACY_MT and the RSZ_* knobs #11795 rsz: Remove MT1, MEASURED_VT_SWAP, LEGACY_MT and the RSZ_* knobs (this PR)
  3. rsz: Add the setup repair profiler #11796 rsz: Add the setup repair profiler
  4. rsz: Model side paths in the Mt delay estimator #11797 rsz: Model side paths in the Mt delay estimator
  5. rsz: Add the RebufferMt buffer-tree move #11798 rsz: Add the RebufferMt buffer-tree move
  6. rsz: Add the experimental PARALLEL_EVAL setup repair policy #11799 rsz: Add the experimental PARALLEL_EVAL setup repair policy
  7. rsz: Add SplitLoadMt to PARALLEL_EVAL #11800 rsz: Add SplitLoadMt to PARALLEL_EVAL
  8. rsz: Add SwapPinsMt to the PARALLEL_EVAL WNS tail #11801 rsz: Add SwapPinsMt to the PARALLEL_EVAL WNS tail
  9. rsz: Add UnbufferMt to the PARALLEL_EVAL WNS tail #11802 rsz: Add UnbufferMt to the PARALLEL_EVAL WNS tail
  10. rsz: Add SizeDownFanoutMt to the PARALLEL_EVAL WNS tail #11803 rsz: Add SizeDownFanoutMt to the PARALLEL_EVAL WNS tail
  11. rsz: Add the per-move analysis and the rebuffer accuracy report #11804 rsz: Add the per-move analysis and the rebuffer accuracy report
  12. doc: Update the rsz setup repair architecture #11805 doc: Update the rsz setup repair architecture

What: 16 timing-path cases on asap7, gf180mcu, Nangate45, sky130hd and
sky130hs, each run with -phases LEGACY.

Why: the golden logs show that the later changes of the setup repair
stack leave LEGACY unchanged.

How: DEF, SDC and Tcl per case with golden logs; no code change.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
What: remove the experimental MT1, MEASURED_VT_SWAP and LEGACY_MT
policies with the MeasuredVtSwap move, turn the RSZ_* environment knobs
into fields of a new OptimizationPolicyConfig, and rename the
report_delay_estimator_accuracy estimators to legacy and stage_window.

Why: PARALLEL_EVAL replaces the MT policies and the delay estimator
accuracy report replaces the measured VT swap; a run should not depend
on its shell. The estimator names legacy_mt and mt named the removed
policies, and stage_window says which model runs.

How: the policies, their phase tokens, tests and architecture notes go,
with the target prewarm hook that only LEGACY_MT used; the knobs,
including the STA slew bias of the delay estimator, are config fields;
-estimator accepts legacy and stage_window only. LEGACY results do not
change, nor do any results when no RSZ_* variable is set.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
@jhkim-pii jhkim-pii self-assigned this Oct 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the rsz (Resizer) module by removing experimental policies (MeasuredVtSwapPolicy, SetupLegacyMtPolicy, SetupMt1Policy) and their associated generators and candidates. It also introduces OptimizationPolicyConfig to centralize configuration parameters and updates the DelayEstimatorReporter to use this configuration. My feedback highlights that the current implementation of kStaSlewBias as a constexpr in DelayEstimatorReporter.cc effectively hardcodes the slew bias setting, which undermines the purpose of moving configuration to a runtime-configurable struct. I recommend retrieving the configuration dynamically at runtime to ensure flexibility.

Comment thread src/rsz/src/DelayEstimatorReporter.cc
@maliberty
maliberty merged commit 45ec332 into The-OpenROAD-Project:master Oct 17, 2026
21 checks passed
@maliberty
maliberty deleted the secure-rsz-remove-mt1 branch October 17, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants