diff options
Diffstat (limited to 'llvm/tools/llvm-reduce/llvm-reduce.cpp')
-rw-r--r-- | llvm/tools/llvm-reduce/llvm-reduce.cpp | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/llvm/tools/llvm-reduce/llvm-reduce.cpp b/llvm/tools/llvm-reduce/llvm-reduce.cpp index 9dd8aa4..376826b 100644 --- a/llvm/tools/llvm-reduce/llvm-reduce.cpp +++ b/llvm/tools/llvm-reduce/llvm-reduce.cpp @@ -80,6 +80,22 @@ static std::unique_ptr<Module> parseInputFile(StringRef Filename, return Result; } +void writeOutput(Module *M, StringRef Message) { + if (ReplaceInput) // In-place + OutputFilename = InputFilename.c_str(); + else if (OutputFilename.empty() || OutputFilename == "-") + OutputFilename = "reduced.ll"; + + std::error_code EC; + raw_fd_ostream Out(OutputFilename, EC); + if (EC) { + errs() << "Error opening output file: " << EC.message() << "!\n"; + exit(1); + } + M->print(Out, /*AnnotationWriter=*/nullptr); + errs() << Message << OutputFilename << "\n"; +} + int main(int argc, char **argv) { InitLLVM X(argc, argv); @@ -102,21 +118,8 @@ int main(int argc, char **argv) { // Print reduced file to STDOUT if (OutputFilename == "-") Tester.getProgram()->print(outs(), nullptr); - else { - if (ReplaceInput) // In-place - OutputFilename = InputFilename.c_str(); - else if (OutputFilename.empty()) - OutputFilename = "reduced.ll"; - - std::error_code EC; - raw_fd_ostream Out(OutputFilename, EC); - if (EC) { - errs() << "Error opening output file: " << EC.message() << "!\n"; - exit(1); - } - Tester.getProgram()->print(Out, /*AnnotationWriter=*/nullptr); - errs() << "\nDone reducing! Reduced testcase: " << OutputFilename << "\n"; - } + else + writeOutput(Tester.getProgram(), "\nDone reducing! Reduced testcase: "); } return 0; |