From a328c51bb99666ee0c045a57ea6d6ce2b0198f9b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 23 Jan 2005 03:45:26 +0000 Subject: [PATCH] Add support for fp tolerances git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19774 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/bugpoint/ExecutionDriver.cpp | 14 +++++++++++--- 1 file 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 + AbsTolerance("abs-tolerance", cl::desc("Absolute error tolerated"), + cl::init(0.0)); + cl::opt + RelTolerance("rel-tolerance", cl::desc("Relative error tolerated"), + cl::init(0.0)); + cl::opt 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); }