summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-23 03:45:26 +0000
committerChris Lattner <sabre@nondot.org>2005-01-23 03:45:26 +0000
commita328c51bb99666ee0c045a57ea6d6ce2b0198f9b (patch)
treed9df0919198cc05ca1ea9ee758c7e4bce73c0ee6 /tools
parent417c4d5b4a2537e2ee6152c6be27e003310afb8f (diff)
Add support for fp tolerances
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19774 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/bugpoint/ExecutionDriver.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/bugpoint/ExecutionDriver.cpp b/tools/bugpoint/ExecutionDriver.cpp
index 1dcb69a1c88..966902cec89 100644
--- a/tools/bugpoint/ExecutionDriver.cpp
+++ b/tools/bugpoint/ExecutionDriver.cpp
@@ -29,6 +29,13 @@ namespace {
AutoPick, RunLLI, RunJIT, RunLLC, RunCBE
};
+ cl::opt<double>
+ AbsTolerance("abs-tolerance", cl::desc("Absolute error tolerated"),
+ cl::init(0.0));
+ cl::opt<double>
+ RelTolerance("rel-tolerance", cl::desc("Relative error tolerated"),
+ cl::init(0.0));
+
cl::opt<OutputType>
InterpreterSel(cl::desc("Specify how LLVM code should be executed:"),
cl::values(clEnumValN(AutoPick, "auto", "Use best guess"),
@@ -303,9 +310,10 @@ bool BugDriver::diffProgram(const std::string &BytecodeFile,
std::string Error;
bool FilesDifferent = false;
- if (DiffFilesWithTolerance(ReferenceOutputFile, Output.toString(), 0, 0,
- &Error)) {
- if (!Error.empty()) {
+ if (int Diff = DiffFilesWithTolerance(sys::Path(ReferenceOutputFile),
+ sys::Path(Output.toString()),
+ AbsTolerance, RelTolerance, &Error)) {
+ if (Diff == 2) {
std::cerr << "While diffing output: " << Error << '\n';
exit(1);
}