Skip to content

Commit f5ac037

Browse files
authored
Merge pull request #65387 from eeckstein/symlink-tools
Replace several (test-)tool binaries with symlinks to swift-frontend
2 parents 9e1dfb4 + e7af73e commit f5ac037

File tree

22 files changed

+1385
-1387
lines changed

22 files changed

+1385
-1387
lines changed

include/swift/Driver/Driver.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,13 @@ class Driver {
166166
enum class DriverKind {
167167
Interactive, // swift
168168
Batch, // swiftc
169+
SILOpt, // sil-opt
170+
SILFuncExtractor,// sil-func-extractor
171+
SILNM, // sil-nm
172+
SILLLVMGen, // sil-llvm-gen
173+
SILPassPipelineDumper, // sil-passpipeline-dumper
174+
SwiftDependencyTool, // swift-dependency-tool
175+
SwiftLLVMOpt, // swift-llvm-opt
169176
AutolinkExtract, // swift-autolink-extract
170177
SwiftIndent, // swift-indent
171178
SymbolGraph, // swift-symbolgraph

lib/Driver/Driver.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ void Driver::parseDriverKind(ArrayRef<const char *> Args) {
9999
llvm::StringSwitch<Optional<DriverKind>>(DriverName)
100100
.Case("swift", DriverKind::Interactive)
101101
.Case("swiftc", DriverKind::Batch)
102+
.Case("sil-opt", DriverKind::SILOpt)
103+
.Case("sil-func-extractor", DriverKind::SILFuncExtractor)
104+
.Case("sil-nm", DriverKind::SILNM)
105+
.Case("sil-llvm-gen", DriverKind::SILLLVMGen)
106+
.Case("sil-passpipeline-dumper", DriverKind::SILPassPipelineDumper)
107+
.Case("swift-dependency-tool", DriverKind::SwiftDependencyTool)
108+
.Case("swift-llvm-opt", DriverKind::SwiftLLVMOpt)
102109
.Case("swift-autolink-extract", DriverKind::AutolinkExtract)
103110
.Case("swift-indent", DriverKind::SwiftIndent)
104111
.Case("swift-symbolgraph-extract", DriverKind::SymbolGraph)
@@ -3555,6 +3562,13 @@ void Driver::printHelp(bool ShowHidden) const {
35553562
ExcludedFlagsBitmask |= options::NoInteractiveOption;
35563563
break;
35573564
case DriverKind::Batch:
3565+
case DriverKind::SILOpt:
3566+
case DriverKind::SILFuncExtractor:
3567+
case DriverKind::SILNM:
3568+
case DriverKind::SILLLVMGen:
3569+
case DriverKind::SILPassPipelineDumper:
3570+
case DriverKind::SwiftDependencyTool:
3571+
case DriverKind::SwiftLLVMOpt:
35583572
case DriverKind::AutolinkExtract:
35593573
case DriverKind::SwiftIndent:
35603574
case DriverKind::SymbolGraph:

lib/DriverTool/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
set(driver_sources_and_options
22
driver.cpp
3+
sil_opt_main.cpp
4+
sil_func_extractor_main.cpp
5+
sil_nm_main.cpp
6+
sil_llvm_gen_main.cpp
7+
sil_passpipeline_dumper_main.cpp
8+
swift_dependency_tool_main.cpp
9+
swift_llvm_opt_main.cpp
310
autolink_extract_main.cpp
411
modulewrap_main.cpp
512
swift_api_digester_main.cpp

lib/DriverTool/driver.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,27 @@ std::string getExecutablePath(const char *FirstArg) {
6363
return llvm::sys::fs::getMainExecutable(FirstArg, P);
6464
}
6565

66+
/// Run 'sil-opt'
67+
extern int sil_opt_main(ArrayRef<const char *> argv, void *MainAddr);
68+
69+
/// Run 'sil-func-extractor'
70+
extern int sil_func_extractor_main(ArrayRef<const char *> argv, void *MainAddr);
71+
72+
/// Run 'sil-nm'
73+
extern int sil_nm_main(ArrayRef<const char *> argv, void *MainAddr);
74+
75+
/// Run 'sil-llvm-gen'
76+
extern int sil_llvm_gen_main(ArrayRef<const char *> argv, void *MainAddr);
77+
78+
/// Run 'sil-passpipeline-dumper'
79+
extern int sil_passpipeline_dumper_main(ArrayRef<const char *> argv, void *MainAddr);
80+
81+
/// Run 'swift-dependency-tool'
82+
extern int swift_dependency_tool_main(ArrayRef<const char *> argv, void *MainAddr);
83+
84+
/// Run 'swift-llvm-opt'
85+
extern int swift_llvm_opt_main(ArrayRef<const char *> argv, void *MainAddr);
86+
6687
/// Run 'swift-autolink-extract'.
6788
extern int autolink_extract_main(ArrayRef<const char *> Args, const char *Argv0,
6889
void *MainAddr);
@@ -281,6 +302,20 @@ static int run_driver(StringRef ExecName,
281302

282303
Driver TheDriver(Path, ExecName, argv, Diags);
283304
switch (TheDriver.getDriverKind()) {
305+
case Driver::DriverKind::SILOpt:
306+
return sil_opt_main(argv, (void *)(intptr_t)getExecutablePath);
307+
case Driver::DriverKind::SILFuncExtractor:
308+
return sil_func_extractor_main(argv, (void *)(intptr_t)getExecutablePath);
309+
case Driver::DriverKind::SILNM:
310+
return sil_nm_main(argv, (void *)(intptr_t)getExecutablePath);
311+
case Driver::DriverKind::SILLLVMGen:
312+
return sil_llvm_gen_main(argv, (void *)(intptr_t)getExecutablePath);
313+
case Driver::DriverKind::SILPassPipelineDumper:
314+
return sil_passpipeline_dumper_main(argv, (void *)(intptr_t)getExecutablePath);
315+
case Driver::DriverKind::SwiftDependencyTool:
316+
return swift_dependency_tool_main(argv, (void *)(intptr_t)getExecutablePath);
317+
case Driver::DriverKind::SwiftLLVMOpt:
318+
return swift_llvm_opt_main(argv, (void *)(intptr_t)getExecutablePath);
284319
case Driver::DriverKind::AutolinkExtract:
285320
return autolink_extract_main(
286321
TheDriver.getArgsWithoutProgramNameAndDriverMode(argv),

0 commit comments

Comments
 (0)