diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-06 18:12:44 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-06 18:12:44 +0000 |
commit | 61a3896d9fe122dafef192a00a7672315761424f (patch) | |
tree | 9583c6d561682adcfd79cb577fa297982d515119 /clang/lib/Serialization | |
parent | b42863e2587fafdc8eb8590319fb080f20e70b55 (diff) | |
download | bcm5719-llvm-61a3896d9fe122dafef192a00a7672315761424f.tar.gz bcm5719-llvm-61a3896d9fe122dafef192a00a7672315761424f.zip |
[PCH] We don't need to instantiate HeaderFileInfoTrait in ASTReader more than once.
We can just re-use the one from HeaderFileInfoLookupTable.
llvm-svn: 176565
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 15 | ||||
-rw-r--r-- | clang/lib/Serialization/Module.cpp | 2 |
2 files changed, 5 insertions, 12 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index c8c1cd9cad7..53474f5b0b5 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -2476,7 +2476,6 @@ bool ASTReader::ReadASTBlock(ModuleFile &F) { case HEADER_SEARCH_TABLE: { F.HeaderFileInfoTableData = Blob.data(); F.LocalNumHeaderFileInfos = Record[1]; - F.HeaderFileFrameworkStrings = Blob.data() + Record[2]; if (Record[0]) { F.HeaderFileInfoTable = HeaderFileInfoLookupTable::Create( @@ -4092,31 +4091,25 @@ Optional<bool> ASTReader::isPreprocessedEntityInFileID(unsigned Index, namespace { /// \brief Visitor used to search for information about a header file. class HeaderFileInfoVisitor { - ASTReader &Reader; const FileEntry *FE; Optional<HeaderFileInfo> HFI; public: - HeaderFileInfoVisitor(ASTReader &Reader, const FileEntry *FE) - : Reader(Reader), FE(FE) { } + explicit HeaderFileInfoVisitor(const FileEntry *FE) + : FE(FE) { } static bool visit(ModuleFile &M, void *UserData) { HeaderFileInfoVisitor *This = static_cast<HeaderFileInfoVisitor *>(UserData); - HeaderFileInfoTrait Trait(This->Reader, M, - &This->Reader.getPreprocessor().getHeaderSearchInfo(), - M.HeaderFileFrameworkStrings); - HeaderFileInfoLookupTable *Table = static_cast<HeaderFileInfoLookupTable *>(M.HeaderFileInfoTable); if (!Table) return false; // Look in the on-disk hash table for an entry for this file name. - HeaderFileInfoLookupTable::iterator Pos = Table->find(This->FE->getName(), - &Trait); + HeaderFileInfoLookupTable::iterator Pos = Table->find(This->FE->getName()); if (Pos == Table->end()) return false; @@ -4129,7 +4122,7 @@ namespace { } HeaderFileInfo ASTReader::GetHeaderFileInfo(const FileEntry *FE) { - HeaderFileInfoVisitor Visitor(*this, FE); + HeaderFileInfoVisitor Visitor(FE); ModuleMgr.visit(&HeaderFileInfoVisitor::visit, &Visitor); if (Optional<HeaderFileInfo> HFI = Visitor.getHeaderFileInfo()) { if (Listener) diff --git a/clang/lib/Serialization/Module.cpp b/clang/lib/Serialization/Module.cpp index 27242d54da9..2eb397176a1 100644 --- a/clang/lib/Serialization/Module.cpp +++ b/clang/lib/Serialization/Module.cpp @@ -33,7 +33,7 @@ ModuleFile::ModuleFile(ModuleKind Kind, unsigned Generation) PreprocessedEntityOffsets(0), NumPreprocessedEntities(0), LocalNumHeaderFileInfos(0), HeaderFileInfoTableData(0), HeaderFileInfoTable(0), - HeaderFileFrameworkStrings(0), LocalNumSubmodules(0), BaseSubmoduleID(0), + LocalNumSubmodules(0), BaseSubmoduleID(0), LocalNumSelectors(0), SelectorOffsets(0), BaseSelectorID(0), SelectorLookupTableData(0), SelectorLookupTable(0), LocalNumDecls(0), DeclOffsets(0), BaseDeclID(0), |