summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaCXXScopeSpec.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-01-30 01:04:22 +0000
committerDouglas Gregor <dgregor@apple.com>2009-01-30 01:04:22 +0000
commited8f2887082bbc5c696e7a71217482f9089ce0c2 (patch)
treedc2cd940a0fd2a4289b2176c414a8dd7003d6d43 /clang/lib/Sema/SemaCXXScopeSpec.cpp
parent199740651ce754663b3d488e0a25eada7153ebcc (diff)
downloadbcm5719-llvm-ed8f2887082bbc5c696e7a71217482f9089ce0c2.tar.gz
bcm5719-llvm-ed8f2887082bbc5c696e7a71217482f9089ce0c2.zip
Eliminated LookupCriteria, whose creation was causing a bottleneck for
LookupName et al. Instead, use an enum and a bool to describe its contents. Optimized the C/Objective-C path through LookupName, eliminating any unnecessarily C++isms. Simplify IdentifierResolver::iterator, removing some code and arguments that are no longer used. Eliminated LookupDeclInScope/LookupDeclInContext, moving all callers over to LookupName, LookupQualifiedName, or LookupParsedName, as appropriate. All together, I'm seeing a 0.2% speedup on Cocoa.h with PTH and -disable-free. Plus, we're down to three name-lookup routines. llvm-svn: 63354
Diffstat (limited to 'clang/lib/Sema/SemaCXXScopeSpec.cpp')
-rw-r--r--clang/lib/Sema/SemaCXXScopeSpec.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaCXXScopeSpec.cpp b/clang/lib/Sema/SemaCXXScopeSpec.cpp
index cf93571eb23..c77325f42d8 100644
--- a/clang/lib/Sema/SemaCXXScopeSpec.cpp
+++ b/clang/lib/Sema/SemaCXXScopeSpec.cpp
@@ -36,10 +36,7 @@ Sema::CXXScopeTy *Sema::ActOnCXXNestedNameSpecifier(Scope *S,
SourceLocation IdLoc,
SourceLocation CCLoc,
IdentifierInfo &II) {
- Decl *SD = LookupParsedName(S, SS, &II,
- LookupCriteria(LookupCriteria::NestedNameSpecifier,
- /*RedeclarationOnly=*/false,
- /*CPlusPlus=*/true));
+ Decl *SD = LookupParsedName(S, &SS, &II, LookupNestedNameSpecifierName);
if (SD) {
if (TypedefDecl *TD = dyn_cast<TypedefDecl>(SD)) {
@@ -60,10 +57,7 @@ Sema::CXXScopeTy *Sema::ActOnCXXNestedNameSpecifier(Scope *S,
// ordinary name lookup, which can help us produce better error
// messages.
if (!SD)
- SD = LookupParsedName(S, SS, &II,
- LookupCriteria(LookupCriteria::Ordinary,
- /*RedeclarationOnly=*/false,
- /*CPlusPlus=*/true));
+ SD = LookupParsedName(S, &SS, &II, LookupOrdinaryName);
unsigned DiagID;
if (SD)
DiagID = diag::err_expected_class_or_namespace;
OpenPOWER on IntegriCloud