mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 13:16:49 +00:00

This PR adds new `ModuleCache` interface to Clang's implicitly-built modules machinery. The main motivation for this change is to create a second implementation that uses a more efficient kind of `llvm::AdvisoryLock` during dependency scanning. In addition to the lock abstraction, the `ModuleCache` interface also manages the existing `InMemoryModuleCache` instance. I found that compared to keeping these separate/independent, the code is a bit simpler now, since these are two tightly coupled concepts. I can envision a more efficient implementation of the `InMemoryModuleCache` for the single-process case too, which will be much easier to implement with the current setup. This is not intended to be a functional change.
43 lines
667 B
CMake
43 lines
667 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
BitReader
|
|
BitstreamReader
|
|
Object
|
|
Support
|
|
TargetParser
|
|
)
|
|
|
|
|
|
add_clang_library(clangSerialization
|
|
ASTCommon.cpp
|
|
ASTReader.cpp
|
|
ASTReaderDecl.cpp
|
|
ASTReaderStmt.cpp
|
|
ASTWriter.cpp
|
|
ASTWriterDecl.cpp
|
|
ASTWriterStmt.cpp
|
|
GeneratePCH.cpp
|
|
GlobalModuleIndex.cpp
|
|
InMemoryModuleCache.cpp
|
|
ModuleCache.cpp
|
|
ModuleFile.cpp
|
|
ModuleFileExtension.cpp
|
|
ModuleManager.cpp
|
|
PCHContainerOperations.cpp
|
|
ObjectFilePCHContainerReader.cpp
|
|
TemplateArgumentHasher.cpp
|
|
|
|
ADDITIONAL_HEADERS
|
|
ASTCommon.h
|
|
ASTReaderInternals.h
|
|
|
|
LINK_LIBS
|
|
clangAST
|
|
clangBasic
|
|
clangLex
|
|
clangSema
|
|
|
|
DEPENDS
|
|
omp_gen
|
|
ClangDriverOptions
|
|
)
|