[llvm] [DTLTO] [LLVM] Initial DTLTO cache implementation (PR #156433)
Teresa Johnson via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 17 09:34:28 PDT 2025
================
@@ -2488,20 +2530,26 @@ class OutOfProcessThinBackend : public CGThinBackend {
removeFile(JsonFile);
});
- SmallVector<StringRef, 3> Args = {DistributorPath};
- llvm::append_range(Args, DistributorArgs);
- Args.push_back(JsonFile);
- std::string ErrMsg;
- if (sys::ExecuteAndWait(Args[0], Args,
- /*Env=*/std::nullopt, /*Redirects=*/{},
- /*SecondsToWait=*/0, /*MemoryLimit=*/0, &ErrMsg)) {
- return make_error<StringError>(
- BCError + "distributor execution failed" +
- (!ErrMsg.empty() ? ": " + ErrMsg + Twine(".") : Twine(".")),
- inconvertibleErrorCode());
+ if (CachedJobs.load() < Jobs.size()) {
+ SmallVector<StringRef, 3> Args = {DistributorPath};
+ llvm::append_range(Args, DistributorArgs);
+ Args.push_back(JsonFile);
+ std::string ErrMsg;
+ if (sys::ExecuteAndWait(Args[0], Args,
+ /*Env=*/std::nullopt, /*Redirects=*/{},
+ /*SecondsToWait=*/0, /*MemoryLimit=*/0,
+ &ErrMsg)) {
+ return make_error<StringError>(
+ BCError + "distributor execution failed" +
+ (!ErrMsg.empty() ? ": " + ErrMsg + Twine(".") : Twine(".")),
+ inconvertibleErrorCode());
+ }
}
for (auto &Job : Jobs) {
+ if (Cache.isValid() && !Job.CacheKey.empty())
----------------
teresajohnson wrote:
Can Cache.isValid be false if CacheKey is not empty?
https://github.com/llvm/llvm-project/pull/156433
More information about the llvm-commits
mailing list