aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-reduce/llvm-reduce.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-reduce/llvm-reduce.cpp')
-rw-r--r--llvm/tools/llvm-reduce/llvm-reduce.cpp33
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;