llvm-project/clang/lib/AST
Richard Smith f634c90069 Fix Objective-C compilation-time performance regression introduced in r152608.
Reintroduce lazy name lookup table building, ensuring that the lazy building step
produces the same lookup table that would be built by the eager step.

Avoid building a lookup table for the translation unit outside C++, even in cases
where we can't recover the contents of the table from the declaration chain on
the translation unit, since we're not going to perform qualified lookup into it
anyway. Continue to support lazily building such lookup tables for now, though,
since ASTMerge uses them.

In my tests, this performs very similarly to ToT with r152608 backed out, for C,
Obj-C and C++, and does not suffer from PR10447.

llvm-svn: 152905
2012-03-16 06:12:59 +00:00
..
APValue.cpp Assign APValues by swapping from a temporary. Removes a bunch of unnecessary 2012-03-10 00:28:11 +00:00
ASTConsumer.cpp Change ASTConsumer::HandleTopLevelDecl to return true for the parser to continue 2011-11-18 00:26:59 +00:00
ASTContext.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
ASTDiagnostic.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
ASTImporter.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
AttrImpl.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
CMakeLists.txt Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, 2012-03-06 20:05:56 +00:00
CXXABI.h Move isNearlyEmpty out into the ASTContext so it can be called from CodeGen as well. 2010-11-25 01:51:53 +00:00
CXXInheritance.cpp Actually remove the duplicated elements from the vector. 2012-02-23 18:35:56 +00:00
Decl.cpp Instantiating a class template should not instantiate the definition of any 2012-03-14 23:13:10 +00:00
DeclBase.cpp Fix Objective-C compilation-time performance regression introduced in r152608. 2012-03-16 06:12:59 +00:00
DeclCXX.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
DeclFriend.cpp When creating declarations that are deserialized from an module file, 2012-01-05 21:55:30 +00:00
DeclGroup.cpp I lied. Kill off a few more Destroy methods 2010-07-25 18:32:30 +00:00
DeclObjC.cpp [Sema] Prefer to use ObjCInterfaceDecl's protocol_begin()/protocol_end() iterators instead of 2012-03-13 01:09:41 +00:00
DeclPrinter.cpp Change @import to @__experimental_modules_import. We are not ready to commit to a particular syntax for modules, 2012-03-01 22:07:04 +00:00
DeclTemplate.cpp Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to 2012-03-10 09:33:50 +00:00
DeclarationName.cpp Literal operator suffixes and regular names live in separate namespaces. 2012-03-09 08:37:16 +00:00
DumpXML.cpp Reapply r151638 and r151641. 2012-02-29 10:24:19 +00:00
Expr.cpp ObjCBoolLiterals (__objc_yes/__objc_no) behave like C++ booleans (true/false). They are NOT objects. 2012-03-12 17:53:02 +00:00
ExprCXX.cpp AST representation for user-defined literals, plus just enough of semantic 2012-03-07 08:35:16 +00:00
ExprClassification.cpp Alternate fix to PR12248: put Sema in charge of special-casing 2012-03-13 00:37:01 +00:00
ExprConstant.cpp [Sema] Introduce a data recursive evaluator specific to binary operators. 2012-03-15 18:07:16 +00:00
ExternalASTSource.cpp Don't force the complete deserialization of the visible-declarations 2011-08-24 21:56:08 +00:00
InheritViz.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
ItaniumCXXABI.cpp Extend the ASTContext constructor to delay the initialization of 2011-09-02 00:18:52 +00:00
ItaniumMangle.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
LambdaMangleContext.cpp Basic support for name mangling of C++11 lambda expressions. Because 2012-02-20 19:44:39 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
Mangle.cpp Switch the ObjC*Decl raw_stream overloads to take a reference, for consistency with NamedDecls. 2012-02-07 11:57:45 +00:00
MicrosoftCXXABI.cpp Extend the ASTContext constructor to delay the initialization of 2011-09-02 00:18:52 +00:00
MicrosoftMangle.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
NSAPI.cpp Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, 2012-03-06 20:05:56 +00:00
NestedNameSpecifier.cpp [AST] NestedNameSpecifier's ctor/dtor are trivial and should be inlined. 2012-03-09 01:51:59 +00:00
ParentMap.cpp Fix crash in analyzer diagnostic generation involving subexpressions of OpaqueValueExpr not appearing in the ParentMap. Fixes <rdar://problem/10797980>. 2012-02-18 22:02:57 +00:00
RecordLayout.cpp More ASTRecordLayout changes for MS ABI; based on patch by r4start. 2011-10-21 22:49:56 +00:00
RecordLayoutBuilder.cpp When laying out an Objective-C object, consult 2012-03-15 16:33:08 +00:00
SelectorLocationsKind.cpp Fix crash when using archaic protocol, rdar://10238337 2011-10-05 21:28:06 +00:00
Stmt.cpp [AST/Sema/libclang] Replace getSourceRange().getBegin() with getLocStart(). 2012-03-09 18:35:03 +00:00
StmtDumper.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
StmtIterator.cpp Support for C++11 (non-template) alias declarations. 2011-04-15 14:24:37 +00:00
StmtPrinter.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
StmtProfile.cpp Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to 2012-03-10 09:33:50 +00:00
StmtViz.cpp Adapt to the DOTGraphTraits changes in LLVM. 2009-11-30 14:16:05 +00:00
TemplateBase.cpp Print NamedDecls directly to a raw_ostream where possible. 2012-02-07 11:57:57 +00:00
TemplateName.cpp Print NamedDecls directly to a raw_ostream where possible. 2012-02-07 11:57:57 +00:00
Type.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
TypeLoc.cpp Added source location for the template keyword in DependentTemplateSpecializationTypeLoc nodes (DTSTLoc). 2012-02-06 22:45:07 +00:00
TypePrinter.cpp When overload resolution picks an implicitly-deleted special member 2012-02-15 19:33:52 +00:00
VTTBuilder.cpp Move VTT builder to AST 2011-09-26 01:56:24 +00:00
VTableBuilder.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00