diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-10-21 10:07:26 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-10-21 10:07:26 +0000 |
commit | e8c51fdbd6c74cfa07bc9fae089bc4587cb2226b (patch) | |
tree | 09ddff7de42fa6f9cfa6600b0739bc2b7b648b9e /clang/lib/ASTMatchers/ASTMatchFinder.cpp | |
parent | 7dacc242d90c98f74cb14d8e841e4a040e33bb81 (diff) | |
download | bcm5719-llvm-e8c51fdbd6c74cfa07bc9fae089bc4587cb2226b.tar.gz bcm5719-llvm-e8c51fdbd6c74cfa07bc9fae089bc4587cb2226b.zip |
Revert "[AST] Put TypeLocs and NestedNameSpecifierLocs into the ParentMap."
Putting DynTypedNode in the ParentMap bloats its memory foot print.
Before the void* key had 8 bytes, now we're at 40 bytes per key which
can mean multiple gigabytes increase for large ASTs and this count
doesn't even include all the added TypeLoc nodes. Revert until I come
up with a better data structure.
This reverts commit r250831.
llvm-svn: 250889
Diffstat (limited to 'clang/lib/ASTMatchers/ASTMatchFinder.cpp')
-rw-r--r-- | clang/lib/ASTMatchers/ASTMatchFinder.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/ASTMatchers/ASTMatchFinder.cpp b/clang/lib/ASTMatchers/ASTMatchFinder.cpp index 571e7dac240..8807b13c5ed 100644 --- a/clang/lib/ASTMatchers/ASTMatchFinder.cpp +++ b/clang/lib/ASTMatchers/ASTMatchFinder.cpp @@ -621,6 +621,9 @@ private: if (Node.get<TranslationUnitDecl>() == ActiveASTContext->getTranslationUnitDecl()) return false; + assert(Node.getMemoizationData() && + "Invariant broken: only nodes that support memoization may be " + "used in the parent map."); MatchKey Key; Key.MatcherID = Matcher.getID(); @@ -864,11 +867,7 @@ bool MatchASTVisitor::TraverseNestedNameSpecifier(NestedNameSpecifier *NNS) { bool MatchASTVisitor::TraverseNestedNameSpecifierLoc( NestedNameSpecifierLoc NNS) { - if (!NNS) - return true; - match(NNS); - // We only match the nested name specifier here (as opposed to traversing it) // because the traversal is already done in the parallel "Loc"-hierarchy. if (NNS.hasQualifier()) |