https://github.com/naveen-seth created 
https://github.com/llvm/llvm-project/pull/191441

None

>From cf5a918988a88cfadc78664a0b382c6deaba9cd3 Mon Sep 17 00:00:00 2001
From: Naveen Seth Hanig <[email protected]>
Date: Fri, 10 Apr 2026 17:09:58 +0200
Subject: [PATCH] [clang][modules-driver] Extract logic to feed jobs back into
 Compilation (NFC)

---
 clang/lib/Driver/ModulesDriver.cpp | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/clang/lib/Driver/ModulesDriver.cpp 
b/clang/lib/Driver/ModulesDriver.cpp
index 783f2270c4e0f..7ccad81f02571 100644
--- a/clang/lib/Driver/ModulesDriver.cpp
+++ b/clang/lib/Driver/ModulesDriver.cpp
@@ -1496,6 +1496,19 @@ static void createAndConnectRoot(CompilationGraph 
&Graph) {
   }
 }
 
+/// Moves jobs from \p Graph into \p C in the graph's topological order.
+static void feedJobsBackIntoCompilation(Compilation &C,
+                                        CompilationGraph &&Graph) {
+  llvm::ReversePostOrderTraversal<CompilationGraph *> TopologicallySortedNodes(
+      &Graph);
+  assert(isa<RootNode>(*TopologicallySortedNodes.begin()) &&
+         "First node in topological order must be the root!");
+  auto TopologicallySortedJobNodes = llvm::map_range(
+      llvm::drop_begin(TopologicallySortedNodes), llvm::CastTo<JobNode>);
+  for (auto *JN : TopologicallySortedJobNodes)
+    C.addCommand(std::move(JN->Job));
+}
+
 void driver::modules::runModulesDriver(
     Compilation &C, ArrayRef<StdModuleManifest::Module> ManifestEntries) {
   llvm::PrettyStackTraceString CrashInfo("Running modules driver.");
@@ -1554,12 +1567,5 @@ void driver::modules::runModulesDriver(
 
   // TODO: Fix-up command-lines for named module imports.
 
-  llvm::ReversePostOrderTraversal<CompilationGraph *> TopologicallySortedNodes(
-      &Graph);
-  assert(isa<RootNode>(*TopologicallySortedNodes.begin()) &&
-         "First node in topological order must be the root!");
-  auto TopologicallySortedJobNodes = llvm::map_range(
-      llvm::drop_begin(TopologicallySortedNodes), llvm::CastTo<JobNode>);
-  for (auto *JN : TopologicallySortedJobNodes)
-    C.addCommand(std::move(JN->Job));
+  feedJobsBackIntoCompilation(C, std::move(Graph));
 }

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to