mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Replace the sil-passpipeline-dumper binary with a symlink to swift-frontend
rdar://76551283
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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()); \
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user