aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/ModuleCache.cpp
diff options
context:
space:
mode:
authorJan Svoboda <jan_svoboda@apple.com>2025-05-19 12:52:56 -0700
committerJan Svoboda <jan_svoboda@apple.com>2025-05-19 12:57:54 -0700
commit72b2219b3e2319e29831e4e9b07c440444f3add6 (patch)
tree642d37b95354df419c9e19630c583a5ce268849b /clang/lib/Serialization/ModuleCache.cpp
parent10d198b32cd0b6aaeeaf1a6217611797c01f47f7 (diff)
downloadllvm-72b2219b3e2319e29831e4e9b07c440444f3add6.zip
llvm-72b2219b3e2319e29831e4e9b07c440444f3add6.tar.gz
llvm-72b2219b3e2319e29831e4e9b07c440444f3add6.tar.bz2
Revert "[clang][modules] Timestamp-less validation API (#139987)"
This reverts commit 7a242387c950c7060143da6da0e6fb91f36bb458. Even after 175f8a44, the Modules/fmodules-validate-once-per-build-session.c test is not fixed on the clang-armv8-quick build bot. (Failure occurs on line 114.)
Diffstat (limited to 'clang/lib/Serialization/ModuleCache.cpp')
-rw-r--r--clang/lib/Serialization/ModuleCache.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/clang/lib/Serialization/ModuleCache.cpp b/clang/lib/Serialization/ModuleCache.cpp
index 43f8ff8..4ae49c4 100644
--- a/clang/lib/Serialization/ModuleCache.cpp
+++ b/clang/lib/Serialization/ModuleCache.cpp
@@ -20,12 +20,7 @@ namespace {
class CrossProcessModuleCache : public ModuleCache {
InMemoryModuleCache InMemory;
- std::time_t BuildSessionTimestamp;
-
public:
- explicit CrossProcessModuleCache(std::time_t BuildSessionTimestamp)
- : BuildSessionTimestamp(BuildSessionTimestamp) {}
-
void prepareForGetLock(StringRef ModuleFilename) override {
// FIXME: Do this in LockFileManager and only if the directory doesn't
// exist.
@@ -38,17 +33,16 @@ public:
return std::make_unique<llvm::LockFileManager>(ModuleFilename);
}
- bool isMarkedUpToDate(StringRef ModuleFilename) override {
+ std::time_t getModuleTimestamp(StringRef ModuleFilename) override {
std::string TimestampFilename =
serialization::ModuleFile::getTimestampFilename(ModuleFilename);
llvm::sys::fs::file_status Status;
if (llvm::sys::fs::status(ModuleFilename, Status) != std::error_code{})
- return false;
- return llvm::sys::toTimeT(Status.getLastModificationTime()) >
- BuildSessionTimestamp;
+ return 0;
+ return llvm::sys::toTimeT(Status.getLastModificationTime());
}
- void markUpToDate(StringRef ModuleFilename) override {
+ void updateModuleTimestamp(StringRef ModuleFilename) override {
// Overwrite the timestamp file contents so that file's mtime changes.
std::error_code EC;
llvm::raw_fd_ostream OS(
@@ -68,8 +62,6 @@ public:
};
} // namespace
-IntrusiveRefCntPtr<ModuleCache>
-clang::createCrossProcessModuleCache(std::time_t BuildSessionTimestamp) {
- return llvm::makeIntrusiveRefCnt<CrossProcessModuleCache>(
- BuildSessionTimestamp);
+IntrusiveRefCntPtr<ModuleCache> clang::createCrossProcessModuleCache() {
+ return llvm::makeIntrusiveRefCnt<CrossProcessModuleCache>();
}