Replace the sil-passpipeline-dumper binary with a symlink to swift-frontend

rdar://76551283
This commit is contained in:
Erik Eckstein
2023-04-24 13:49:33 +02:00
parent e3a174b85e
commit 8ce6038a42
9 changed files with 25 additions and 22 deletions

View File

@@ -170,6 +170,7 @@ public:
SILFuncExtractor,// sil-func-extractor
SILNM, // sil-nm
SILLLVMGen, // sil-llvm-gen
SILPassPipelineDumper, // sil-passpipeline-dumper
AutolinkExtract, // swift-autolink-extract
SwiftIndent, // swift-indent
SymbolGraph, // swift-symbolgraph

View File

@@ -103,6 +103,7 @@ void Driver::parseDriverKind(ArrayRef<const char *> Args) {
.Case("sil-func-extractor", DriverKind::SILFuncExtractor)
.Case("sil-nm", DriverKind::SILNM)
.Case("sil-llvm-gen", DriverKind::SILLLVMGen)
.Case("sil-passpipeline-dumper", DriverKind::SILPassPipelineDumper)
.Case("swift-autolink-extract", DriverKind::AutolinkExtract)
.Case("swift-indent", DriverKind::SwiftIndent)
.Case("swift-symbolgraph-extract", DriverKind::SymbolGraph)
@@ -3563,6 +3564,7 @@ void Driver::printHelp(bool ShowHidden) const {
case DriverKind::SILFuncExtractor:
case DriverKind::SILNM:
case DriverKind::SILLLVMGen:
case DriverKind::SILPassPipelineDumper:
case DriverKind::AutolinkExtract:
case DriverKind::SwiftIndent:
case DriverKind::SymbolGraph:

View File

@@ -4,6 +4,7 @@ set(driver_sources_and_options
sil_func_extractor_main.cpp
sil_nm_main.cpp
sil_llvm_gen_main.cpp
sil_passpipeline_dumper_main.cpp
autolink_extract_main.cpp
modulewrap_main.cpp
swift_api_digester_main.cpp

View File

@@ -75,6 +75,9 @@ extern int sil_nm_main(ArrayRef<const char *> argv, void *MainAddr);
/// Run 'sil-llvm-gen'
extern int sil_llvm_gen_main(ArrayRef<const char *> argv, void *MainAddr);
/// Run 'sil-passpipeline-dumper'
extern int sil_passpipeline_dumper_main(ArrayRef<const char *> argv, void *MainAddr);
/// Run 'swift-autolink-extract'.
extern int autolink_extract_main(ArrayRef<const char *> Args, const char *Argv0,
void *MainAddr);
@@ -301,6 +304,8 @@ static int run_driver(StringRef ExecName,
return sil_nm_main(argv, (void *)(intptr_t)getExecutablePath);
case Driver::DriverKind::SILLLVMGen:
return sil_llvm_gen_main(argv, (void *)(intptr_t)getExecutablePath);
case Driver::DriverKind::SILPassPipelineDumper:
return sil_passpipeline_dumper_main(argv, (void *)(intptr_t)getExecutablePath);
case Driver::DriverKind::AutolinkExtract:
return autolink_extract_main(
TheDriver.getArgsWithoutProgramNameAndDriverMode(argv),

View File

@@ -1,4 +1,4 @@
//===--- SILPassPipelineDumper.cpp ----------------------------------------===//
//===--- sil_passpipeline_dumper_main.cpp ---------------------------------===//
//
// This source file is part of the Swift.org open source project
//
@@ -25,12 +25,15 @@
using namespace swift;
static llvm::cl::opt<PassPipelineKind>
PipelineKind(llvm::cl::desc("<pipeline kind>"), llvm::cl::values(
struct SILPassPipelineDumperOptions {
llvm::cl::opt<PassPipelineKind>
PipelineKind = llvm::cl::opt<PassPipelineKind>(llvm::cl::desc("<pipeline kind>"),
llvm::cl::values(
#define PASSPIPELINE(NAME, DESCRIPTION) \
clEnumValN(PassPipelineKind::NAME, #NAME, DESCRIPTION),
#include "swift/SILOptimizer/PassManager/PassPipeline.def"
clEnumValN(0, "", "")));
};
namespace llvm {
llvm::raw_ostream &operator<<(llvm::raw_ostream &os, PassPipelineKind Kind) {
@@ -44,17 +47,18 @@ llvm::raw_ostream &operator<<(llvm::raw_ostream &os, PassPipelineKind Kind) {
}
} // namespace llvm
int main(int argc, char **argv) {
PROGRAM_START(argc, argv);
int sil_passpipeline_dumper_main(ArrayRef<const char *> argv, void *MainAddr) {
INITIALIZE_LLVM();
llvm::cl::ParseCommandLineOptions(argc, argv,
SILPassPipelineDumperOptions options;
llvm::cl::ParseCommandLineOptions(argv.size(), argv.data(),
"Swift SIL Pass Pipeline Dumper\n");
// TODO: add options to manipulate this.
SILOptions Opt;
switch (PipelineKind) {
switch (options.PipelineKind) {
#define PASSPIPELINE(NAME, DESCRIPTION) \
case PassPipelineKind::NAME: { \
SILPassPipelinePlan::get##NAME##PassPipeline(Opt).print(llvm::outs()); \

View File

@@ -52,7 +52,6 @@ function(get_test_dependencies SDK result_var_name)
if (SWIFT_INCLUDE_TOOLS)
list(APPEND deps_binaries
lldb-moduleimport-test
sil-passpipeline-dumper
swift-frontend
swift-demangle
swift-demangle-yamldump

View File

@@ -23,7 +23,6 @@ add_swift_tool_subdirectory(swift-demangle)
add_swift_tool_subdirectory(swift-demangle-yamldump)
add_swift_tool_subdirectory(swift-def-to-strings-converter)
add_swift_tool_subdirectory(swift-serialize-diagnostics)
add_swift_tool_subdirectory(sil-passpipeline-dumper)
add_swift_tool_subdirectory(swift-llvm-opt)
add_swift_tool_subdirectory(swift-ast-script)
add_swift_tool_subdirectory(swift-refactor)

View File

@@ -109,6 +109,11 @@ swift_create_post_build_symlink(swift-frontend
DESTINATION "sil-llvm-gen${CMAKE_EXECUTABLE_SUFFIX}"
WORKING_DIRECTORY "${SWIFT_RUNTIME_OUTPUT_INTDIR}")
swift_create_post_build_symlink(swift-frontend
SOURCE "swift-frontend${CMAKE_EXECUTABLE_SUFFIX}"
DESTINATION "sil-passpipeline-dumper${CMAKE_EXECUTABLE_SUFFIX}"
WORKING_DIRECTORY "${SWIFT_RUNTIME_OUTPUT_INTDIR}")
swift_create_post_build_symlink(swift-frontend
SOURCE "swift-frontend${CMAKE_EXECUTABLE_SUFFIX}"
DESTINATION "swift-indent${CMAKE_EXECUTABLE_SUFFIX}"

View File

@@ -1,13 +0,0 @@
add_swift_host_tool(sil-passpipeline-dumper
SILPassPipelineDumper.cpp
SWIFT_COMPONENT testsuite-tools
)
target_link_libraries(sil-passpipeline-dumper PRIVATE
swiftFrontend
swiftIRGen
swiftSema
swiftSILGen
swiftSILOptimizer
# Clang libraries included to appease the linker on linux.
clangBasic
clangCodeGen)