[PATCH] D85996: [llvm-reduce] make llvm-reduce save the best reduction it has when it crashes
Tyker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 22 10:17:07 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG7fef40d83cbb: [llvm-reduce] make llvm-reduce save the best reduction it has when it crashes (authored by Tyker).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D85996/new/
https://reviews.llvm.org/D85996
Files:
llvm/tools/llvm-reduce/deltas/Delta.cpp
llvm/tools/llvm-reduce/llvm-reduce.cpp
Index: llvm/tools/llvm-reduce/llvm-reduce.cpp
===================================================================
--- llvm/tools/llvm-reduce/llvm-reduce.cpp
+++ llvm/tools/llvm-reduce/llvm-reduce.cpp
@@ -80,6 +80,22 @@
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 @@
// 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;
Index: llvm/tools/llvm-reduce/deltas/Delta.cpp
===================================================================
--- llvm/tools/llvm-reduce/deltas/Delta.cpp
+++ llvm/tools/llvm-reduce/deltas/Delta.cpp
@@ -21,6 +21,8 @@
using namespace llvm;
+void writeOutput(llvm::Module *M, llvm::StringRef Message);
+
bool IsReduced(Module &M, TestRunner &Test, SmallString<128> &CurrentFilepath) {
// Write Module to tmp file
int FD;
@@ -149,6 +151,7 @@
UninterestingChunks.insert(ChunkToCheckForUninterestingness);
ReducedProgram = std::move(Clone);
errs() << " **** SUCCESS | lines: " << getLines(CurrentFilepath) << "\n";
+ writeOutput(ReducedProgram.get(), "Saved new best reduction to ");
}
// Delete uninteresting chunks
erase_if(ChunksStillConsideredInteresting,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85996.287203.patch
Type: text/x-patch
Size: 2399 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200822/eb895a34/attachment.bin>
More information about the llvm-commits
mailing list