[ty] Garbage-collect reachability constraints (#19414)

This is a follow-on to #19410 that further reduces the memory usage of
our reachability constraints. When finishing the building of a use-def
map, we walk through all of the "final" states and mark only those
reachability constraints as "used". We then throw away the interior TDD
nodes of any reachability constraints that weren't marked as used.

(This helps because we build up quite a few intermediate TDD nodes when
constructing complex reachability constraints. These nodes can never be
accessed if they were _only_ used as an intermediate TDD node. The
marking step ensures that we keep any nodes that ended up being referred
to in some accessible use-def map state.)
This commit is contained in:
Douglas Creager 2025-07-21 14:16:27 -04:00 committed by GitHub
parent b8dec79182
commit 88de5727df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 252 additions and 10 deletions

View file

@ -34,6 +34,7 @@ mod node_key;
pub(crate) mod place;
mod program;
mod python_platform;
mod rank;
pub mod semantic_index;
mod semantic_model;
pub(crate) mod site_packages;