Skip to content

Commit 66ba679

Browse files
committed
Remove clang-scan-deps -emit-cas-compdb
1 parent e8bd9e0 commit 66ba679

File tree

5 files changed

+0
-185
lines changed

5 files changed

+0
-185
lines changed

clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,6 @@ class DependencyScanningTool {
238238

239239
const CASOptions &getCASOpts() const { return Worker.getCASOpts(); }
240240

241-
/// If \p DependencyScanningService enabled sharing of \p FileManager this
242-
/// will return the same instance, otherwise it will create a new one for
243-
/// each invocation.
244-
llvm::IntrusiveRefCntPtr<FileManager> getOrCreateFileManager() const {
245-
return Worker.getOrCreateFileManager();
246-
}
247-
248241
static std::unique_ptr<DependencyActionController>
249242
createActionController(DependencyScanningWorker &Worker,
250243
LookupModuleOutputCallback LookupModuleOutput);

clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,6 @@ class DependencyScanningWorker {
207207
const CASOptions &getCASOpts() const { return CASOpts; }
208208
std::shared_ptr<cas::ObjectStore> getCAS() const { return CAS; }
209209

210-
/// If \p DependencyScanningService enabled sharing of \p FileManager this
211-
/// will return the same instance, otherwise it will create a new one for
212-
/// each invocation.
213-
llvm::IntrusiveRefCntPtr<FileManager> getOrCreateFileManager() const;
214-
215210
llvm::vfs::FileSystem &getVFS() const { return *BaseFS; }
216211

217212
private:

clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,6 @@ DependencyScanningWorker::DependencyScanningWorker(
4545
}
4646
}
4747

48-
llvm::IntrusiveRefCntPtr<FileManager>
49-
DependencyScanningWorker::getOrCreateFileManager() const {
50-
return new FileManager(FileSystemOptions(), BaseFS);
51-
}
52-
5348
DependencyScanningWorker::~DependencyScanningWorker() = default;
5449
DependencyActionController::~DependencyActionController() = default;
5550

clang/tools/clang-scan-deps/ClangScanDeps.cpp

Lines changed: 0 additions & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ static bool EmitVisibleModules;
104104
static llvm::BumpPtrAllocator Alloc;
105105
static llvm::StringSaver Saver{Alloc};
106106
static std::vector<const char *> CommandLine;
107-
static bool EmitCASCompDB;
108107
static std::string OnDiskCASPath;
109108
static std::string CASPluginPath;
110109
static std::vector<std::pair<std::string, std::string>> CASPluginOptions;
@@ -254,7 +253,6 @@ static void ParseArgs(int argc, char **argv) {
254253

255254
EmitVisibleModules = Args.hasArg(OPT_emit_visible_modules);
256255

257-
EmitCASCompDB = Args.hasArg(OPT_emit_cas_compdb);
258256
InMemoryCAS = Args.hasArg(OPT_in_memory_cas);
259257

260258
if (const llvm::opt::Arg *A = Args.getLastArg(OPT_cas_path_EQ))
@@ -363,154 +361,6 @@ class ResourceDirectoryCache {
363361

364362
} // end anonymous namespace
365363

366-
static bool emitCompilationDBWithCASTreeArguments(
367-
std::shared_ptr<llvm::cas::ObjectStore> DB,
368-
std::vector<tooling::CompileCommand> Inputs,
369-
DiagnosticConsumer &DiagsConsumer, DependencyScanningService &Service,
370-
llvm::DefaultThreadPool &Pool, llvm::raw_ostream &OS) {
371-
372-
// Follow `-cc1depscan` and also ignore diagnostics.
373-
// FIXME: Seems not a good idea to do this..
374-
auto IgnoringDiagsConsumer = std::make_unique<IgnoringDiagConsumer>();
375-
376-
struct PerThreadState {
377-
DependencyScanningTool Worker;
378-
llvm::BumpPtrAllocator Alloc;
379-
llvm::StringSaver Saver;
380-
PerThreadState(DependencyScanningService &Service,
381-
std::unique_ptr<llvm::vfs::FileSystem> FS)
382-
: Worker(Service, std::move(FS)), Saver(Alloc) {}
383-
};
384-
std::vector<std::unique_ptr<PerThreadState>> PerThreadStates;
385-
for (unsigned I = 0, E = Pool.getMaxConcurrency(); I != E; ++I) {
386-
std::unique_ptr<llvm::vfs::FileSystem> FS =
387-
llvm::cas::createCASProvidingFileSystem(
388-
DB, llvm::vfs::createPhysicalFileSystem());
389-
PerThreadStates.push_back(
390-
std::make_unique<PerThreadState>(Service, std::move(FS)));
391-
}
392-
393-
std::atomic<bool> HadErrors(false);
394-
std::mutex Lock;
395-
size_t Index = 0;
396-
397-
struct CompDBEntry {
398-
size_t Index;
399-
std::string Filename;
400-
std::string WorkDir;
401-
SmallVector<const char *> Args;
402-
};
403-
std::vector<CompDBEntry> CompDBEntries;
404-
405-
for (unsigned I = 0, E = Pool.getMaxConcurrency(); I != E; ++I) {
406-
Pool.async([&, I]() {
407-
while (true) {
408-
const tooling::CompileCommand *Input;
409-
std::string Filename;
410-
std::string CWD;
411-
size_t LocalIndex;
412-
// Take the next input.
413-
{
414-
std::unique_lock<std::mutex> LockGuard(Lock);
415-
if (Index >= Inputs.size())
416-
return;
417-
LocalIndex = Index;
418-
Input = &Inputs[Index++];
419-
Filename = std::move(Input->Filename);
420-
CWD = std::move(Input->Directory);
421-
}
422-
423-
tooling::dependencies::DependencyScanningTool &WorkerTool =
424-
PerThreadStates[I]->Worker;
425-
426-
class ScanForCC1Action : public ToolAction {
427-
llvm::cas::ObjectStore &DB;
428-
tooling::dependencies::DependencyScanningTool &WorkerTool;
429-
DiagnosticConsumer &DiagsConsumer;
430-
StringRef CWD;
431-
SmallVectorImpl<const char *> &OutputArgs;
432-
llvm::StringSaver &Saver;
433-
434-
public:
435-
ScanForCC1Action(
436-
llvm::cas::ObjectStore &DB,
437-
tooling::dependencies::DependencyScanningTool &WorkerTool,
438-
DiagnosticConsumer &DiagsConsumer, StringRef CWD,
439-
SmallVectorImpl<const char *> &OutputArgs,
440-
llvm::StringSaver &Saver)
441-
: DB(DB), WorkerTool(WorkerTool), DiagsConsumer(DiagsConsumer),
442-
CWD(CWD), OutputArgs(OutputArgs), Saver(Saver) {}
443-
444-
bool
445-
runInvocation(std::shared_ptr<CompilerInvocation> Invocation,
446-
FileManager *Files,
447-
std::shared_ptr<PCHContainerOperations> PCHContainerOps,
448-
DiagnosticConsumer *DiagConsumer) override {
449-
Expected<llvm::cas::CASID> Root = scanAndUpdateCC1InlineWithTool(
450-
WorkerTool, DiagsConsumer, /*VerboseOS*/ nullptr, *Invocation,
451-
CWD, DB);
452-
if (!Root) {
453-
llvm::consumeError(Root.takeError());
454-
return false;
455-
}
456-
OutputArgs.push_back("-cc1");
457-
Invocation->generateCC1CommandLine(OutputArgs, [&](const Twine &T) {
458-
return Saver.save(T).data();
459-
});
460-
return true;
461-
}
462-
};
463-
464-
SmallVector<const char *> OutputArgs;
465-
llvm::StringSaver &Saver = PerThreadStates[I]->Saver;
466-
OutputArgs.push_back(Saver.save(Input->CommandLine.front()).data());
467-
ScanForCC1Action Action(*DB, WorkerTool, *IgnoringDiagsConsumer, CWD,
468-
OutputArgs, Saver);
469-
470-
llvm::IntrusiveRefCntPtr<FileManager> FileMgr =
471-
WorkerTool.getOrCreateFileManager();
472-
ToolInvocation Invocation(Input->CommandLine, &Action, FileMgr.get(),
473-
std::make_shared<PCHContainerOperations>());
474-
if (!Invocation.run()) {
475-
HadErrors = true;
476-
continue;
477-
}
478-
479-
{
480-
std::unique_lock<std::mutex> LockGuard(Lock);
481-
CompDBEntries.push_back({LocalIndex, std::move(Filename),
482-
std::move(CWD), std::move(OutputArgs)});
483-
}
484-
}
485-
});
486-
}
487-
Pool.wait();
488-
489-
std::sort(CompDBEntries.begin(), CompDBEntries.end(),
490-
[](const CompDBEntry &LHS, const CompDBEntry &RHS) -> bool {
491-
return LHS.Index < RHS.Index;
492-
});
493-
494-
llvm::json::OStream J(OS, /*IndentSize*/ 2);
495-
J.arrayBegin();
496-
for (const auto &Entry : CompDBEntries) {
497-
J.objectBegin();
498-
J.attribute("file", Entry.Filename);
499-
J.attribute("directory", Entry.WorkDir);
500-
J.attributeBegin("arguments");
501-
J.arrayBegin();
502-
for (const char *Arg : Entry.Args) {
503-
J.value(Arg);
504-
}
505-
J.arrayEnd();
506-
J.attributeEnd();
507-
J.objectEnd();
508-
}
509-
J.arrayEnd();
510-
511-
return HadErrors;
512-
}
513-
514364
/// Takes the result of a dependency scan and prints error / dependency files
515365
/// based on the result.
516366
///
@@ -1167,9 +1017,6 @@ int clang_scan_deps_main(int argc, char **argv, const llvm::ToolContext &) {
11671017
auto ArgsAdjuster =
11681018
[&ResourceDirCache](const tooling::CommandLineArguments &Args,
11691019
StringRef FileName) {
1170-
if (EmitCASCompDB)
1171-
return Args; // Don't adjust.
1172-
11731020
std::string LastO;
11741021
bool HasResourceDir = false;
11751022
bool ClangCLMode = false;
@@ -1285,19 +1132,6 @@ int clang_scan_deps_main(int argc, char **argv, const llvm::ToolContext &) {
12851132
return 1;
12861133
}
12871134

1288-
if (EmitCASCompDB) {
1289-
if (!CAS) {
1290-
llvm::errs() << "'-emit-cas-compdb' needs CAS setup\n";
1291-
return 1;
1292-
}
1293-
DependencyScanningService Service(ScanMode, Format, CASOpts, CAS, Cache,
1294-
OptimizeArgs, EagerLoadModules);
1295-
llvm::DefaultThreadPool Pool(llvm::hardware_concurrency(NumThreads));
1296-
return emitCompilationDBWithCASTreeArguments(
1297-
CAS, AdjustingCompilations->getAllCompileCommands(), *DiagsConsumer,
1298-
Service, Pool, llvm::outs());
1299-
}
1300-
13011135
std::vector<tooling::CompileCommand> Inputs =
13021136
AdjustingCompilations->getAllCompileCommands();
13031137

clang/tools/clang-scan-deps/Opts.td

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ def deprecated_driver_command : F<"deprecated-driver-command", "use a single dri
3737

3838
defm resource_dir_recipe : Eq<"resource-dir-recipe", "How to produce missing '-resource-dir' argument">;
3939

40-
def emit_cas_compdb : F<"emit-cas-compdb", "Emit compilation DB with updated clang arguments for CAS based dependency scanning build.">;
41-
4240
defm cas_path : Eq<"cas-path", "Path for on-disk CAS.">;
4341

4442
defm fcas_plugin_path : Eq<"fcas-plugin-path", "Path to a shared library implementing the LLVM CAS plugin API">;

0 commit comments

Comments
 (0)