From: Douglas Gregor Date: Wed, 21 Dec 2011 15:12:03 +0000 (+0000) Subject: Implement a trivial, obvious optimization for deserialization of X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=87dd4f7f43593d86add23faab58e7393aaa2219f;p=clang Implement a trivial, obvious optimization for deserialization of redeclaration chains: only ever have the reader search for redeclarations of the first (canonical) declaration, since we only ever record redeclaration ranges for the that declaration. Searching for redeclarations of non-canonical declarations will never find anything, so it's a complete waste of time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147055 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp index 77ea318dc0..163cbadcd3 100644 --- a/lib/Serialization/ASTReaderDecl.cpp +++ b/lib/Serialization/ASTReaderDecl.cpp @@ -1416,8 +1416,8 @@ void ASTDeclReader::VisitRedeclarable(Redeclarable *D) { } // Note that we need to load the other declaration chains for this ID. - if (Reader.PendingDeclChainsKnown.insert(ThisDeclID)) - Reader.PendingDeclChains.push_back(ThisDeclID); + if (Reader.PendingDeclChainsKnown.insert(FirstDeclID)) + Reader.PendingDeclChains.push_back(FirstDeclID); } //===----------------------------------------------------------------------===//