mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-05 12:31:33 +00:00
Bugpoint's default memory limit (100MB) was too low for valgrind, so
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
This commit is contained in:
parent
f30187a363
commit
c3e6859d8d
@ -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,
|
BugDriver::BugDriver(const char *toolname, bool as_child, bool find_bugs,
|
||||||
unsigned timeout, unsigned memlimit,
|
unsigned timeout, unsigned memlimit, bool use_valgrind,
|
||||||
LLVMContext& ctxt)
|
LLVMContext& ctxt)
|
||||||
: Context(ctxt), ToolName(toolname), ReferenceOutputFile(OutputFile),
|
: Context(ctxt), ToolName(toolname), ReferenceOutputFile(OutputFile),
|
||||||
Program(0), Interpreter(0), SafeInterpreter(0), gcc(0),
|
Program(0), Interpreter(0), SafeInterpreter(0), gcc(0),
|
||||||
run_as_child(as_child), run_find_bugs(find_bugs), Timeout(timeout),
|
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
|
/// ParseInputFile - Given a bitcode or assembly input filename, parse and
|
||||||
|
@ -55,6 +55,7 @@ class BugDriver {
|
|||||||
bool run_find_bugs;
|
bool run_find_bugs;
|
||||||
unsigned Timeout;
|
unsigned Timeout;
|
||||||
unsigned MemoryLimit;
|
unsigned MemoryLimit;
|
||||||
|
bool UseValgrind;
|
||||||
|
|
||||||
// FIXME: sort out public/private distinctions...
|
// FIXME: sort out public/private distinctions...
|
||||||
friend class ReducePassList;
|
friend class ReducePassList;
|
||||||
@ -62,7 +63,8 @@ class BugDriver {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
BugDriver(const char *toolname, bool as_child, bool find_bugs,
|
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; }
|
const char *getToolName() const { return ToolName; }
|
||||||
|
|
||||||
|
@ -45,8 +45,6 @@ namespace {
|
|||||||
// ChildOutput - This option captures the name of the child output file that
|
// ChildOutput - This option captures the name of the child output file that
|
||||||
// is set up by the parent bugpoint process
|
// is set up by the parent bugpoint process
|
||||||
cl::opt<std::string> ChildOutput("child-output", cl::ReallyHidden);
|
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
|
/// writeProgramToFile - This writes the current "Program" to the named bitcode
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "llvm/Support/StandardPasses.h"
|
#include "llvm/Support/StandardPasses.h"
|
||||||
#include "llvm/System/Process.h"
|
#include "llvm/System/Process.h"
|
||||||
#include "llvm/System/Signals.h"
|
#include "llvm/System/Signals.h"
|
||||||
|
#include "llvm/System/Valgrind.h"
|
||||||
#include "llvm/LinkAllVMCore.h"
|
#include "llvm/LinkAllVMCore.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@ -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 "
|
cl::desc("Number of seconds program is allowed to run before it "
|
||||||
"is killed (default is 300s), 0 disables timeout"));
|
"is killed (default is 300s), 0 disables timeout"));
|
||||||
|
|
||||||
static cl::opt<unsigned>
|
static cl::opt<int>
|
||||||
MemoryLimit("mlimit", cl::init(100), cl::value_desc("MBytes"),
|
MemoryLimit("mlimit", cl::init(-1), cl::value_desc("MBytes"),
|
||||||
cl::desc("Maximum amount of memory to use. 0 disables check."));
|
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
|
// The AnalysesList is automatically populated with registered Passes by the
|
||||||
// PassNameParser.
|
// PassNameParser.
|
||||||
@ -108,7 +114,17 @@ int main(int argc, char **argv) {
|
|||||||
outs() << "Override triple set to '" << OverrideTriple << "'\n";
|
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;
|
if (D.addSources(InputFilenames)) return 1;
|
||||||
|
|
||||||
AddToDriver PM(D);
|
AddToDriver PM(D);
|
||||||
|
Loading…
Reference in New Issue
Block a user