diff options
| author | Jeffrey Yasskin <jyasskin@google.com> | 2010-03-19 00:09:28 +0000 |
|---|---|---|
| committer | Jeffrey Yasskin <jyasskin@google.com> | 2010-03-19 00:09:28 +0000 |
| commit | 71bd0f4edaeed5a238a0ee4806d27209b227b796 (patch) | |
| tree | 4fc1d181eeaaadae9467575a8ad01ac5c0c9d024 /llvm/tools/bugpoint/bugpoint.cpp | |
| parent | 9aec14b5607e8184b19f2d33d307b328f2a700c0 (diff) | |
| download | bcm5719-llvm-71bd0f4edaeed5a238a0ee4806d27209b227b796.tar.gz bcm5719-llvm-71bd0f4edaeed5a238a0ee4806d27209b227b796.zip | |
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.
llvm-svn: 98905
Diffstat (limited to 'llvm/tools/bugpoint/bugpoint.cpp')
| -rw-r--r-- | llvm/tools/bugpoint/bugpoint.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/llvm/tools/bugpoint/bugpoint.cpp b/llvm/tools/bugpoint/bugpoint.cpp index 565f3f9a708..e14f31e67d8 100644 --- a/llvm/tools/bugpoint/bugpoint.cpp +++ b/llvm/tools/bugpoint/bugpoint.cpp @@ -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; @@ -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. @@ -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); |

