diff options
author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-03-21 10:49:05 +0000 |
---|---|---|
committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-03-21 10:49:05 +0000 |
commit | 2f12f10af369d468b14617276446166383d692ed (patch) | |
tree | 2caca31db4facdc95c23930c0c745c8ef0dee97d /tools | |
parent | c69102774f9739c81ae1285ed9ae62405071c63c (diff) | |
download | src-2f12f10af369d468b14617276446166383d692ed.tar.gz src-2f12f10af369d468b14617276446166383d692ed.zip |
Update LLVM to r99115.
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=205407
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bugpoint/BugDriver.cpp | 4 | ||||
-rw-r--r-- | tools/bugpoint/BugDriver.h | 4 | ||||
-rw-r--r-- | tools/bugpoint/OptimizerDriver.cpp | 2 | ||||
-rw-r--r-- | tools/bugpoint/bugpoint.cpp | 24 | ||||
-rw-r--r-- | tools/edis/Makefile | 3 | ||||
-rw-r--r-- | tools/llvm-mc/Disassembler.cpp | 17 | ||||
-rw-r--r-- | tools/llvm-mc/llvm-mc.cpp | 19 |
7 files changed, 42 insertions, 31 deletions
diff --git a/tools/bugpoint/BugDriver.cpp b/tools/bugpoint/BugDriver.cpp index abf5d8ef7211..813c96cc795d 100644 --- a/tools/bugpoint/BugDriver.cpp +++ b/tools/bugpoint/BugDriver.cpp @@ -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 diff --git a/tools/bugpoint/BugDriver.h b/tools/bugpoint/BugDriver.h index db35c851d9a4..0a10a61c2159 100644 --- a/tools/bugpoint/BugDriver.h +++ b/tools/bugpoint/BugDriver.h @@ -55,6 +55,7 @@ class BugDriver { bool run_find_bugs; unsigned Timeout; unsigned MemoryLimit; + bool UseValgrind; // FIXME: sort out public/private distinctions... friend class ReducePassList; @@ -62,7 +63,8 @@ class BugDriver { 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; } diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp index 9f712e097a74..3a6149b24a52 100644 --- a/tools/bugpoint/OptimizerDriver.cpp +++ b/tools/bugpoint/OptimizerDriver.cpp @@ -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 diff --git a/tools/bugpoint/bugpoint.cpp b/tools/bugpoint/bugpoint.cpp index 565f3f9a7087..e14f31e67d85 100644 --- a/tools/bugpoint/bugpoint.cpp +++ b/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); diff --git a/tools/edis/Makefile b/tools/edis/Makefile index a3c587966878..cd8f4b067ae8 100644 --- a/tools/edis/Makefile +++ b/tools/edis/Makefile @@ -39,11 +39,12 @@ ifeq ($(HOST_OS),Darwin) -Wl,-seg1addr -Wl,0xE0000000 # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line + # Path is /Developer/usr/local/lib for now; will use an rpath-based mechanism soon DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/') ifneq ($(DARWIN_VERS),8) LLVMLibsOptions := $(LLVMLibsOptions) \ -no-undefined -Wl,-install_name \ - -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)" + -Wl,"/Developer/usr/local/lib/lib$(LIBRARYNAME)$(SHLIBEXT)" endif endif diff --git a/tools/llvm-mc/Disassembler.cpp b/tools/llvm-mc/Disassembler.cpp index dbfe7a5d06f0..0caf539ac959 100644 --- a/tools/llvm-mc/Disassembler.cpp +++ b/tools/llvm-mc/Disassembler.cpp @@ -47,8 +47,8 @@ public: }; } -static bool PrintInsts(const llvm::MCDisassembler &DisAsm, - llvm::MCInstPrinter &Printer, const ByteArrayTy &Bytes, +static bool PrintInsts(const MCDisassembler &DisAsm, + MCInstPrinter &Printer, const ByteArrayTy &Bytes, SourceMgr &SM) { // Wrap the vector in a MemoryObject. VectorMemoryObject memoryObject(Bytes); @@ -77,24 +77,23 @@ static bool PrintInsts(const llvm::MCDisassembler &DisAsm, } int Disassembler::disassemble(const Target &T, const std::string &Triple, - MemoryBuffer &Buffer) { + MemoryBuffer &Buffer) { // Set up disassembler. - llvm::OwningPtr<const llvm::MCAsmInfo> AsmInfo(T.createAsmInfo(Triple)); + OwningPtr<const MCAsmInfo> AsmInfo(T.createAsmInfo(Triple)); if (!AsmInfo) { errs() << "error: no assembly info for target " << Triple << "\n"; return -1; } - llvm::OwningPtr<const llvm::MCDisassembler> DisAsm(T.createMCDisassembler()); + OwningPtr<const MCDisassembler> DisAsm(T.createMCDisassembler()); if (!DisAsm) { errs() << "error: no disassembler for target " << Triple << "\n"; return -1; } - llvm::MCInstPrinter *InstPrinter = T.createMCInstPrinter(0, *AsmInfo, outs()); - - if (!InstPrinter) { + OwningPtr<MCInstPrinter> IP(T.createMCInstPrinter(0, *AsmInfo, outs())); + if (!IP) { errs() << "error: no instruction printer for target " << Triple << '\n'; return -1; } @@ -151,7 +150,7 @@ int Disassembler::disassemble(const Target &T, const std::string &Triple, } if (!ByteArray.empty()) - ErrorOccurred |= PrintInsts(*DisAsm, *InstPrinter, ByteArray, SM); + ErrorOccurred |= PrintInsts(*DisAsm, *IP, ByteArray, SM); return ErrorOccurred; } diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp index 66e126092db2..3c23990af6bf 100644 --- a/tools/llvm-mc/llvm-mc.cpp +++ b/tools/llvm-mc/llvm-mc.cpp @@ -152,7 +152,7 @@ static int AsLexInput(const char *ProgName) { if (!TheTarget) return 1; - const MCAsmInfo *MAI = TheTarget->createAsmInfo(TripleName); + llvm::OwningPtr<MCAsmInfo> MAI((MCAsmInfo*) TheTarget->createAsmInfo(TripleName)); assert(MAI && "Unable to create target asm info!"); AsmLexer Lexer(*MAI); @@ -260,7 +260,7 @@ static int AssembleInput(const char *ProgName) { SrcMgr.setIncludeDirs(IncludeDirs); - const MCAsmInfo *MAI = TheTarget->createAsmInfo(TripleName); + llvm::OwningPtr<MCAsmInfo> MAI((MCAsmInfo*) TheTarget->createAsmInfo(TripleName)); assert(MAI && "Unable to create target asm info!"); MCContext Ctx(*MAI); @@ -278,18 +278,17 @@ static int AssembleInput(const char *ProgName) { return 1; } - OwningPtr<MCInstPrinter> IP; OwningPtr<MCCodeEmitter> CE; OwningPtr<MCStreamer> Str; OwningPtr<TargetAsmBackend> TAB; if (FileType == OFT_AssemblyFile) { - IP.reset(TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI, *Out)); + MCInstPrinter *IP = + TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI, *Out); if (ShowEncoding) CE.reset(TheTarget->createCodeEmitter(*TM, Ctx)); Str.reset(createAsmStreamer(Ctx, *Out,TM->getTargetData()->isLittleEndian(), - /*asmverbose*/true, IP.get(), CE.get(), - ShowInst)); + /*asmverbose*/true, IP, CE.get(), ShowInst)); } else { assert(FileType == OFT_ObjectFile && "Invalid file type!"); CE.reset(TheTarget->createCodeEmitter(*TM, Ctx)); @@ -319,13 +318,9 @@ static int AssembleInput(const char *ProgName) { } static int DisassembleInput(const char *ProgName) { - std::string Error; - const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error); - if (TheTarget == 0) { - errs() << ProgName << ": error: unable to get target for '" << TripleName - << "', see --version and --triple.\n"; + const Target *TheTarget = GetTarget(ProgName); + if (!TheTarget) return 0; - } std::string ErrorMessage; |