diff options
| author | Lang Hames <lhames@gmail.com> | 2025-10-20 15:59:56 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-20 15:59:56 -0700 |
| commit | c8c86efbbb55e51597c1bd8feb2e947bc0de3422 (patch) | |
| tree | 7f000d04094941a142d24ae23e0ba427c9f7e18c /clang/unittests/Format/FormatTestJava.cpp | |
| parent | e7f370f910701b6c67d41dab80e645227692c58b (diff) | |
| download | llvm-c8c86efbbb55e51597c1bd8feb2e947bc0de3422.zip llvm-c8c86efbbb55e51597c1bd8feb2e947bc0de3422.tar.gz llvm-c8c86efbbb55e51597c1bd8feb2e947bc0de3422.tar.bz2 | |
[ORC] Replace ORC's baked-in dependence tracking with WaitingOnGraph. (#163027)
WaitingOnGraph tracks waiting-on relationships between nodes (intended
to represent symbols in an ORC program) in order to identify nodes that
are *Ready* (i.e. are not waiting on any other nodes) or have *Failed*
(are waiting on some node that cannot be produced).
WaitingOnGraph replaces ORC's baked-in data structures that were
tracking the same information (EmissionDepUnit, EmissionDepUnitInfo,
...). Isolating this information in a separate data structure simplifies
the code, allows us to unit test it, and simplifies performance testing.
The WaitingOnGraph uses several techniques to improve performance
relative to the old data structures, including symbol coalescing
("SuperNodes") and symbol keys that don't perform unnecessary reference
counting (NonOwningSymbolStringPtr).
This commit includes unit tests for common dependence-tracking issues
that have led to ORC bugs in the past.
Diffstat (limited to 'clang/unittests/Format/FormatTestJava.cpp')
0 files changed, 0 insertions, 0 deletions
