Skip to content

Comments

Clock gating#7773

Merged
maliberty merged 31 commits intoThe-OpenROAD-Project:masterfrom
antmicro:cgt
Sep 8, 2025
Merged

Clock gating#7773
maliberty merged 31 commits intoThe-OpenROAD-Project:masterfrom
antmicro:cgt

Conversation

@kbieganski
Copy link
Contributor

@kbieganski kbieganski commented Jul 10, 2025

Adds cgt, a module that performs automatic clock gating based on this paper.
It uses the logic extractor from rmp, so that part was extracted into lext, a common module for both rmp and cgt.
ABC is used for verifying gating conditions.

Example power results

Ibex simple system on Sky130

Before

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             2.00e-02   9.81e-04   1.18e-08   2.10e-02  32.9%
Combinational          1.19e-02   1.28e-02   2.99e-08   2.47e-02  38.7%
Clock                  1.18e-02   6.35e-03   1.83e-09   1.82e-02  28.4%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  4.37e-02   2.01e-02   4.35e-08   6.38e-02 100.0%
                          68.5%      31.5%       0.0% 

After

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             5.46e-03   9.85e-04   1.18e-08   6.45e-03  13.7%
Combinational          1.19e-02   1.28e-02   3.00e-08   2.47e-02  52.5%
Clock                  1.17e-02   4.25e-03   1.87e-09   1.59e-02  33.8%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  2.91e-02   1.80e-02   4.36e-08   4.71e-02 100.0%
                          61.7%      38.3%       0.0%

A proprietary design on ASAP7

Before

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             2.14e+00   1.94e-01   2.65e-06   2.33e+00  15.7%
Combinational          7.34e+00   5.20e+00   3.75e-05   1.25e+01  84.3%
Clock                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  9.48e+00   5.39e+00   4.01e-05   1.49e+01 100.0%
                          63.7%      36.3%       0.0% 

After

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             9.28e-01   1.94e-01   2.65e-06   1.12e+00   8.2%
Combinational          7.33e+00   5.19e+00   3.76e-05   1.25e+01  91.7%
Clock                  5.44e-03   3.73e-03   9.18e-09   9.17e-03   0.1%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  8.26e+00   5.39e+00   4.02e-05   1.37e+01 100.0%
                          60.5%      39.5%       0.0% 

Co-authored-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Jan Bylicki <jbylicki@antmicro.com>
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

@maliberty
Copy link
Member

I'll hold off on review until you resolve the various failures

@maliberty
Copy link
Member

Note that you will need to make this work with Bazel as well as cmake

@kbieganski
Copy link
Contributor Author

Sure, no problem. Shouldn't the CI run on our fork as well? (only the security check does)
Also, what is that check about? The error is not clear to me - are digits forbidden in filenames?

@maliberty
Copy link
Member

I don't think we allow Jenkins to be used on forks as that would allow arbitrary workloads to be started (eg someone will inevitably replace OR with a bit coin miner).

@kbieganski
Copy link
Contributor Author

Right, but I mean the format checks etc, that's just GitHub Actions, right?

@maliberty
Copy link
Member

I expect those would run in a fork

@kbieganski kbieganski force-pushed the cgt branch 2 times, most recently from ced178f to f04a99f Compare July 11, 2025 15:37
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

@QuantamHD
Copy link
Collaborator

@vvbandeira @maliberty Can you take a look at the scan code ci step, looks like they need a whitelist?

@maliberty
Copy link
Member

I don't think we should worry about the whitelist until we settle the question of module names.

@kbieganski
Copy link
Contributor Author

What name would you propose for the logic extractor? It extracts/exports logic to ABC. How about just abc, and make it contain all helpers for interacting with ABC?

@maliberty
Copy link
Member

I don't think of it as extracting logic but more of a local cutout or window. Extraction is a very overloaded word as well and often refers to computing a derived result (e.g. rc extraction, connectivity extraction, device parameter extraction, etc). I expect the idea of a small piece of logic to be useful in many context so abc would not be a good name. I think rsz will want the same for example.

I like 'Logic Cutout' but am open to other ideas.

@rovinski
Copy link
Collaborator

"logic partition"?

Also, I am curious about how this compares to the clock gating done at the synthesis level. I think Yosys supports this now, and it is generally more suitable to be done at the synthesis stage. While 15% power savings are nothing to scoff at, I usually see 30-60% savings from commercial tools.

@maliberty
Copy link
Member

Partition sounds a bit like min-cut paritioning of par/TritonPart.

@QuantamHD
Copy link
Collaborator

QuantamHD commented Jul 15, 2025

"logic partition"?

Also, I am curious about how this compares to the clock gating done at the synthesis level. I think Yosys supports this now, and it is generally more suitable to be done at the synthesis stage. While 15% power savings are nothing to scoff at, I usually see 30-60% savings from commercial tools.

This is a similar technique as what's used in other tools. The one in Yosys just goes off trivial enable signals which doesn't actually save much power since those signals have very low toggle rates in practice.

I asked Yosys to implement the former, and it didn't really deliver the results I was expecting.

@QuantamHD
Copy link
Collaborator

QuantamHD commented Jul 15, 2025

@maliberty I think your name suggestions need to be a 3 letter monicor not a general thing about Logic Extraction. The class is already called LogicCut.

I would propose syn, and it would encapsulate synthesis related functionality. Or throw it in utl, or get rid of the 3 letter name requirement.

@QuantamHD
Copy link
Collaborator

@kbieganski The decision has been made by Matt and I. Please rename it cut

@maliberty
Copy link
Member

It feels like too much of rmp got pulled into lext. I stopped commenting on it per file but I feel lext should not need an abc dependency and should be generic infrastructure. Rmp is the right place for applying abc to a logic cut.

@QuantamHD
Copy link
Collaborator

QuantamHD commented Jul 16, 2025

It feels like too much of rmp got pulled into lext. I stopped commenting on it per file but I feel lext should not need an abc dependency and should be generic infrastructure. Rmp is the right place for applying abc to a logic cut.

Logic cuts build mapped abc networks. So it will by default need an abc dep. That's part of the design of logic cut. It can be built from STA and emit networks in other formats, and take those other formats and insert them back into odb/sta

Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@maliberty
Copy link
Member

Please resolve the merge conflicts

@kbieganski
Copy link
Contributor Author

I'm in the process of doing that. Latest changes are a bit tricky to integrate.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

@github-actions
Copy link
Contributor

github-actions bot commented Sep 4, 2025

clang-tidy review says "All clean, LGTM! 👍"

@maliberty
Copy link
Member

Please ping when this is ready for review

@kbieganski
Copy link
Contributor Author

@maliberty It's ready, the CI failures seem to be some network issues.
Also, updated the description, as after some tweaks the Ibex case now gives 35% improvement.

@maliberty
Copy link
Member

cgt.ibex_sky130hd.tcl failed in pr-merge. Please merge master and resolve.

@kbieganski
Copy link
Contributor Author

The CI is green now.

@maliberty maliberty merged commit ee8fab7 into The-OpenROAD-Project:master Sep 8, 2025
11 checks passed
@kbieganski kbieganski deleted the cgt branch September 8, 2025 14:58
@maliberty
Copy link
Member

@kbieganski since merging this we find it fails non-deterministically in our ci for the aes_nangate45.tcl test. I'm looking into it but I hope you can help as well as the author. If the cause isn't found soon I will revert or disable this change.

@kbieganski
Copy link
Contributor Author

I'll help. The diff from the artifacts is:

30,32c30
< Differences found at line 53020.
<     .ZN(_02445_));
<     .ZN(_0
---
> No differences found. 

So it's as if the file was cut off, but the one in the artifacts is correct.

Are the tests run in parallel? They write to the same file, so perhaps one test overwrites the other's result?

@gadfort
Copy link
Collaborator

gadfort commented Sep 9, 2025

@kbieganski yes the tests can run in parallel, you might want to update the tests to write the unique files based on the test name to avoid this

@kbieganski
Copy link
Contributor Author

@gadfort @maliberty #8281

@maliberty
Copy link
Member

You should use make_result_file - see any other unit test for examples

@maliberty
Copy link
Member

I did run with asan while trying to figure it out and there are a bunch of leaks from within abc. I presume they are somehow related to cgt's usage:

=================================================================
==1616090==ERROR: LeakSanitizer: detected memory leaks

Indirect leak of 22800 byte(s) in 285 object(s) allocated from:
    #0 0x784fd68fd340 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
    #1 0x61c9aadd0b89 in abc::Mio_LibraryReadPin(char**, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bab89) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 11280 byte(s) in 94 object(s) allocated from:
    #0 0x784fd68fd340 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
    #1 0x61c9aadd1d3e in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbd3e) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 4096 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aaeaef7c in abc::Mem_FlexEntryFetch(abc::Mem_Flex_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x5298f7c) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 2304 byte(s) in 36 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcda59 in abc::Mio_ParseFormulaOper(int*, int, abc::Vec_Ptr_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b7a59) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 2240 byte(s) in 35 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcd750 in abc::Mio_ParseFormulaOper(int*, int, abc::Vec_Ptr_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b7750) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 2208 byte(s) in 92 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aae895e8 in abc::st__insert(abc::st__table*, char const*, char*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x52735e8) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 1227 byte(s) in 94 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd1de3 in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbde3) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 960 byte(s) in 15 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcf46f in abc::Mio_ParseFormula(char*, char**, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b946f) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 795 byte(s) in 94 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd1d6e in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbd6e) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 794 byte(s) in 285 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd0bb2 in abc::Mio_LibraryReadPin(char**, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51babb2) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 752 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd0f7f in abc::Mio_LibrarySortGates(abc::Mio_LibraryStruct_t_*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51baf7f) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 752 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd0fc2 in abc::Mio_LibrarySortGates(abc::Mio_LibraryStruct_t_*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bafc2) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 576 byte(s) in 36 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcda07 in abc::Mio_ParseFormulaOper(int*, int, abc::Vec_Ptr_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b7a07) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 560 byte(s) in 35 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcd572 in abc::Mio_ParseFormulaOper(int*, int, abc::Vec_Ptr_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b7572) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 512 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aaeaee4b in abc::Mem_FlexStart() (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x5298e4b) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 384 byte(s) in 6 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcd356 in abc::Mio_ParseFormulaOper(int*, int, abc::Vec_Ptr_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b7356) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 265 byte(s) in 94 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd0a7a in abc::chomp(char*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51baa7a) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 256 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd340 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
    #1 0x61c9aadd1aed in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbaed) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 240 byte(s) in 15 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcf462 in abc::Mio_ParseFormula(char*, char**, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b9462) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 184 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aae88f39 in abc::rehash(abc::st__table*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x5272f39) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 100 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd1b33 in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbb33) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 96 byte(s) in 6 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadcd30b in abc::Mio_ParseFormulaOper(int*, int, abc::Vec_Ptr_t_*, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51b730b) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9ab4ad3fe in abc::Mio_GateParseFormula(abc::Mio_GateStruct_t_*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x58973fe) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9ab4ad0be in abc::Mio_GateParseFormula(abc::Mio_GateStruct_t_*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x58970be) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 56 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd340 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
    #1 0x61c9aaeaee33 in abc::Mem_FlexStart() (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x5298e33) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aae8918d in abc::st__init_table(int (*)(char const*, char const*), int (*)(char const*, int)) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x527318d) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 30 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd1f62 in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbf62) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9ab4ad0b1 in abc::Mio_GateParseFormula(abc::Mio_GateStruct_t_*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x58970b1) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9ab4ad3f1 in abc::Mio_GateParseFormula(abc::Mio_GateStruct_t_*) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x58973f1) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x784fd68fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x61c9aadd1b1f in abc::Mio_LibraryRead(char*, char*, char*, int, int) (/workspace/w7/tools/install/OpenROAD/bin/openroad+0x51bbb1f) (BuildId: c2e87312e5212cb87ed4ab50a77728fe0865f25b)

SUMMARY: AddressSanitizer: 53691 byte(s) leaked in 1237 allocation(s).

@kbieganski
Copy link
Contributor Author

I'll take a look at those

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants