[clang] [clang][modules-driver] Extract logic to feed jobs back into Compilation (NFC) (PR #191441)
Naveen Seth Hanig via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 10 08:13:39 PDT 2026
https://github.com/naveen-seth updated https://github.com/llvm/llvm-project/pull/191441
>From cf5a918988a88cfadc78664a0b382c6deaba9cd3 Mon Sep 17 00:00:00 2001
From: Naveen Seth Hanig <naveen.hanig at outlook.com>
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));
}
More information about the cfe-commits
mailing list