Skip to content

Commit cfb26af

Browse files
committed
Fix segfault and update regression tests.
Signed-off-by: Matthew Guthaus <[email protected]>
1 parent f5879e6 commit cfb26af

21 files changed

+31
-24
lines changed

src/rsz/src/BaseMove.cc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,8 @@ bool BaseMove::estimatedSlackOK(const SlackEstimatorParams& params)
429429

430430
// Check if degraded delay & slew can be absorbed by driver pin fanouts
431431
Net* output_net = network_->net(params.driver_pin);
432-
auto pin_iter
433-
= std::unique_ptr<NetConnectedPinIterator>(network_->connectedPinIterator(output_net));
432+
auto pin_iter = std::unique_ptr<NetConnectedPinIterator>(
433+
network_->connectedPinIterator(output_net));
434434
while (pin_iter->hasNext()) {
435435
const Pin* pin = pin_iter->next();
436436
if (pin == params.driver_pin) {
@@ -464,7 +464,8 @@ bool BaseMove::estimatedSlackOK(const SlackEstimatorParams& params)
464464
// Check side fanout paths. Side fanout paths get no delay benefit from
465465
// buffer removal.
466466
Net* input_net = network_->net(params.prev_driver_pin);
467-
pin_iter = std::unique_ptr<NetConnectedPinIterator>(network_->connectedPinIterator(input_net));
467+
pin_iter = std::unique_ptr<NetConnectedPinIterator>(
468+
network_->connectedPinIterator(input_net));
468469
while (pin_iter->hasNext()) {
469470
const Pin* side_input_pin = pin_iter->next();
470471
if (side_input_pin == params.prev_driver_pin
@@ -678,7 +679,8 @@ bool BaseMove::replaceCell(Instance* inst, const LibertyCell* replacement)
678679
opendp_->legalCellPos(db_network_->staToDb(inst));
679680
}
680681
if (resizer_->haveEstimatedParasitics()) {
681-
auto pin_iter = std::unique_ptr<InstancePinIterator>(network_->pinIterator(inst));
682+
auto pin_iter
683+
= std::unique_ptr<InstancePinIterator>(network_->pinIterator(inst));
682684
while (pin_iter->hasNext()) {
683685
const Pin* pin = pin_iter->next();
684686
const Net* net = network_->net(pin);
@@ -700,7 +702,8 @@ vector<const Pin*> BaseMove::getFanouts(const Instance* inst)
700702
{
701703
vector<const Pin*> fanouts;
702704

703-
auto pin_iter = std::unique_ptr<InstancePinIterator>(network_->pinIterator(inst));
705+
auto pin_iter
706+
= std::unique_ptr<InstancePinIterator>(network_->pinIterator(inst));
704707
while (pin_iter->hasNext()) {
705708
const Pin* pin = pin_iter->next();
706709
if (network_->direction(pin)->isOutput()) {

src/rsz/src/SizeDownMove.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ bool SizeDownMove::doMove(const Path* drvr_path,
126126

127127
Pin* load_pin = load_vertex->pin();
128128
LibertyPort* load_port = network_->libertyPort(load_pin);
129+
// Skip primary outputs
130+
if (!load_port) {
131+
continue;
132+
}
129133
LibertyCell* load_cell = load_port->libertyCell();
130134
Instance* load_inst = network_->instance(load_pin);
131135

src/rsz/test/buffer_varying_lengths.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ tns max -30.987
2020
final | 35 | 751 | 0 | 0 | 0 | +215.2% | -0.279 | -29.1 | 200 | p3-200
2121
--------------------------------------------------------------------------------------------------------------
2222
[INFO RSZ-0059] Removed 35 buffers.
23-
[INFO RSZ-0041] Resized 751 instances.
23+
[INFO RSZ-0051] Resized 751 instances, 751 sized up, 0 sized down.
2424
[WARNING RSZ-0062] Unable to repair all setup violations.
2525
[INFO RSZ-0033] No hold violations found.
2626
worst slack max -0.279

src/rsz/test/clone_flat.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1445,7 +1445,7 @@ worst slack max -0.16
14451445
final | 0 | 7 | 1 | 9 | 2 | +2.9% | -0.148 | -21.3 | 150 | load131/D
14461446
--------------------------------------------------------------------------------------------------------------
14471447
[INFO RSZ-0045] Inserted 1 buffers, 1 to split loads.
1448-
[INFO RSZ-0041] Resized 7 instances.
1448+
[INFO RSZ-0051] Resized 7 instances, 7 sized up, 0 sized down.
14491449
[INFO RSZ-0043] Swapped pins on 2 instances.
14501450
[INFO RSZ-0049] Cloned 9 instances.
14511451
[WARNING RSZ-0062] Unable to repair all setup violations.

src/rsz/test/clone_hier.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1397,7 +1397,7 @@ worst slack max -0.16
13971397
final | 0 | 19 | 6 | 18 | 2 | +7.3% | -0.123 | -16.8 | 148 | load147/D
13981398
--------------------------------------------------------------------------------------------------------------
13991399
[INFO RSZ-0045] Inserted 6 buffers, 6 to split loads.
1400-
[INFO RSZ-0041] Resized 19 instances.
1400+
[INFO RSZ-0051] Resized 19 instances, 19 sized up, 0 sized down.
14011401
[INFO RSZ-0043] Swapped pins on 2 instances.
14021402
[INFO RSZ-0049] Cloned 18 instances.
14031403
[WARNING RSZ-0062] Unable to repair all setup violations.

src/rsz/test/repair_fanout7.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ worst slack max -23.63
344344
final | 0 | 98 | 97 | 7 | 8 | +40.4% | -2.975 | -308.6 | 150 | load143/D
345345
--------------------------------------------------------------------------------------------------------------
346346
[INFO RSZ-0040] Inserted 97 buffers.
347-
[INFO RSZ-0041] Resized 98 instances.
347+
[INFO RSZ-0051] Resized 98 instances, 98 sized up, 0 sized down.
348348
[INFO RSZ-0043] Swapped pins on 8 instances.
349349
[INFO RSZ-0049] Cloned 7 instances.
350350
[WARNING RSZ-0062] Unable to repair all setup violations.

src/rsz/test/repair_fanout7_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ worst slack max -23.63
335335
--------------------------------------------------------------------------------------------------------------
336336
[INFO RSZ-0059] Removed 1 buffers.
337337
[INFO RSZ-0040] Inserted 98 buffers.
338-
[INFO RSZ-0041] Resized 91 instances.
338+
[INFO RSZ-0051] Resized 91 instances, 91 sized up, 0 sized down.
339339
[INFO RSZ-0043] Swapped pins on 8 instances.
340340
[INFO RSZ-0049] Cloned 7 instances.
341341
[WARNING RSZ-0062] Unable to repair all setup violations.

src/rsz/test/repair_fanout8.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ worst slack max -23.63
327327
final | 0 | 114 | 54 | 0 | 1 | +47.3% | -3.631 | -263.8 | 150 | load141/D
328328
--------------------------------------------------------------------------------------------------------------
329329
[INFO RSZ-0045] Inserted 54 buffers, 9 to split loads.
330-
[INFO RSZ-0041] Resized 114 instances.
330+
[INFO RSZ-0051] Resized 114 instances, 114 sized up, 0 sized down.
331331
[INFO RSZ-0043] Swapped pins on 1 instances.
332332
[WARNING RSZ-0062] Unable to repair all setup violations.
333333
Repair timing output passed/skipped equivalence test

src/rsz/test/repair_fanout8_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ worst slack max -23.63
375375
final | 0 | 138 | 58 | 0 | 1 | +52.5% | -3.674 | -272.5 | 150 | load141/D
376376
--------------------------------------------------------------------------------------------------------------
377377
[INFO RSZ-0045] Inserted 58 buffers, 9 to split loads.
378-
[INFO RSZ-0041] Resized 138 instances.
378+
[INFO RSZ-0051] Resized 138 instances, 138 sized up, 0 sized down.
379379
[INFO RSZ-0043] Swapped pins on 1 instances.
380380
[WARNING RSZ-0062] Unable to repair all setup violations.
381381
Repair timing output passed/skipped equivalence test

src/rsz/test/repair_setup1.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Path Type: max
5151
final | 4 | 1 | 0 | 0 | 0 | -4.6% | 0.013 | 0.0 | 0 | r2/D
5252
--------------------------------------------------------------------------------------------------------------
5353
[INFO RSZ-0059] Removed 4 buffers.
54-
[INFO RSZ-0041] Resized 1 instances.
54+
[INFO RSZ-0051] Resized 1 instances, 1 sized up, 0 sized down.
5555
Repair timing output passed/skipped equivalence test
5656
Startpoint: r1 (rising edge-triggered flip-flop clocked by clk)
5757
Endpoint: r2 (rising edge-triggered flip-flop clocked by clk)

src/rsz/test/repair_setup1_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Path Type: max
5151
final | 4 | 1 | 0 | 0 | 0 | -4.6% | 0.013 | 0.0 | 0 | r2/D
5252
--------------------------------------------------------------------------------------------------------------
5353
[INFO RSZ-0059] Removed 4 buffers.
54-
[INFO RSZ-0041] Resized 1 instances.
54+
[INFO RSZ-0051] Resized 1 instances, 1 sized up, 0 sized down.
5555
Repair timing output passed/skipped equivalence test
5656
Startpoint: r1 (rising edge-triggered flip-flop clocked by clk)
5757
Endpoint: r2 (rising edge-triggered flip-flop clocked by clk)

src/rsz/test/repair_setup3.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818
7* | 0 | 2 | 0 | 0 | 0 | +5.1% | -1.790 | -1.9 | 2 | r3/D
1919
final | 0 | 2 | 0 | 0 | 0 | +5.1% | -1.790 | -1.9 | 2 | r3/D
2020
--------------------------------------------------------------------------------------------------------------
21-
[INFO RSZ-0041] Resized 2 instances.
21+
[INFO RSZ-0051] Resized 2 instances, 2 sized up, 0 sized down.
2222
[WARNING RSZ-0062] Unable to repair all setup violations.
2323
Repair timing output passed/skipped equivalence test

src/rsz/test/repair_setup3_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818
7* | 0 | 2 | 0 | 0 | 0 | +5.1% | -1.790 | -1.9 | 2 | r3/D
1919
final | 0 | 2 | 0 | 0 | 0 | +5.1% | -1.790 | -1.9 | 2 | r3/D
2020
--------------------------------------------------------------------------------------------------------------
21-
[INFO RSZ-0041] Resized 2 instances.
21+
[INFO RSZ-0051] Resized 2 instances, 2 sized up, 0 sized down.
2222
[WARNING RSZ-0062] Unable to repair all setup violations.
2323
Repair timing output passed/skipped equivalence test

src/rsz/test/repair_setup4_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ tns max -6.294
1717
--------------------------------------------------------------------------------------------------------------
1818
[INFO RSZ-0059] Removed 4 buffers.
1919
[INFO RSZ-0040] Inserted 2 buffers.
20-
[INFO RSZ-0041] Resized 1 instances.
20+
[INFO RSZ-0051] Resized 1 instances, 1 sized up, 0 sized down.
2121
[WARNING RSZ-0062] Unable to repair all setup violations.
2222
Repair timing output passed/skipped equivalence test
2323
worst slack max -0.48

src/rsz/test/repair_setup5.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ worst slack max -1.88
1515
0 | 0 | 0 | 0 | 0 | 0 | +0.0% | -1.880 | -1.9 | 1 | u5/A
1616
final | 0 | 12 | 0 | 0 | 0 | +46.7% | 0.086 | 0.0 | 0 | u5/A
1717
--------------------------------------------------------------------------------------------------------------
18-
[INFO RSZ-0041] Resized 12 instances.
18+
[INFO RSZ-0051] Resized 12 instances, 12 sized up, 0 sized down.
1919
Repair timing output passed/skipped equivalence test
2020
worst slack max 0.09

src/rsz/test/repair_setup6.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ worst slack max -0.39
2626
--------------------------------------------------------------------------------------------------------------
2727
[INFO RSZ-0059] Removed 3 buffers.
2828
[INFO RSZ-0040] Inserted 1 buffers.
29-
[INFO RSZ-0041] Resized 2 instances.
29+
[INFO RSZ-0051] Resized 2 instances, 2 sized up, 0 sized down.
3030
Repair timing output passed/skipped equivalence test
3131
worst slack max 0.01
3232
worst slack max -0.10

src/rsz/test/repair_setup6_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ worst slack max -0.39
2626
--------------------------------------------------------------------------------------------------------------
2727
[INFO RSZ-0059] Removed 2 buffers.
2828
[INFO RSZ-0040] Inserted 1 buffers.
29-
[INFO RSZ-0041] Resized 2 instances.
29+
[INFO RSZ-0051] Resized 2 instances, 2 sized up, 0 sized down.
3030
Repair timing output passed/skipped equivalence test
3131
worst slack max 0.00
3232
worst slack max -0.15

src/rsz/test/repair_setup7.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ worst slack max -1.95
1515
final | 0 | 27 | 2 | 0 | 0 | +69.4% | -0.631 | -3.1 | 6 | r2/D
1616
--------------------------------------------------------------------------------------------------------------
1717
[INFO RSZ-0040] Inserted 2 buffers.
18-
[INFO RSZ-0041] Resized 27 instances.
18+
[INFO RSZ-0051] Resized 27 instances, 27 sized up, 0 sized down.
1919
[WARNING RSZ-0062] Unable to repair all setup violations.
2020
Repair timing output passed/skipped equivalence test
2121
worst slack max -0.63

src/rsz/test/repair_setup7_limit.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ worst slack max -1.95
2626
final | 0 | 12 | 1 | 0 | 0 | +7.3% | -0.928 | -3.8 | 6 | r2/D
2727
--------------------------------------------------------------------------------------------------------------
2828
[INFO RSZ-0040] Inserted 1 buffers.
29-
[INFO RSZ-0041] Resized 12 instances.
29+
[INFO RSZ-0051] Resized 12 instances, 12 sized up, 0 sized down.
3030
[WARNING RSZ-0062] Unable to repair all setup violations.
3131
Repair timing output passed/skipped equivalence test
3232
worst slack max -0.93

src/rsz/test/repair_setup7_multi.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ worst slack max -1.95
1616
final | 0 | 12 | 1 | 0 | 0 | +13.2% | -0.744 | -3.6 | 6 | r2/D
1717
--------------------------------------------------------------------------------------------------------------
1818
[INFO RSZ-0040] Inserted 1 buffers.
19-
[INFO RSZ-0041] Resized 12 instances.
19+
[INFO RSZ-0051] Resized 12 instances, 12 sized up, 0 sized down.
2020
[WARNING RSZ-0062] Unable to repair all setup violations.
2121
Repair timing output passed/skipped equivalence test
2222
worst slack max -0.74

src/rsz/test/repair_setup8.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
4* | 0 | 2 | 0 | 0 | 0 | +5.1% | -1.790 | -1.9 | 1 | r3/D
1717
final | 0 | 2 | 0 | 0 | 0 | +5.1% | -1.790 | -1.9 | 1 | r3/D
1818
--------------------------------------------------------------------------------------------------------------
19-
[INFO RSZ-0041] Resized 2 instances.
19+
[INFO RSZ-0051] Resized 2 instances, 2 sized up, 0 sized down.
2020
[WARNING RSZ-0062] Unable to repair all setup violations.
2121
Repair timing output passed/skipped equivalence test

0 commit comments

Comments
 (0)