[llvm] [DTLTO][LLVM] Integrated Distributed ThinLTO (DTLTO) (PR #127749)
Teresa Johnson via llvm-commits
llvm-commits at lists.llvm.org
Fri May 16 09:54:08 PDT 2025
================
@@ -2142,3 +2182,322 @@ std::vector<int> lto::generateModulesOrdering(ArrayRef<BitcodeModule *> R) {
});
return ModulesOrdering;
}
+
+namespace {
+// For this out-of-process backend no codegen is done when invoked for each
+// task. Instead we generate the required information (e.g. the summary index
+// shard, import list, etc..) to allow for the codegen to be performed
+// externally (similar to WriteIndexesThinBackend). This backend's `wait`
+// function then invokes an external distributor process to do backend
+// compilations.
+class OutOfProcessThinBackend : public CGThinBackend {
+ using SString = SmallString<128>;
+
+ BumpPtrAllocator Alloc;
+ StringSaver Saver{Alloc};
+
+ SString LinkerOutputFile;
+
+ SString DistributorPath;
+ ArrayRef<StringRef> DistributorArgs;
+
+ SString RemoteCompiler;
+ ArrayRef<StringRef> RemoteCompilerArgs;
+
+ bool SaveTemps;
+
+ SmallVector<StringRef, 0> CodegenOptions;
+ DenseSet<StringRef> CommonInputs;
+
+ // Information specific to individual backend compilation job.
+ struct Job {
+ unsigned Task;
+ StringRef ModuleID;
+ StringRef NativeObjectPath;
+ StringRef SummaryIndexPath;
+ ImportsFilesContainer ImportFiles;
----------------
teresajohnson wrote:
Nit: make the spelling consistent, probably "ImportsFiles" everywhere (plural Imports).
https://github.com/llvm/llvm-project/pull/127749
More information about the llvm-commits
mailing list