Skip to content

Commit

Permalink
Bugpoint's default memory limit (100MB) was too low for valgrind, so
Browse files Browse the repository at this point in the history
this patch raises the default to 800MB when valgrind's active.  800
was chosen semi-arbitrarily.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98905 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
jyasskin committed Mar 19, 2010
1 parent f30187a commit c3e6859
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 9 deletions.
4 changes: 2 additions & 2 deletions tools/bugpoint/BugDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ std::string llvm::getPassesString(const std::vector<const PassInfo*> &Passes) {
}

BugDriver::BugDriver(const char *toolname, bool as_child, bool find_bugs,
unsigned timeout, unsigned memlimit,
unsigned timeout, unsigned memlimit, bool use_valgrind,
LLVMContext& ctxt)
: Context(ctxt), ToolName(toolname), ReferenceOutputFile(OutputFile),
Program(0), Interpreter(0), SafeInterpreter(0), gcc(0),
run_as_child(as_child), run_find_bugs(find_bugs), Timeout(timeout),
MemoryLimit(memlimit) {}
MemoryLimit(memlimit), UseValgrind(use_valgrind) {}


/// ParseInputFile - Given a bitcode or assembly input filename, parse and
Expand Down
4 changes: 3 additions & 1 deletion tools/bugpoint/BugDriver.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,16 @@ class BugDriver {
bool run_find_bugs;
unsigned Timeout;
unsigned MemoryLimit;
bool UseValgrind;

// FIXME: sort out public/private distinctions...
friend class ReducePassList;
friend class ReduceMisCodegenFunctions;

public:
BugDriver(const char *toolname, bool as_child, bool find_bugs,
unsigned timeout, unsigned memlimit, LLVMContext& ctxt);
unsigned timeout, unsigned memlimit, bool use_valgrind,
LLVMContext& ctxt);

const char *getToolName() const { return ToolName; }

Expand Down
2 changes: 0 additions & 2 deletions tools/bugpoint/OptimizerDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ namespace {
// ChildOutput - This option captures the name of the child output file that
// is set up by the parent bugpoint process
cl::opt<std::string> ChildOutput("child-output", cl::ReallyHidden);
cl::opt<bool> UseValgrind("enable-valgrind",
cl::desc("Run optimizations through valgrind"));
}

/// writeProgramToFile - This writes the current "Program" to the named bitcode
Expand Down
24 changes: 20 additions & 4 deletions tools/bugpoint/bugpoint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "llvm/Support/StandardPasses.h"
#include "llvm/System/Process.h"
#include "llvm/System/Signals.h"
#include "llvm/System/Valgrind.h"
#include "llvm/LinkAllVMCore.h"
using namespace llvm;

Expand All @@ -48,9 +49,14 @@ TimeoutValue("timeout", cl::init(300), cl::value_desc("seconds"),
cl::desc("Number of seconds program is allowed to run before it "
"is killed (default is 300s), 0 disables timeout"));

static cl::opt<unsigned>
MemoryLimit("mlimit", cl::init(100), cl::value_desc("MBytes"),
cl::desc("Maximum amount of memory to use. 0 disables check."));
static cl::opt<int>
MemoryLimit("mlimit", cl::init(-1), cl::value_desc("MBytes"),
cl::desc("Maximum amount of memory to use. 0 disables check."
" Defaults to 100MB (800MB under valgrind)."));

static cl::opt<bool>
UseValgrind("enable-valgrind",
cl::desc("Run optimizations through valgrind"));

// The AnalysesList is automatically populated with registered Passes by the
// PassNameParser.
Expand Down Expand Up @@ -108,7 +114,17 @@ int main(int argc, char **argv) {
outs() << "Override triple set to '" << OverrideTriple << "'\n";
}

BugDriver D(argv[0], AsChild, FindBugs, TimeoutValue, MemoryLimit, Context);
if (MemoryLimit < 0) {
// Set the default MemoryLimit. Be sure to update the flag's description if
// you change this.
if (sys::RunningOnValgrind() || UseValgrind)
MemoryLimit = 800;
else
MemoryLimit = 100;
}

BugDriver D(argv[0], AsChild, FindBugs, TimeoutValue, MemoryLimit,
UseValgrind, Context);
if (D.addSources(InputFilenames)) return 1;

AddToDriver PM(D);
Expand Down

0 comments on commit c3e6859

Please sign in to comment.