From 8bef5cd49a8bb66b777cc3c51f9fb31bffeaa580 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Sat, 9 Mar 2019 17:33:56 +0000 Subject: Modules: Rename MemoryBufferCache to InMemoryModuleCache Change MemoryBufferCache to InMemoryModuleCache, moving it from Basic to Serialization. Another patch will start using it to manage module build more explicitly, but this is split out because it's mostly mechanical. Because of the move to Serialization we can no longer abuse the Preprocessor to forward it to the ASTReader. Besides the rename and file move, that means Preprocessor::Preprocessor has one fewer parameter and ASTReader::ASTReader has one more. llvm-svn: 355777 --- clang/lib/Serialization/ModuleManager.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'clang/lib/Serialization/ModuleManager.cpp') diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp index 72b557f..173fadc 100644 --- a/clang/lib/Serialization/ModuleManager.cpp +++ b/clang/lib/Serialization/ModuleManager.cpp @@ -14,10 +14,10 @@ #include "clang/Serialization/ModuleManager.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/LLVM.h" -#include "clang/Basic/MemoryBufferCache.h" #include "clang/Lex/HeaderSearch.h" #include "clang/Lex/ModuleMap.h" #include "clang/Serialization/GlobalModuleIndex.h" +#include "clang/Serialization/InMemoryModuleCache.h" #include "clang/Serialization/Module.h" #include "clang/Serialization/PCHContainerOperations.h" #include "llvm/ADT/STLExtras.h" @@ -159,12 +159,13 @@ ModuleManager::addModule(StringRef FileName, ModuleKind Type, // Load the contents of the module if (std::unique_ptr Buffer = lookupBuffer(FileName)) { // The buffer was already provided for us. - NewModule->Buffer = &PCMCache->addBuffer(FileName, std::move(Buffer)); + NewModule->Buffer = &ModuleCache->addBuffer(FileName, std::move(Buffer)); // Since the cached buffer is reused, it is safe to close the file // descriptor that was opened while stat()ing the PCM in // lookupModuleFile() above, it won't be needed any longer. Entry->closeFile(); - } else if (llvm::MemoryBuffer *Buffer = PCMCache->lookupBuffer(FileName)) { + } else if (llvm::MemoryBuffer *Buffer = + getModuleCache().lookupBuffer(FileName)) { NewModule->Buffer = Buffer; // As above, the file descriptor is no longer needed. Entry->closeFile(); @@ -185,7 +186,7 @@ ModuleManager::addModule(StringRef FileName, ModuleKind Type, return Missing; } - NewModule->Buffer = &PCMCache->addBuffer(FileName, std::move(*Buf)); + NewModule->Buffer = &getModuleCache().addBuffer(FileName, std::move(*Buf)); } // Initialize the stream. @@ -197,7 +198,7 @@ ModuleManager::addModule(StringRef FileName, ModuleKind Type, ExpectedSignature, ErrorStr)) { // Try to remove the buffer. If it can't be removed, then it was already // validated by this process. - if (!PCMCache->tryToRemoveBuffer(NewModule->FileName)) + if (!getModuleCache().tryToRemoveBuffer(NewModule->FileName)) FileMgr.invalidateCache(NewModule->File); return OutOfDate; } @@ -267,11 +268,11 @@ void ModuleManager::removeModules( // rebuilt (or there was an error). Invalidate them so that we can load the // new files that will be renamed over the old ones. // - // The PCMCache tracks whether the module was successfully loaded in another - // thread/context; in that case, it won't need to be rebuilt (and we can't - // safely invalidate it anyway). + // The ModuleCache tracks whether the module was successfully loaded in + // another thread/context; in that case, it won't need to be rebuilt (and + // we can't safely invalidate it anyway). if (LoadedSuccessfully.count(&*victim) == 0 && - !PCMCache->tryToRemoveBuffer(victim->FileName)) + !getModuleCache().tryToRemoveBuffer(victim->FileName)) FileMgr.invalidateCache(victim->File); } @@ -327,11 +328,12 @@ void ModuleManager::moduleFileAccepted(ModuleFile *MF) { ModulesInCommonWithGlobalIndex.push_back(MF); } -ModuleManager::ModuleManager(FileManager &FileMgr, MemoryBufferCache &PCMCache, +ModuleManager::ModuleManager(FileManager &FileMgr, + InMemoryModuleCache &ModuleCache, const PCHContainerReader &PCHContainerRdr, - const HeaderSearch& HeaderSearchInfo) - : FileMgr(FileMgr), PCMCache(&PCMCache), PCHContainerRdr(PCHContainerRdr), - HeaderSearchInfo(HeaderSearchInfo) {} + const HeaderSearch &HeaderSearchInfo) + : FileMgr(FileMgr), ModuleCache(&ModuleCache), + PCHContainerRdr(PCHContainerRdr), HeaderSearchInfo(HeaderSearchInfo) {} ModuleManager::~ModuleManager() { delete FirstVisitState; } -- cgit v1.1