6 #ifndef JLM_TOOLING_COMMAND_HPP
7 #define JLM_TOOLING_COMMAND_HPP
19 class LlvmRvsdgModule;
35 [[nodiscard]]
virtual std::string
64 [[nodiscard]] std::string
70 static std::unique_ptr<CommandGraph>
71 Create(std::unique_ptr<CommandGraph> commandGraph);
77 auto command = std::make_unique<PrintCommandsCommand>(std::move(printedCommandGraph));
112 std::vector<util::FilePath> inputFiles,
114 std::vector<std::string> libraryPaths,
115 std::vector<std::string> libraries,
135 std::vector<std::string> includePaths,
136 std::vector<std::string> macroDefinitions,
137 std::vector<std::string> warnings,
138 std::vector<std::string> flags,
146 std::vector<ClangArgument> clangArguments)
165 [[nodiscard]] std::string
174 [[nodiscard]]
const std::vector<util::FilePath> &
183 const std::vector<util::FilePath> & inputFiles,
185 const std::vector<std::string> & libraryPaths,
186 const std::vector<std::string> & libraries,
189 std::unique_ptr<ClangCommand> command(
190 new ClangCommand(inputFiles, outputFile, libraryPaths, libraries, usePthreads));
200 const std::vector<std::string> & includePaths,
201 const std::vector<std::string> & macroDefinitions,
202 const std::vector<std::string> & warnings,
203 const std::vector<std::string> & flags,
209 const std::string & mT,
211 const std::vector<ClangArgument> & clangArguments)
240 ReplaceAll(std::string str,
const std::string & from,
const std::string & to);
299 [[nodiscard]] std::string
316 std::unique_ptr<LlcCommand> command(
317 new LlcCommand(inputFile, outputFile, optimizationLevel, relocationModel));
344 [[nodiscard]] std::string
348 Run()
const override;
353 std::string programName,
357 std::make_unique<JlmOptCommand>(std::move(programName), std::move(commandLineOptions));
375 std::unique_ptr<llvm::LlvmRvsdgModule>
381 std::unique_ptr<llvm::LlvmRvsdgModule>
385 std::unique_ptr<llvm::LlvmRvsdgModule>
426 [[nodiscard]] std::vector<std::shared_ptr<rvsdg::Transformation>>
429 [[nodiscard]] std::shared_ptr<rvsdg::Transformation>
445 :
Path_(std::move(path))
448 [[nodiscard]] std::string
452 Run()
const override;
457 std::unique_ptr<MkdirCommand> command(
new MkdirCommand(path));
479 util::FilePath inputFile,
480 util::FilePath outputFile,
481 bool writeLlvmAssembly,
489 [[nodiscard]] std::string
503 bool writeLlvmAssembly,
504 const std::vector<Optimization> & optimizations)
506 std::unique_ptr<LlvmOptCommand> command(
507 new LlvmOptCommand(inputFile, outputFile, writeLlvmAssembly, optimizations));
532 std::vector<util::FilePath> inputFiles,
533 util::FilePath outputFile,
534 bool writeLlvmAssembly,
542 [[nodiscard]] std::string
551 [[nodiscard]]
const std::vector<util::FilePath> &
560 const std::vector<util::FilePath> & inputFiles,
562 bool writeLlvmAssembly,
565 std::unique_ptr<LlvmLinkCommand> command(
566 new LlvmLinkCommand(inputFiles, outputFile, writeLlvmAssembly, verbose));
587 util::FilePath inputFile,
588 util::FilePath outputFolder,
589 std::vector<std::
string> options)
595 [[nodiscard]] std::string
633 const std::vector<std::string> & options)
635 auto command = std::make_unique<JlmHlsCommand>(inputFile, outputFolder, options);
655 util::FilePath inputFile,
656 util::FilePath outputFolder,
657 std::
string hlsFunctionName)
663 [[nodiscard]] std::string
684 [[nodiscard]]
const std::string &
694 const std::string & hlsFunctionName,
697 std::unique_ptr<JlmHlsExtractCommand> command(
static jlm::util::StatisticsCollector statisticsCollector
FilePath WithSuffix(const std::string &suffix) const
Global memory state passed between functions.