[clang] e60fcfd - [clang][deps] Remove support for the deprecated driver API
Jan Svoboda via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 1 13:46:33 PST 2023
Author: Jan Svoboda
Date: 2023-02-01T13:46:26-08:00
New Revision: e60fcfd6e568d1471e40e6e8a14070ef126cdf4a
URL: https://github.com/llvm/llvm-project/commit/e60fcfd6e568d1471e40e6e8a14070ef126cdf4a
DIFF: https://github.com/llvm/llvm-project/commit/e60fcfd6e568d1471e40e6e8a14070ef126cdf4a.diff
LOG: [clang][deps] Remove support for the deprecated driver API
This API is no longer necessary, so let's remove it to simplify the internal APIs.
Reviewed By: benlangmuir, artemcm
Differential Revision: https://reviews.llvm.org/D140175
Added:
Modified:
clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
clang/tools/clang-scan-deps/ClangScanDeps.cpp
Removed:
clang/test/ClangScanDeps/deprecated-driver-api.c
################################################################################
diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
index 6af878dbda959..9d247f96c30be 100644
--- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
+++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
@@ -108,12 +108,6 @@ class DependencyScanningTool {
LookupModuleOutputCallback LookupModuleOutput,
std::optional<StringRef> ModuleName = std::nullopt);
- llvm::Expected<FullDependenciesResult> getFullDependenciesLegacyDriverCommand(
- const std::vector<std::string> &CommandLine, StringRef CWD,
- const llvm::StringSet<> &AlreadySeen,
- LookupModuleOutputCallback LookupModuleOutput,
- std::optional<StringRef> ModuleName = std::nullopt);
-
private:
DependencyScanningWorker Worker;
};
@@ -121,10 +115,8 @@ class DependencyScanningTool {
class FullDependencyConsumer : public DependencyConsumer {
public:
FullDependencyConsumer(const llvm::StringSet<> &AlreadySeen,
- LookupModuleOutputCallback LookupModuleOutput,
- bool EagerLoadModules)
- : AlreadySeen(AlreadySeen), LookupModuleOutput(LookupModuleOutput),
- EagerLoadModules(EagerLoadModules) {}
+ LookupModuleOutputCallback LookupModuleOutput)
+ : AlreadySeen(AlreadySeen), LookupModuleOutput(LookupModuleOutput) {}
void handleBuildCommand(Command Cmd) override {
Commands.push_back(std::move(Cmd));
@@ -153,9 +145,6 @@ class FullDependencyConsumer : public DependencyConsumer {
return LookupModuleOutput(ID, Kind);
}
- FullDependenciesResult getFullDependenciesLegacyDriverCommand(
- const std::vector<std::string> &OriginalCommandLine) const;
-
FullDependenciesResult takeFullDependencies();
private:
@@ -168,7 +157,6 @@ class FullDependencyConsumer : public DependencyConsumer {
std::vector<std::string> OutputPaths;
const llvm::StringSet<> &AlreadySeen;
LookupModuleOutputCallback LookupModuleOutput;
- bool EagerLoadModules;
};
} // end namespace dependencies
diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
index 3fcef00a57800..14d1859626f99 100644
--- a/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
+++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
@@ -14,27 +14,6 @@ using namespace clang;
using namespace tooling;
using namespace dependencies;
-static std::vector<std::string>
-makeTUCommandLineWithoutPaths(ArrayRef<std::string> OriginalCommandLine) {
- std::vector<std::string> Args = OriginalCommandLine;
-
- Args.push_back("-fno-implicit-modules");
- Args.push_back("-fno-implicit-module-maps");
-
- // These arguments are unused in explicit compiles.
- llvm::erase_if(Args, [](StringRef Arg) {
- if (Arg.consume_front("-fmodules-")) {
- return Arg.startswith("cache-path=") ||
- Arg.startswith("prune-interval=") ||
- Arg.startswith("prune-after=") ||
- Arg == "validate-once-per-build-session";
- }
- return Arg.startswith("-fbuild-session-file=");
- });
-
- return Args;
-}
-
DependencyScanningTool::DependencyScanningTool(
DependencyScanningService &Service,
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS)
@@ -117,8 +96,7 @@ DependencyScanningTool::getFullDependencies(
const llvm::StringSet<> &AlreadySeen,
LookupModuleOutputCallback LookupModuleOutput,
std::optional<StringRef> ModuleName) {
- FullDependencyConsumer Consumer(AlreadySeen, LookupModuleOutput,
- Worker.shouldEagerLoadModules());
+ FullDependencyConsumer Consumer(AlreadySeen, LookupModuleOutput);
llvm::Error Result =
Worker.computeDependencies(CWD, CommandLine, Consumer, ModuleName);
if (Result)
@@ -126,21 +104,6 @@ DependencyScanningTool::getFullDependencies(
return Consumer.takeFullDependencies();
}
-llvm::Expected<FullDependenciesResult>
-DependencyScanningTool::getFullDependenciesLegacyDriverCommand(
- const std::vector<std::string> &CommandLine, StringRef CWD,
- const llvm::StringSet<> &AlreadySeen,
- LookupModuleOutputCallback LookupModuleOutput,
- std::optional<StringRef> ModuleName) {
- FullDependencyConsumer Consumer(AlreadySeen, LookupModuleOutput,
- Worker.shouldEagerLoadModules());
- llvm::Error Result =
- Worker.computeDependencies(CWD, CommandLine, Consumer, ModuleName);
- if (Result)
- return std::move(Result);
- return Consumer.getFullDependenciesLegacyDriverCommand(CommandLine);
-}
-
FullDependenciesResult FullDependencyConsumer::takeFullDependencies() {
FullDependenciesResult FDR;
FullDependencies &FD = FDR.FullDeps;
@@ -163,50 +126,3 @@ FullDependenciesResult FullDependencyConsumer::takeFullDependencies() {
return FDR;
}
-
-FullDependenciesResult
-FullDependencyConsumer::getFullDependenciesLegacyDriverCommand(
- const std::vector<std::string> &OriginalCommandLine) const {
- FullDependencies FD;
-
- FD.DriverCommandLine = makeTUCommandLineWithoutPaths(
- ArrayRef<std::string>(OriginalCommandLine).slice(1));
-
- FD.ID.ContextHash = std::move(ContextHash);
-
- FD.FileDeps.assign(Dependencies.begin(), Dependencies.end());
-
- for (const PrebuiltModuleDep &PMD : PrebuiltModuleDeps)
- FD.DriverCommandLine.push_back("-fmodule-file=" + PMD.PCMFile);
-
- for (auto &&M : ClangModuleDeps) {
- auto &MD = M.second;
- if (MD.ImportedByMainFile) {
- FD.ClangModuleDeps.push_back(MD.ID);
- auto PCMPath = LookupModuleOutput(MD.ID, ModuleOutputKind::ModuleFile);
- if (EagerLoadModules) {
- FD.DriverCommandLine.push_back("-fmodule-file=" + PCMPath);
- } else {
- FD.DriverCommandLine.push_back("-fmodule-map-file=" +
- MD.ClangModuleMapFile);
- FD.DriverCommandLine.push_back("-fmodule-file=" + MD.ID.ModuleName +
- "=" + PCMPath);
- }
- }
- }
-
- FD.PrebuiltModuleDeps = std::move(PrebuiltModuleDeps);
-
- FullDependenciesResult FDR;
-
- for (auto &&M : ClangModuleDeps) {
- // TODO: Avoid handleModuleDependency even being called for modules
- // we've already seen.
- if (AlreadySeen.count(M.first))
- continue;
- FDR.DiscoveredModules.push_back(std::move(M.second));
- }
-
- FDR.FullDeps = std::move(FD);
- return FDR;
-}
diff --git a/clang/test/ClangScanDeps/deprecated-driver-api.c b/clang/test/ClangScanDeps/deprecated-driver-api.c
deleted file mode 100644
index 230673a5927ea..0000000000000
--- a/clang/test/ClangScanDeps/deprecated-driver-api.c
+++ /dev/null
@@ -1,38 +0,0 @@
-// Test the deprecated version of the API that returns a driver command instead
-// of multiple -cc1 commands.
-
-// RUN: rm -rf %t
-// RUN: split-file %s %t
-// RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json
-
-// RUN: clang-scan-deps -compilation-database=%t/cdb.json -format experimental-full \
-// RUN: -deprecated-driver-command | sed 's:\\\\\?:/:g' | FileCheck %s
-
-// CHECK: "command-line": [
-// CHECK: "-c"
-// CHECK: "{{.*}}tu.c"
-// CHECK: "-save-temps"
-// CHECK: "-fno-implicit-modules"
-// CHECK: "-fno-implicit-module-maps"
-// CHECK: ]
-// CHECK: "file-deps": [
-// CHECK: "{{.*}}tu.c",
-// CHECK: "{{.*}}header.h"
-// CHECK: ]
-
-//--- cdb.json.in
-[{
- "directory": "DIR",
- "command": "clang -c DIR/tu.c -save-temps",
- "file": "DIR/tu.c"
-}]
-
-//--- header.h
-void bar(void);
-
-//--- tu.c
-#include "header.h"
-
-void foo(void) {
- bar();
-}
diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp
index 0db7124c12308..b8256f6401227 100644
--- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp
+++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp
@@ -178,11 +178,6 @@ llvm::cl::list<std::string> ModuleDepTargets(
llvm::cl::desc("The names of dependency targets for the dependency file"),
llvm::cl::cat(DependencyScannerCategory));
-llvm::cl::opt<bool> DeprecatedDriverCommand(
- "deprecated-driver-command", llvm::cl::Optional,
- llvm::cl::desc("use a single driver command to build the tu (deprecated)"),
- llvm::cl::cat(DependencyScannerCategory));
-
enum ResourceDirRecipeKind {
RDRK_ModifyCompilerPath,
RDRK_InvokeCompiler,
@@ -581,14 +576,6 @@ int main(int argc, const char **argv) {
if (handleMakeDependencyToolResult(Filename, MaybeFile, DependencyOS,
Errs))
HadErrors = true;
- } else if (DeprecatedDriverCommand) {
- auto MaybeFullDeps =
- WorkerTools[I]->getFullDependenciesLegacyDriverCommand(
- Input->CommandLine, CWD, AlreadySeenModules, LookupOutput,
- MaybeModuleName);
- if (handleFullDependencyToolResult(Filename, MaybeFullDeps, FD,
- LocalIndex, DependencyOS, Errs))
- HadErrors = true;
} else {
auto MaybeFullDeps = WorkerTools[I]->getFullDependencies(
Input->CommandLine, CWD, AlreadySeenModules, LookupOutput,
More information about the cfe-commits
mailing list