diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-10-23 09:04:55 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-10-23 09:04:55 +0000 |
commit | 94355aeff81696e92e26b6022453611c06204e54 (patch) | |
tree | d546c2e9cd3034ed73ff731fdc8daf135b6bb6ac /clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp | |
parent | cae21e4b4ea2b16b5e31ccabb4e014c67558dfbd (diff) | |
download | bcm5719-llvm-94355aeff81696e92e26b6022453611c06204e54.tar.gz bcm5719-llvm-94355aeff81696e92e26b6022453611c06204e54.zip |
[AST] Re-add TypeLocs and NestedNameSpecifierLocs to the ParentMap.
This relands r250831 after some fixes to shrink the ParentMap overall
with one addtional tweak: nodes with pointer identity (e.g. Decl* and
friends) can be store more efficiently so I put them in a separate map.
All other nodes (so far only TypeLoc and NNSLoc) go in a different map
keyed on DynTypedNode. This further uglifies the code but significantly
reduces memory overhead.
Overall this change still make ParentMap significantly larger but it's
nowhere as bad as before. I see about 25 MB over baseline (pre-r251008)
on X86ISelLowering.cpp. If this becomes an issue we could consider
splitting the maps further as DynTypedNode is still larger (32 bytes)
than a single TypeLoc (16 bytes) but I didn't want to introduce even
more complexity now.
Differential Revision: http://reviews.llvm.org/D14011
llvm-svn: 251101
Diffstat (limited to 'clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp')
-rw-r--r-- | clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp b/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp index 66960a0bb2f..8e97566f692 100644 --- a/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp +++ b/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp @@ -448,7 +448,9 @@ TEST_F(RegistryTest, Completion) { CompVector Comps = getCompletions(); // Overloaded EXPECT_TRUE(hasCompletion( - Comps, "hasParent(", "Matcher<Decl|Stmt> hasParent(Matcher<Decl|Stmt>)")); + Comps, "hasParent(", + "Matcher<TemplateArgument|NestedNameSpecifierLoc|Decl|...> " + "hasParent(Matcher<TemplateArgument|NestedNameSpecifierLoc|Decl|...>)")); // Variadic. EXPECT_TRUE(hasCompletion(Comps, "whileStmt(", "Matcher<Stmt> whileStmt(Matcher<WhileStmt>...)")); @@ -464,7 +466,9 @@ TEST_F(RegistryTest, Completion) { EXPECT_TRUE(hasCompletion(WhileComps, "hasBody(", "Matcher<WhileStmt> hasBody(Matcher<Stmt>)")); EXPECT_TRUE(hasCompletion(WhileComps, "hasParent(", - "Matcher<Stmt> hasParent(Matcher<Decl|Stmt>)")); + "Matcher<Stmt> " + "hasParent(Matcher<TemplateArgument|" + "NestedNameSpecifierLoc|Decl|...>)")); EXPECT_TRUE( hasCompletion(WhileComps, "allOf(", "Matcher<T> allOf(Matcher<T>...)")); |