[Serialization] Refactor subset of ModuleFile into ModuleFileSharedCore

The difference with `ModuleFile` is that `ModuleFileSharedCore` provides immutable data and is independent of a particular ASTContext.
It is designed to be able to be shared across multiple `ModuleFile`s of different `ASTContext`s in a thread-safe manner.
This commit is contained in:
Argyrios Kyrtzidis
2020-05-25 14:00:51 -07:00
parent 9c20198498
commit 99c29145b2
13 changed files with 2780 additions and 2332 deletions

View File

@@ -58,7 +58,7 @@ class SerializedModuleLoaderBase : public ModuleLoader {
using LoadedModulePair = std::pair<std::unique_ptr<ModuleFile>, unsigned>;
std::vector<LoadedModulePair> LoadedModuleFiles;
SmallVector<std::unique_ptr<llvm::MemoryBuffer>, 2> OrphanedMemoryBuffers;
SmallVector<std::unique_ptr<ModuleFile>, 2> OrphanedModuleFiles;
protected:
ASTContext &Ctx;