[clang] Reduce memory usage in AST parent map generation by lazily checking if nodes have been seen (PR #129934)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 6 06:23:14 PST 2025
================
@@ -70,16 +93,37 @@ class ParentMapContext::ParentMap {
push_back(Value);
}
bool contains(const DynTypedNode &Value) {
- return Seen.contains(Value);
+ assert(Value.getMemoizationData());
+ bool found = FragileLazySeenCache.contains(&Value);
+ while (!found && ItemsProcessed < Items.size()) {
+ found |= FragileLazySeenCache.insert(&Items[ItemsProcessed]).second;
----------------
erichkeane wrote:
I found it jarring/confusing at first, particularly with a bool.
https://github.com/llvm/llvm-project/pull/129934
More information about the cfe-commits
mailing list